Scientific & Numerical Languages — Tier 3 Index
Scientific & Numerical Languages — Tier 3 Index
- Type: Family index (Tier 3)
- Family: Scientific / numerical computing, statistics, symbolic math, probabilistic programming, array languages, HPC
- Languages catalogued: 27
- Last updated: 2026-05-07
Family overview
“Scientific computing” is a tent so big it strains the term. Inside it sit at least five sub-families: commercial numerical environments (MATLAB, Mathematica, Maple, IDL) that were the dominant platforms of the 1990s-2000s; statistics and econometrics (SAS, SPSS, Stata, GAUSS, gretl) where domain users still outnumber R/Python users in places; the APL/array lineage (APL → J, K, Q, A+) that quietly powers high-frequency finance; probabilistic programming (Stan, BUGS/JAGS, Pyro, NumPyro, TFP) where Bayesian methods got a real implementation story; and HPC-oriented languages (Chapel, X10, Modelica, Felix) that tried to displace Fortran+MPI and mostly didn’t. The macro story since ~2015 is Python eating the centre — most new graduate students reach for NumPy/SciPy/PyMC/scikit-learn before MATLAB or SAS — while the frontier-Bayesian, ultra-low-latency-finance, and physical-modelling niches retain their specialised languages.
In our deep library
- julia — modern open-source numerical/HPC language; the closest thing to a unified successor
- r — statistics, the dominant academic-stats language since ~2010
- fortran — still load-bearing in HPC numerical libraries
- python — the gravitational centre of modern data/scientific work
Tier 3 — the family
| Language | First release | Status 2026 | Niche | Why it matters | Source URL |
|---|---|---|---|---|---|
| MATLAB | 1984 | Active commercial (MathWorks) | Engineering, control, signal processing | The lingua franca of EE/control-systems education; Simulink remains unmatched for model-based design | https://www.mathworks.com/products/matlab.html |
| GNU Octave | 1988 | Active OSS | MATLAB-compatible | Open-source MATLAB-compatible interpreter; lifeline when MATLAB licenses aren’t available | https://octave.org/ |
| Scilab | 1990 | Active (Dassault) | Numerical computing | French INRIA-origin MATLAB-alike; common in EU engineering schools | https://www.scilab.org/ |
| SageMath | 2005 | Active OSS | Computational mathematics | Python-based front-end binding GAP, PARI, Singular, Maxima, etc. into one notebook environment | https://www.sagemath.org/ |
| Wolfram Language / Mathematica | 1988 | Active (Wolfram) | Symbolic + numeric, knowledge | Best symbolic-math engine in mainstream use; Wolfram Alpha is the same kernel; closed-source | https://www.wolfram.com/mathematica/ |
| Maple | 1982 | Active (Maplesoft) | Symbolic math | The other major commercial CAS; popular in engineering math education | https://www.maplesoft.com/products/maple/ |
| IDL | 1977 | Active (NV5/Harris) | Astronomy, atmospheric, remote sensing | Solar physics and HST/JWST pipelines historically run on IDL; community now migrating to Python | https://www.nv5geospatialsoftware.com/Products/IDL |
| Stata | 1985 | Active commercial | Statistics, econometrics | Dominant in health economics, biostatistics, and policy research; do-file scripting culture | https://www.stata.com/ |
| SAS | 1976 | Active but declining | Enterprise statistics | Pharma clinical-trials gold standard (FDA submissions); losing graduate-student mindshare to R/Python | https://www.sas.com/ |
| SPSS | 1968 | Maintenance (IBM) | Social-sciences statistics | GUI-driven; entrenched in psychology, sociology, market research | https://www.ibm.com/products/spss-statistics |
| gretl | 1999 | Active OSS | Econometrics | Open-source econometrics; common in undergraduate teaching as a free Stata alternative | https://gretl.sourceforge.net/ |
| GAUSS | 1984 | Active commercial | Econometrics | Long-running commercial matrix language for econometrics/finance research | https://www.aptech.com/ |
| APL | 1966 | Niche | Array programming | Iverson’s symbolic array language; intellectual ancestor of NumPy, J, K, Q | https://en.wikipedia.org/wiki/APL_(programming_language) |
| Dyalog APL | 1983 | Active commercial | Modern APL | The reference modern APL; active community, Dyalog ‘24/’25 conferences; finance + actuarial users | https://www.dyalog.com/ |
| J | 1990 | Active OSS | ASCII APL successor | Iverson’s ASCII reformulation of APL; tacit/point-free style; cult following | https://www.jsoftware.com/ |
| K | 1993 | Active commercial (KX) | High-frequency finance | Whitney’s terse APL-descendant; the runtime under kdb+; sub-microsecond tick processing | https://kx.com/ |
| Q | 2003 | Active commercial (KX) | Readable layer over K | English-keyword surface for K; the language analysts actually write at trading firms | https://code.kx.com/q/ |
| A+ | 1988 | Historical | Morgan Stanley APL variant | In-house Morgan Stanley fork of APL; mostly displaced internally; open-sourced as historical artifact | http://www.aplusdev.org/ |
| kona | 2005 | Maintenance OSS | Open-source K3 | OSS reimplementation of K3; pedagogical / hobbyist | https://github.com/kevinlawler/kona |
| Stan | 2012 | Active | Probabilistic programming, HMC | Reference implementation of Hamiltonian Monte Carlo / NUTS; Columbia University; the serious Bayesian’s compiler | https://mc-stan.org/ |
| BUGS / OpenBUGS / WinBUGS | 1989 | Maintenance / historical | Bayesian Gibbs sampling | The original Bayesian DSL; spawned an entire generation of applied Bayesian work; superseded by JAGS/Stan | https://www.mrc-bsu.cam.ac.uk/software/bugs/ |
| JAGS | 2007 | Active OSS | Bayesian Gibbs sampling | ”Just Another Gibbs Sampler”; cross-platform BUGS-compatible engine; popular with ecologists | https://mcmc-jags.sourceforge.io/ |
| Pyro / NumPyro | 2017 / 2019 | Active | Python-embedded probabilistic | Uber’s PyTorch-based Pyro; NumPyro is the JAX-based variant from the same team — fast HMC for modern ML researchers | https://pyro.ai/ |
| TensorFlow Probability | 2018 | Active | TF-embedded probabilistic | Google’s TF/JAX-based probabilistic stack; tight Keras/JAX integration | https://www.tensorflow.org/probability |
| Modelica | 1997 | Active (Modelica Assoc.) | Physical-system modeling | Acausal, equation-based modeling for multiphysics (electrical+mechanical+thermal+control); used in Dymola, OpenModelica, Wolfram SystemModeler | https://modelica.org/ |
| Felix | 2002 | Niche/research | Scientific systems language | High-performance functional/scientific language; small but persistent research community | https://felix-lang.org/ |
| Chapel | 2009 | Active (HPE/Cray) | HPC PGAS | Partitioned global address space; data-parallel + task-parallel; Cray’s bet at a productive HPC successor to Fortran+MPI | https://chapel-lang.org/ |
| X10 | 2004 | Maintenance/research | HPC PGAS | IBM’s PGAS language for the DARPA HPCS program; APGAS runtime survived as a research vehicle | http://x10-lang.org/ |
Notable threads
Python ate the centre but the periphery survives. The single biggest story in scientific computing 2010-2026 is the migration of general-purpose users to Python: NumPy/SciPy/Pandas/Matplotlib/Jupyter became the default toolkit for new students in physics, biology, chemistry, ML, and most of engineering. MATLAB held its ground in EE/controls (because Simulink has no real open-source equivalent), Stata held its ground in health economics (because reviewer culture demands it), SAS held its ground in pharma clinical trials (because FDA submission templates are SAS-flavoured), and Wolfram/Maple held their ground in symbolic math (because nobody has matched their CAS engines). Everything else has shifted Python-ward, with julia picking up niche converts who want speed without leaving the high-level abstraction tier.
The K/Q/kdb+ finance niche. A handful of languages — K, Q, J, A+, APL — remain quietly load-bearing at trading firms. The pattern is consistent: terse array operations on columnar in-memory data, sub-microsecond latencies, and a small priesthood of practitioners willing to read code that looks like line noise. KX’s kdb+ runs essentially every major exchange’s tick database. Most software developers will never see these languages; most quant engineers at top firms will write Q daily. They survive because the alternatives (NumPy/Pandas, Polars, even DuckDB) still can’t match raw kdb+ throughput on the workloads it was designed for.
Probabilistic programming finally worked. From the 1990s through the early 2010s, “Bayesian methods” mostly meant WinBUGS notebooks and a lot of patience. The 2012 Stan release of HMC/NUTS made full-Bayesian inference tractable on modern problems for the first time. Pyro (2017) and NumPyro (2019) brought the same machinery into PyTorch and JAX, letting ML researchers actually compose neural networks with probabilistic models. As of 2026 a graduate student doing applied Bayesian work picks Stan (for serious published inference), brms/rstan (for the R ecosystem), or NumPyro (for differentiable models). BUGS/JAGS persist mostly as teaching tools and in ecology where the historical literature uses them.
The HPC-language graveyard. Chapel, X10, Fortress, Cilk Plus, Sisal, ZPL, HPF — the 2000s-2010s saw a parade of attempts at “the language that replaces Fortran+MPI for exascale.” None succeeded. The actual exascale codes shipping on Frontier, Aurora, and El Capitan are written in C++/Fortran with Kokkos/RAJA/OpenMP-target/SYCL (cross-link gpu-and-shaders). Chapel survives at HPE as a research/productivity vehicle; X10 became a research artifact. The lesson the field absorbed: replacing Fortran is much harder than building libraries on top of it.
Modelica and the equation-based niche. Modelica is unusual in this list because it’s not really a programming language — it’s an equation language. You write the physics (KCL, mechanical balance, thermal flow) and the compiler does index reduction, symbolic manipulation, and DAE solving. It powers Dymola (Dassault), Wolfram SystemModeler, and OpenModelica, and has carved out a durable niche in automotive, aerospace, and HVAC system simulation where Simulink’s signal-flow paradigm is the wrong abstraction.
Citations
- MATLAB: https://www.mathworks.com/products/matlab.html
- GNU Octave: https://octave.org/
- Scilab: https://www.scilab.org/
- SageMath: https://www.sagemath.org/
- Wolfram/Mathematica: https://www.wolfram.com/mathematica/
- Maple: https://www.maplesoft.com/products/maple/
- IDL: https://www.nv5geospatialsoftware.com/Products/IDL
- Stata: https://www.stata.com/
- SAS: https://www.sas.com/
- SPSS: https://www.ibm.com/products/spss-statistics
- gretl: https://gretl.sourceforge.net/
- GAUSS: https://www.aptech.com/
- Dyalog APL: https://www.dyalog.com/
- J: https://www.jsoftware.com/
- KX/kdb+ (K and Q): https://kx.com/ , https://code.kx.com/q/
- Stan: https://mc-stan.org/
- JAGS: https://mcmc-jags.sourceforge.io/
- Pyro/NumPyro: https://pyro.ai/ , https://num.pyro.ai/
- TensorFlow Probability: https://www.tensorflow.org/probability
- Modelica: https://modelica.org/
- Chapel: https://chapel-lang.org/
- X10: http://x10-lang.org/
- APL history: https://en.wikipedia.org/wiki/APL_(programming_language)