Programming Languages Comparative
This page compares 35 programming languages on the same metrics: the 21 languages documented on this site, plus 14 more that matter for context. Every number carries a source and a date, and anything that could not be sourced is shown as n/a instead of being estimated. The data snapshot date is 2026-10-26: all sources were read on that day unless a caption says otherwise. Metrics such as popularity indices and registry counts change every month, so treat the figures as a dated snapshot, not as current values.
The raw data, the chart generator and the scoring rubric are kept in the repository under scripts/language-charts/, so the charts can be regenerated when new data is published.
Jump to the Summary and recommendations if you only need the conclusions.
|
Scope and inclusion criteria
A language is included when at least one of these holds:
-
It is already documented on this site. These 21 languages are linked wherever they appear:
C, COBOL, C++, C#, Fortran, Go, Groovy, Java, JavaScript, Kotlin, MATLAB, Objective-C, PHP, Python, R, Ruby, Rust, Scala, Swift, TypeScript, Visual Basic. . It ranks in the TIOBE top 50 (October 2026) or in another main index used here (PYPL, IEEE Spectrum, RedMonk, the Stack Overflow survey). . It matters for history or growth: a historic standardised language (Ada, Lisp, Pascal) or a recent fast-growing one (Zig, Mojo, Elixir).
The 14 extra languages are Pascal/Delphi, Perl, Ada, Lisp, Assembly, Dart, Julia, Zig, Elixir, Lua, Haskell, Mojo, SQL and Bash. Some of them get fewer metrics because data is scarce:
-
Mojo, Bash, Elixir and Groovy are not ranked in the TIOBE top 50. Mojo, Elixir and Bash have no PYPL entry, and Mojo and Bash have no Benchmarks Game or energy data.
-
Assembly, SQL and Bash are not a single implementation, so they have no registry, release cadence, licence or benchmark.
-
Zig, Mojo and Julia are absent from the energy study; 15 of the 35 languages are.
-
The official sites of COBOL, Assembly, SQL, Bash, Lisp, Pascal/Delphi and MATLAB could not be checked automatically, so their onboarding score is n/a.
How metrics, scales and scores were assigned
Metrics. A value is recorded only when it was read in the source named for it. If a value was not found it is n/a and charts draw a gap, never a zero. Values that we derived from published tables (the Benchmarks Game ratios, the normalised peak memory) are labelled as derived. The table below lists every metric, what it measures, its source and its date.
| Metric | What it measures | Source | Edition or date | Section |
|---|---|---|---|---|
Year of first appearance |
When the language was first released or announced |
2026-10-26 |
||
TIOBE rating |
Share of search-engine hits for "language programming" queries across major engines, a proxy for skilled engineers, courses and vendors |
October 2026 |
||
PYPL share |
Share of Google searches for the language’s tutorials, relative to the 30 languages it tracks |
2026-10-26 |
||
Stack Overflow usage, admired |
Share of survey respondents who used the language, and who want to keep using it |
Survey 2026 (v2026.1) |
||
IEEE Spectrum and RedMonk rankings |
Composite rankings; stored in the data files but not charted |
2026-10-26 |
||
Registry packages |
Number of packages in the language’s main registry (units differ) |
2026-10-25/26 |
||
CPU time vs fastest |
Geometric mean over 7 benchmark programs of CPU seconds relative to the fastest implementation (derived by us) |
Edition 25.03, measured 2025-03-05 |
||
Memory vs lowest |
Same, for memory use |
Edition 25.03, measured 2025-03-05 |
||
Energy vs C |
Energy consumed running the benchmark programs, normalised to C = 1.00 |
Table 4, preprint 2021-03-23 |
||
Onboarding score |
Four yes/no checks on the official site: tutorial, reference, playground, one-command installer |
the onb-* sources |
2026-10-26 (one source per language) |
|
Source size (gzip bytes) |
Geometric mean of gzip bytes of the benchmark programs, a verbosity proxy rather than lines of code |
Edition 25.03 |
||
Learning-to-code usage |
Share of respondents learning to code who used the language extensively |
Survey 2025 |
||
Memory-safety classification |
Whether official guidance classifies the language as memory safe |
Back to the Building Blocks: A Path Toward Secure and Measurable Software |
February 2024 and other cited documents |
|
Memory-safety share of vulnerabilities |
Share of vulnerabilities rooted in memory-safety bugs at Microsoft, Chromium and Android |
2019 and 2024 posts |
||
Purposes, paradigms, platforms |
What the language is used for and where it runs, as stated in its encyclopedia article |
2026-10-26 |
||
Median salary |
Median annual salary of respondents working with the language |
Stack Overflow Developer Survey 2024 - Top paying technologies |
Survey 2024 |
|
Contributors, adoption intent |
Open-source contributor growth and intent to adopt next |
Octoverse: A new developer joins GitHub every second as AI leads TypeScript to #1 |
Octoverse 2025, JetBrains 2025 |
|
Standard, cadence, licence |
Formal standard, release rhythm and licence of the reference implementation |
2026-10-26 |
Scales. Raw metrics are shown on their own units (percent, ratio to the best, USD). The scatter and radar charts use a 0-10 score, where 10 is the best value in the set. Metrics that span orders of magnitude (ratings, packages, time and energy ratios) use a logarithmic scale before conversion, so a language is not ranked by a single outlier.
Scores. Every radar score is computed by a formula from the sourced CSV values; no score is typed by hand. The rubric is summarised below. A language with a missing input on an axis gets n/a on that axis.
| Axis | Formula | Anchors |
|---|---|---|
Popularity |
mean of the log scale of the TIOBE rating and the linear scale of Stack Overflow usage (one input is enough) |
10 = highest in the set |
Ecosystem |
log scale of registry packages (80%), plus 2 points for an actively maintained implementation; a formal standard is not scored, because its absence is rarely verified |
n/a without a registry count |
Performance |
inverse log scale of the CPU ratio |
10 = fastest in the Benchmarks Game set |
Memory |
inverse log scale of the memory ratio |
10 = least memory |
Energy |
inverse log scale of the energy ratio |
10 = C (1.00), 0 = worst in the paper |
Learning (ease) |
mean of the onboarding score and the inverse log scale of gzip bytes |
10 = all four checks pass and the shortest sources |
Safety |
memory-safe = 10, memory-safe unless unsafe construct = 8, not memory safe = 2 |
anchors fixed by the cited classification |
Versatility |
share of the nine application domains (web front end, back end, mobile, desktop, embedded, systems, data and AI, scientific and HPC, mainframe) a cited source confirms: |
n/a when fewer than five of the nine domains are known (yes or no) |
Job market |
linear scale of the Stack Overflow median salary |
optional axis |
The onboarding score is 10 * (number of yes) / (number of answered checks) over four checks on the official site: O1 a getting-started tutorial, O2 an online reference or specification,
O3 an online playground or REPL, O4 a one-command toolchain installer. Checks that could not be answered are left out of the denominator, and the score is n/a if fewer than three could be answered.
Known limits of the data. Read these before drawing conclusions.
-
The popularity indices measure attention, not quality or market share. TIOBE counts search-engine hits, PYPL counts tutorial searches, and the Stack Overflow survey reflects its respondents.
-
Benchmarks Game ratios are derived by us from per-program tables (7 programs, edition 25.03); the site publishes only box plots. Benchmarks reward tuned programs and say little about a typical application.
-
The energy figures come from one study (Pereira et al., preprint dated 2021-03-23), which predates the current releases of every language. 15 languages are absent from it.
-
Registry counts are not comparable across registries and only LuaRocks has a historical series; no other history could be reached, and none is estimated.
-
The NSA June 2025 memory-safe language list could not be retrieved (HTTP 403), so most memory-safety classifications are n/a.
-
Salary is from the 2024 survey, because later surveys do not publish salary by language. It is a median over self-selected respondents, not a market survey.
-
The versatility score is a yes/no checklist of nine domains, each
yesbacked by a cited source. It measures breadth of use, not how good a language is in each domain.
Overview and timeline
The languages span more than six decades. The oldest of the 35 here are the historic Lisp, Fortran and COBOL families (see the table for the dates), and the newest are Swift (2014), Zig (2016) and Mojo (2023). The chart places every language by the year it first appeared, using the editorial groups of the table that follows (systems, legacy and enterprise, scripting, scientific and so on). The groups are only a way to colour the chart, not a sourced metric.
| Language | First appeared | Editorial group | Documented on this site |
|---|---|---|---|
1954-1955 |
scientific and data |
yes |
|
Lisp |
1956-1958 |
functional research |
no |
1959 |
legacy and enterprise |
yes |
|
1972 |
systems |
yes |
|
SQL |
1972 |
scientific and data |
no |
1978 (uncertain in source) |
scientific and data |
yes |
|
Ada |
1980 |
systems |
no |
1983 |
systems |
yes |
|
1983 |
apple platforms |
yes |
|
Pascal/Delphi |
1986 (Object Pascal); Pascal 1970 |
legacy and enterprise |
no |
Perl |
1987 |
web and scripting |
no |
Bash |
1989 (Bash); Bourne shell 1977 |
web and scripting |
no |
Haskell |
1990 |
functional research |
no |
1991 |
web and scripting |
yes |
|
1991 |
general-purpose VM |
yes |
|
Lua |
1993 |
web and scripting |
no |
1993 |
scientific and data |
yes |
|
1995 |
general-purpose VM |
yes |
|
1995 |
web and scripting |
yes |
|
1995 |
web and scripting |
yes |
|
1995 |
web and scripting |
yes |
|
2000 |
general-purpose VM |
yes |
|
2003 |
general-purpose VM |
yes |
|
2004 |
general-purpose VM |
yes |
|
2009 |
systems |
yes |
|
2010 |
systems |
yes |
|
Dart |
2011 |
general-purpose VM |
no |
2011 |
general-purpose VM |
yes |
|
Elixir |
2012 |
web and scripting |
no |
Julia |
2012 |
scientific and data |
no |
2012 |
web and scripting |
yes |
|
2014 |
apple platforms |
yes |
|
Zig |
2016 |
systems |
no |
Mojo |
2023 |
scientific and data |
no |
Assembly |
n/a (ambiguous: 1952 autocode; 1964 BAL) |
systems |
no |
Popularity
Popularity is the most requested and the least precise metric. This page uses three independent signals: the TIOBE index (search-engine hits), PYPL (tutorial searches) and the Stack Overflow Developer Survey (what developers say they use and admire). In October 2026 the TIOBE top six are Python (19.23%), C (11.33%), C++ (8.87%), Java (8.41%), C# (3.79%) and JavaScript (2.77%). Python is also first in PYPL with a 53.9% share, followed by Java with 12.98%, while C and C++ share one combined PYPL entry (7.97%). The Stack Overflow survey tells a different story because it counts usage by respondents: JavaScript (62%), SQL (58.4%), Python (58%), Bash (51.3%) and TypeScript (43.8%) lead, and Rust has the highest admired score (67.4%).
The history shows trends that a single month hides. In TIOBE, Python grew from 1.25% (June 2001) to 3.90% (2016), 11.84% (2021) and 25.87% (June 2025) before the October 2026 value of 19.23%. Java fell from 26.49% in 2001 to 8.41%; PHP went from 10.32% (2004) to 1.26%; Visual Basic and Pascal/Delphi also lost ground in PYPL, where Visual Basic dropped from 8.66% (2004) to 0.10% and PHP from 19.71% to 1.74%. Go (0.21% in 2016 to 1.39%) and Rust (0.26% to 1.44%) grew from a very low base. The charts sample each year in June, plus the latest month, and show 8 languages per index.
The scatter charts compare today’s rating with the change since June 2016, so they separate big and shrinking languages from small and growing ones. The second chart zooms on the languages below 4%, where most of the crowd sits.
| Language | TIOBE rating, % (rank) | PYPL share, % | SO 2026 usage, % | SO 2026 admired, % |
|---|---|---|---|---|
11.33 (#2) |
7.97 |
21.8 |
45.9 |
|
0.89 (#16) |
0.04 |
1.1 |
28 |
|
8.87 (#3) |
7.97 |
24.3 |
45.8 |
|
3.79 (#5) |
1.46 |
27.1 |
50 |
|
1.12 (#13) |
n/a |
1.7 |
33.1 |
|
1.39 (#11) |
0.53 |
16.5 |
49.5 |
|
n/a |
0.04 |
3.9 |
21.9 |
|
8.41 (#4) |
12.98 |
27.6 |
38.5 |
|
2.77 (#6) |
2.81 |
62 |
42 |
|
0.48 (#32) |
0.45 |
10.8 |
43.1 |
|
0.83 (#20) |
0.82 |
3.6 |
24.4 |
|
0.61 (#25) |
3.51 |
2.5 |
21.3 |
|
1.26 (#12) |
1.74 |
17.7 |
35.7 |
|
19.23 (#1) |
53.9 |
58 |
50.6 |
|
2.06 (#8) |
3.87 |
4.5 |
40.7 |
|
0.53 (#28) |
0.7 |
5.8 |
42.4 |
|
1.44 (#10) |
1.56 |
18 |
67.4 |
|
0.37 (#40) |
0.22 |
2.2 |
39.2 |
|
1.03 (#14) |
1.47 |
5.9 |
48.5 |
|
0.41 (#38) |
1.33 |
43.8 |
53 |
|
2.20 (#7) |
0.1 |
4 |
25.5 |
|
Pascal/Delphi |
0.83 (#19) |
0.09 |
1.9 |
36 |
Perl |
0.88 (#17) |
0.06 |
3.8 |
30.7 |
Ada |
0.82 (#21) |
1.55 |
1.2 |
38.4 |
Lisp |
0.42 (#36) |
n/a |
2.6 |
55.4 |
Assembly |
0.76 (#23) |
n/a |
7.2 |
48.3 |
Dart |
0.60 (#27) |
0.47 |
4.9 |
42.3 |
Julia |
0.88 (#18) |
0.42 |
1.5 |
47.4 |
Zig |
0.27 (#46) |
0.13 |
2.8 |
58.3 |
Elixir |
n/a |
n/a |
2.6 |
62.1 |
Lua |
0.44 (#35) |
0.45 |
9.4 |
40.8 |
Haskell |
0.33 (#41) |
0.08 |
2.3 |
47.8 |
Mojo |
n/a |
n/a |
0.6 |
45.1 |
SQL |
1.97 (#9) |
n/a |
58.4 |
51.4 |
Bash |
n/a |
n/a |
51.3 |
48.1 |
Popularity indices are published monthly (TIOBE, PYPL) or yearly (the surveys), so this section is the fastest to go out of date.
Ecosystem
A language is as productive as its libraries. The registry sizes below are a 2026 snapshot taken from each registry’s own API: npm holds 4,532,034 packages (shared by JavaScript and TypeScript), PyPI 923,102 projects, Maven Central 661,801 artifacts (shared by Java, Kotlin, Scala and Groovy), NuGet 528,060 package IDs (C# and Visual Basic), Packagist 470,008 package names, crates.io 361,763 crates and RubyGems 197,949 gems. Smaller registries are pub.dev (93,435), CPAN (52,878 distributions), CRAN (25,529), Hex (22,923), Hackage (19,594), Julia General (14,627), the Swift Package Index (12,380) and LuaRocks (6,943). The units are not identical (packages, artifacts, distributions, modules), and registries differ in how much they split a project into packages, so use the chart for orders of magnitude, not for exact ranking. C, C++, Go, Fortran and COBOL have no verified central registry count and show as n/a, which does not mean they have no libraries. For the same reason their Ecosystem axis on the radar charts is a gap, not a low score.
Growth over time could be sourced for only one registry. The registry growth chart therefore shows LuaRocks only: 85 modules at the end of 2013, 750 in 2014, 1,577 in 2016 and 6,943 in 2026. Historical counts for npm, PyPI and the others were not reachable (the aggregator failed TLS and the web archive was rate limited), and no history was estimated.
| Language | Registry | Count | Counted unit | Source |
|---|---|---|---|---|
NuGet |
528,060 |
package IDs |
||
Go module proxy / index (proxy.golang.org, index.golang.org) |
n/a |
n/a |
n/a |
|
Maven Central |
661,801 |
artifacts (groupId:artifactId) |
||
Maven Central |
661,801 |
artifacts (groupId:artifactId) |
||
npm |
4,532,034 |
packages |
||
Maven Central |
661,801 |
artifacts (groupId:artifactId) |
||
Packagist |
470,008 |
package names |
||
PyPI |
923,102 |
projects |
||
CRAN |
25,529 |
packages |
||
RubyGems |
197,949 |
gems |
||
crates.io |
361,763 |
crates |
||
Maven Central |
661,801 |
artifacts (groupId:artifactId) |
||
Swift Package Index |
12,380 |
packages |
||
npm |
4,532,034 |
packages |
||
NuGet |
528,060 |
package IDs |
||
Perl |
CPAN (MetaCPAN) |
52,878 |
distributions |
|
Dart |
pub.dev |
93,435 |
packages |
|
Julia |
Julia General registry |
14,627 |
packages |
|
Elixir |
Hex |
22,923 |
packages |
|
Lua |
LuaRocks |
6,943 |
modules |
|
Haskell |
Hackage |
19,594 |
packages |
Release information at the snapshot (endoflife.date): Python 3.15.1, Rust 1.99.1 and Java 27 (non-LTS) with Java 25 as the latest LTS. Registry counts grow daily, so they are the quickest numbers on this page to be exceeded.
Performance
Three measurements are used: CPU time and memory from the Benchmarks Game (7 programs: fannkuch-redux, n-body, spectral-norm, mandelbrot, fasta, k-nucleotide and reverse-complement), and energy from a peer-reviewed study. They answer different questions: how fast and how lean a tuned program can be, and how much energy it needs.
CPU time. Compiled languages cluster near the fastest: C is 1.19 times the fastest implementation, C++ 1.35, Rust 1.45 and C# 1.93. Java is 4.16, Go 4.04 and JavaScript 6.78. Interpreted languages are one to two orders of magnitude slower: PHP 40.68, Lua 56.17, Ruby 60.09, Python 74.18 and Perl 78.29. Kotlin, Scala, Groovy, MATLAB, R and others are not in the benchmark set and show n/a.
Memory. Pascal uses the least (1.10 times the lowest) and C sits at 2.81. Garbage-collected runtimes use much more: Python 12.30, Java 33.20 and JavaScript 37.21, with Dart at 81.72 and Julia at 123.98. Fast does not mean lean: Julia is among the faster languages on CPU (2.28) but at the top of the memory range.
Energy. Relative to C (1.00), Rust uses 1.03, C++ 1.34, Ada 1.70, Java 1.98, C# 3.14, Go 3.23 and JavaScript 4.45; TypeScript uses 21.50, PHP 29.30, Ruby 69.91, Python 75.88 and Perl 79.58. The ranking follows the CPU ranking closely, because energy is mostly time spent running. The study is from 2021 and some languages have changed since, so read it as a rough guide.
Speed usually costs ease of learning, but not always. The scatter charts below plot the performance and energy scores against the learning (ease) score described in the next section. Languages in the upper right are both fast or efficient and easy to start with; Python, Ruby and Perl are easy but slow, and C and C++ are fast but score lower on ease.
| Language | CPU time vs fastest | Memory vs lowest | Energy vs C | Execution model |
|---|---|---|---|---|
1.19 |
2.81 |
1.00 |
n/a |
|
n/a |
n/a |
n/a |
compiled to native executables (GnuCOBOL implementation) |
|
1.35 |
3.36 |
1.34 |
n/a |
|
1.93 |
18.87 |
3.14 |
compiled to CIL, then JIT-compiled to native code at run time |
|
2.64 |
5.34 |
2.52 |
compiled |
|
4.04 |
3.73 |
3.23 |
compiled (statically typed) |
|
n/a |
n/a |
n/a |
n/a |
|
4.16 |
33.20 |
1.98 |
compiled-VM-bytecode (Java Virtual Machine, abstract machine with instruction set) |
|
6.78 |
37.21 |
4.45 |
interpreted or just-in-time compiled |
|
n/a |
n/a |
n/a |
compiled, multi-target (JVM, Android, JavaScript, Wasm, Native) |
|
n/a |
n/a |
n/a |
n/a |
|
n/a |
n/a |
n/a |
compiled code plus a required runtime system |
|
40.68 |
13.96 |
29.30 |
compiled to bytecode (opcodes), cached by OPcache |
|
74.18 |
12.30 |
75.88 |
compiled to bytecode, run by the CPython interpreter |
|
n/a |
n/a |
n/a |
interpreted language core with optional byte-code compiler |
|
60.09 |
14.03 |
69.91 |
compiled to VM instructions (YARV) and interpreted |
|
1.45 |
4.35 |
1.03 |
ahead-of-time compiled |
|
n/a |
n/a |
n/a |
compiled; JVM, JavaScript and Native runtimes |
|
3.94 |
10.86 |
2.79 |
n/a |
|
n/a |
n/a |
21.50 |
transpiled (compile-time type checker over the JavaScript runtime) |
|
n/a |
n/a |
n/a |
compiled to CIL by a CLR-targeting compiler |
|
Pascal/Delphi |
4.82 |
1.10 |
2.14 |
compiled (Free Pascal compiler) |
Perl |
78.29 |
13.65 |
79.58 |
compiled to an internal form, then interpreted |
Ada |
3.53 |
6.05 |
1.70 |
n/a |
Lisp |
4.44 |
21.28 |
2.27 |
native-code compiler (SBCL), optional interpreter |
Assembly |
n/a |
n/a |
n/a |
assembler (NASM) translating source to object formats |
Dart |
5.99 |
81.72 |
3.83 |
JIT (Dart VM) and AOT compiled machine code |
Julia |
2.28 |
123.98 |
n/a |
n/a |
Zig |
n/a |
n/a |
n/a |
n/a |
Elixir |
n/a |
n/a |
n/a |
runs on the Erlang VM |
Lua |
56.17 |
4.52 |
45.98 |
bytecode interpreted by a register-based virtual machine |
Haskell |
4.25 |
11.80 |
3.10 |
compiled (GHC) or interpreted (GHCi) |
Mojo |
n/a |
n/a |
n/a |
compiled (ahead-of-time) |
SQL |
n/a |
n/a |
n/a |
declarative; executed by the DBMS via a planner-generated execution plan |
Bash |
n/a |
n/a |
n/a |
interpreted (command language interpreter) |
TechEmpower web-framework throughput (Round 23, 2025-01-30, TechEmpower Framework Benchmarks) is kept in the data files but is not charted here. Benchmarks change with each language release and each edition of the sources.
Learning curve and ease of use
Ease of learning has no universal measure, so this page uses transparent proxies and labels them: the onboarding score (what the official site offers a newcomer), the size of the benchmark programs (a verbosity proxy), the type system, and how many people who are learning to code use the language. Python, C#, Go, Rust, Scala, Visual Basic, Ada and Haskell reach the maximum onboarding score of 10: their official sites pass all four checks. C and JavaScript score 2.5, one of the four checks each (the C standard is maintained by a committee, so its official site hosts no tutorial). Source size ranges from 442.54 gzip bytes for Ruby, 483.39 for Python and 510.95 for PHP, up to 1,003.60 for Rust and 1,375.31 for Ada. Among people learning to code, Python (71.8%) and JavaScript (62.8%) are the most used in the 2025 Stack Overflow survey.
The onboarding score measures how well the official site helps a beginner, not how hard the language is; a language with a rich third-party community can be easy to learn and still score low. Use it together with the usage figures. The Python, Go and Rust references on this site start with a getting-started page for that reason.
| Language | Onboarding score (0-10) | Source size, gzip bytes | SO 2025 learning-to-code usage, % | Type system |
|---|---|---|---|---|
2.5 |
691.65 |
48 |
Static, weak, manifest, nominal |
|
n/a |
n/a |
1.4 |
Weak, static |
|
5.0 |
749.30 |
44.6 |
Static, strong, nominative, partially inferred |
|
10.0 |
710.88 |
23.1 |
Static, dynamic |
|
7.5 |
766.70 |
2 |
Strong, static, manifest |
|
10.0 |
653.15 |
13.1 |
Inferred, static, strong |
|
5.0 |
n/a |
2 |
Dynamic, static, strong, duck |
|
7.5 |
673.62 |
40.8 |
Static, strong, safe, nominative, manifest |
|
2.5 |
632.68 |
62.8 |
Dynamic, weak, duck |
|
7.5 |
n/a |
10.8 |
Inferred, static, strong |
|
n/a |
n/a |
10.2 |
dynamic, weak |
|
n/a |
n/a |
n/a |
Static, dynamic, weak |
|
5.0 |
510.95 |
14.5 |
Dynamic, weak, gradual |
|
10.0 |
483.39 |
71.8 |
Duck, dynamic, strong |
|
5.0 |
n/a |
8.5 |
Dynamic |
|
7.5 |
442.54 |
3.7 |
Duck, dynamic, strong |
|
10.0 |
1003.60 |
23.1 |
n/a |
|
10.0 |
n/a |
2.4 |
Inferred, static, strong, structural |
|
6.7 |
670.24 |
3.9 |
Static, strong, inferred |
|
7.5 |
n/a |
31.9 |
Duck, gradual, strong, structural |
|
10.0 |
n/a |
4.6 |
Static, both strong and weak |
|
Pascal/Delphi |
n/a |
817.00 |
1.7 |
Static and dynamic (dynamic typing through variants, array of const, and RTTI), strong |
Perl |
5.0 |
522.80 |
1.9 |
Dynamic |
Ada |
10.0 |
1375.31 |
3 |
Static, strong, safe, nominal |
Lisp |
n/a |
920.18 |
4.1 |
Dynamic, strong |
Assembly |
n/a |
n/a |
19.4 |
None |
Dart |
7.5 |
624.65 |
7.8 |
1.x: Optional; 2.x: Inferred |
Julia |
7.5 |
570.74 |
n/a |
Dynamic |
Zig |
5.0 |
n/a |
4.9 |
Static, strong, inferred, nominal, generic |
Elixir |
7.5 |
n/a |
2.5 |
dynamic, strong, gradual since version 1.20 |
Lua |
5.0 |
591.65 |
15 |
Dynamic, strong, duck |
Haskell |
10.0 |
824.78 |
n/a |
Inferred, static, strong |
Mojo |
7.5 |
n/a |
1.1 |
n/a |
SQL |
n/a |
n/a |
45.4 |
Static, strong |
Bash |
n/a |
n/a |
47 |
n/a |
Learning materials change slowly, but official sites are redesigned from time to time, so the onboarding checks should be repeated when the data is refreshed.
Security and safety
Memory-safety bugs (buffer overflows, use after free) are the largest class of serious vulnerabilities in large C and C++ code bases: Microsoft reported that about 70% of the vulnerabilities it fixes are memory-safety issues (MSRC, 2019-07-18), the Chromium project says about 70% of its serious security bugs are of that kind (Chromium security page), and Google reported that memory-safety issues were 76% of Android vulnerabilities in 2019 and 24% in 2024 (Google Security Blog, 2024-09-25). The CISA roadmaps guidance of December 2023 (CISA) and a CISA alert of 2025-06-24 (CISA alert) recommend moving to memory-safe languages.
Only five languages have a classification that could be read in a retrieved document: Java is memory safe (Wikipedia, Memory safety), Rust is memory safe unless an unsafe construct is used (CISA roadmaps, December 2023), C and C++ are not memory safe (ONCD, February 2024), and Fortran is not memory safe (Wikipedia, Memory safety). All other languages are n/a; this does not mean they are unsafe, only that no retrieved document classifies them. Languages with a garbage collector or managed runtime (Java, C#, Go, Python and others) avoid most memory errors by design, but the data here does not classify them and the page does not guess. No reliable per-language CVE statistics were found, so none are shown.
| Language | Memory-safety classification | Source | Edition |
|---|---|---|---|
not memory safe |
Feb 2024 |
||
not memory safe |
Feb 2024 |
||
not memory safe |
retrieved 2026-10-26 |
||
memory-safe |
retrieved 2026-10-26 |
||
memory-safe unless unsafe construct |
Dec 2023 |
Guidance on memory safety is changing quickly; check the current CISA and NSA publications before deciding for a regulated project.
Versatility and platforms
Versatility describes how many kinds of software a language is used for and where it runs. The data are the paradigms, purposes and platforms as stated in each language’s encyclopedia article (retrieved 2026-10-26). The chart separates general-purpose languages from languages designed for a specific purpose (for example COBOL for business data processing, R for statistics, MATLAB for numerical computing, and SQL for databases). Most general-purpose languages are multi-paradigm, and the editorial groups on the timeline show their typical niche.
| Language | Paradigms | Purposes | Platforms |
|---|---|---|---|
imperative (procedural); structured; multi-paradigm |
general-purpose; operating systems; device drivers; protocol stacks |
n/a (infobox OS: Cross-platform) |
|
procedural; imperative; object-oriented; generic |
business data processing; finance; administrative systems; mainframes |
n/a |
|
procedural; imperative; functional; object-oriented; generic; modular; reflective; design by contract |
general-purpose; systems programming; embedded and resource-constrained software; large systems |
Cross-platform (infobox OS) |
|
structured; imperative; object-oriented; event-driven; task-driven; functional; generic; reflective; concurrent |
general-purpose |
Common Language Infrastructure |
|
structured; imperative (procedural, object-oriented); generic; array |
numeric computing; scientific computing |
n/a |
|
concurrent; imperative; functional; object-oriented |
general-purpose; wide range of software development |
DragonFly BSD; FreeBSD; Linux; macOS; NetBSD; OpenBSD; Plan 9; Solaris; Windows (infobox OS) |
|
object-oriented; imperative; functional; aspect-oriented; scripting |
general-purpose; scripting on the Java platform |
Java SE |
|
generic; object-oriented (class-based); functional; imperative; reflective; concurrent |
general-purpose; write once run anywhere |
n/a (JVM-hosted) |
|
event-driven; functional; imperative; procedural; object-oriented |
core technology of the Web |
n/a |
|
object-oriented; functional; imperative; block structured; generic; reflective; concurrent |
general-purpose; cross-platform |
Android; JVM; iOS and iPadOS; tvOS and watchOS; macOS; Linux; Windows; JavaScript; WebAssembly (beta); LLVM via Kotlin/Native |
|
functional; imperative; procedural; object-oriented; array |
numerical computing; matrix operations; plotting; algorithm implementation; user interfaces |
IA-32;x86-64;ARM64 |
|
reflective; class-based object-oriented |
general-purpose; object-oriented extension of C |
Cross-platform (infobox OS) |
|
imperative; functional; object-oriented; procedural; reflective |
web development; general-purpose scripting; command-line scripts |
Unix-like; Windows; macOS; IBM i; OpenVMS; IBM Z (infobox OS) |
|
object-oriented; procedural (imperative); functional; structured; reflective |
general-purpose; readability |
64-bit Linux and macOS;32/64-bit Windows 10 and later (infobox) |
|
procedural; object-oriented; functional; reflective; imperative; array |
statistical analysis; data visualization; data mining; bioinformatics; data science |
arm64;x86-64 |
|
functional; imperative; object-oriented; reflective |
general-purpose; programmer productivity |
Cross-platform (infobox OS) |
|
concurrent; functional; generic; imperative; structured |
general-purpose; performance; type safety; concurrency; memory safety |
Cross-platform |
|
concurrent; functional; imperative; object-oriented |
general-purpose |
JVM; JavaScript (Scala.js); LLVM (Scala Native, experimental) |
|
protocol-oriented; object-oriented; functional; imperative; block-structured; declarative; concurrent |
general-purpose; Apple platforms |
Darwin; iOS; iPadOS; macOS; tvOS; visionOS; watchOS; Linux; Windows; FreeBSD; Android; z/OS (infobox OS) |
|
functional; generic; imperative; object-oriented |
large applications; static typing for JavaScript |
n/a |
|
structured; imperative; object-oriented; declarative; generic; reflective; event-driven |
.NET applications (Visual Basic .NET page) |
.NET Framework; Mono;.NET (Windows chief OS; also Android; BSD; iOS; Linux; macOS; Solaris; Unix) |
|
Pascal/Delphi |
imperative; structured; object-oriented; functional (Delphi dialect); component-based; event-driven; generic |
rapid application development of desktop; mobile; web; console software (Delphi) |
Delphi targets Windows; Linux; macOS; Android; iOS (wikipedia-delphi); Object Pascal: ARM; x86; PowerPC; ppc64; SPARC; MIPS; CLI; Java |
Perl |
multi-paradigm |
general-purpose; interpreted; dynamically typed |
Cross-platform (infobox OS) |
Ada |
structured; imperative; object-oriented; aspect-oriented; concurrent; array; distributed; generic; procedural; meta |
reliable large-scale software |
Multi- or cross-platform (infobox OS) |
Lisp |
functional; procedural; reflective; meta |
artificial intelligence research; practical mathematical notation for programs |
n/a |
Assembly |
imperative; unstructured; metaprogramming through macros |
low-level programming for a specific processor architecture |
n/a |
Dart |
functional; imperative; object-oriented; reflective |
web apps; mobile apps; server applications; desktop applications |
Cross-platform |
Julia |
multiple dispatch (primary); functional; array; procedural; structured; reflective; meta; multistaged |
general-purpose high-level |
Tier 1: 32/64-bit Linux; Windows 10 and later; x86-64; IA-32;64-bit macOS Apple silicon; Nvidia GPUs via CUDA on Linux; further tiers 2-3 |
Zig |
imperative (primary); concurrent; procedural; functional |
general-purpose; systems programming; performance; simplicity; metaprogramming |
x86-64; ARM64; WebAssembly (primary); Tier 2: ARM; IA-32; RISC-V; MIPS64; POWERPC64; SPARC64; OS: Linux; macOS; FreeBSD; Windows |
Elixir |
functional; concurrent; distributed; process-oriented |
general-purpose; distributed fault-tolerant software |
Erlang (BEAM virtual machine) |
Lua |
scripting; imperative (procedural, prototype-based, object-oriented); functional; meta; reflective |
embedded use in other applications |
Cross-platform (infobox OS) |
Haskell |
purely functional |
general-purpose |
Cross-platform (infobox OS) |
Mojo |
imperative (primary); functional; generic |
systems programming |
Cross-platform; Linux; macOS |
SQL |
declarative |
managing data in relational database management systems |
Cross-platform (infobox OS) |
Bash |
n/a |
interactive command interpreter; shell scripting; automation on Unix-like systems |
GNU (infobox platform); OS: Linux; Unix-like; macOS; Windows; Android; Oracle Solaris |
The checklist below is what the Versatility axis scores; its caption gives how many pairs are confirmed, ruled out and unverified. Read a low score as "few uses confirmed by the sources read", not as "few uses".
| Language | Web front end | Back end | Mobile | Desktop | Embedded | Systems | Data and AI | Scientific and HPC | Mainframe | Score |
|---|---|---|---|---|---|---|---|---|---|---|
no |
yes |
yes |
yes |
yes |
yes |
n/a |
yes |
yes |
7.8 |
|
no |
yes |
no |
n/a |
no |
n/a |
n/a |
n/a |
yes |
2.2 |
|
no |
yes |
yes |
yes |
yes |
yes |
yes |
yes |
yes |
8.9 |
|
yes |
yes |
yes |
yes |
yes |
n/a |
yes |
n/a |
n/a |
6.7 |
|
no |
n/a |
n/a |
n/a |
n/a |
n/a |
n/a |
yes |
yes |
n/a |
|
n/a |
yes |
yes |
n/a |
n/a |
n/a |
n/a |
n/a |
yes |
n/a |
|
n/a |
yes |
n/a |
yes |
n/a |
n/a |
n/a |
n/a |
n/a |
n/a |
|
no |
yes |
yes |
yes |
n/a |
n/a |
n/a |
n/a |
yes |
4.4 |
|
yes |
yes |
yes |
yes |
yes |
no |
yes |
n/a |
yes |
7.8 |
|
yes |
yes |
yes |
yes |
n/a |
n/a |
yes |
n/a |
n/a |
5.6 |
|
n/a |
n/a |
n/a |
yes |
yes |
no |
n/a |
yes |
n/a |
n/a |
|
no |
n/a |
yes |
yes |
n/a |
n/a |
n/a |
n/a |
n/a |
n/a |
|
no |
yes |
n/a |
yes |
n/a |
no |
n/a |
n/a |
n/a |
n/a |
|
n/a |
yes |
yes |
yes |
yes |
n/a |
yes |
yes |
yes |
7.8 |
|
n/a |
yes |
n/a |
n/a |
n/a |
no |
yes |
yes |
n/a |
n/a |
|
n/a |
yes |
n/a |
n/a |
n/a |
n/a |
n/a |
n/a |
n/a |
n/a |
|
n/a |
yes |
yes |
yes |
yes |
yes |
n/a |
n/a |
yes |
6.7 |
|
yes |
yes |
yes |
n/a |
n/a |
n/a |
yes |
n/a |
n/a |
n/a |
|
n/a |
yes |
yes |
yes |
yes |
yes |
yes |
n/a |
n/a |
6.7 |
|
yes |
yes |
yes |
yes |
n/a |
no |
n/a |
n/a |
n/a |
4.4 |
|
no |
n/a |
no |
yes |
n/a |
n/a |
n/a |
n/a |
n/a |
n/a |
|
Pascal/Delphi |
n/a |
n/a |
yes |
yes |
n/a |
n/a |
n/a |
n/a |
n/a |
n/a |
Perl |
n/a |
yes |
n/a |
yes |
n/a |
n/a |
n/a |
n/a |
n/a |
n/a |
Ada |
no |
n/a |
n/a |
n/a |
yes |
yes |
n/a |
n/a |
n/a |
n/a |
Lisp |
n/a |
n/a |
n/a |
n/a |
n/a |
yes |
yes |
n/a |
n/a |
n/a |
Assembly |
no |
n/a |
n/a |
n/a |
yes |
yes |
n/a |
n/a |
yes |
n/a |
Dart |
yes |
yes |
yes |
yes |
yes |
n/a |
n/a |
n/a |
n/a |
5.6 |
Julia |
n/a |
yes |
n/a |
yes |
yes |
yes |
yes |
yes |
n/a |
6.7 |
Zig |
n/a |
yes |
n/a |
yes |
yes |
yes |
n/a |
n/a |
n/a |
n/a |
Elixir |
n/a |
yes |
n/a |
n/a |
yes |
n/a |
yes |
n/a |
n/a |
n/a |
Lua |
n/a |
yes |
n/a |
n/a |
yes |
n/a |
n/a |
n/a |
n/a |
n/a |
Haskell |
n/a |
yes |
n/a |
n/a |
n/a |
n/a |
n/a |
n/a |
n/a |
n/a |
Mojo |
n/a |
n/a |
n/a |
n/a |
n/a |
yes |
yes |
n/a |
n/a |
n/a |
SQL |
no |
n/a |
no |
no |
n/a |
no |
n/a |
n/a |
yes |
1.1 |
Bash |
no |
n/a |
no |
no |
n/a |
no |
n/a |
n/a |
n/a |
n/a |
The versatility axis of the radar charts does not use these encyclopedia phrases. It scores a checklist of nine application domains (web front end, back end, mobile, desktop, embedded, systems, data and AI, scientific and HPC, mainframe), where each yes is backed by a cited source; the rubric is in How the scores were assigned.
Job market and community
The salary data come from the Stack Overflow 2024 "top paying technologies" chart, because later surveys do not publish salary by language. The highest medians among the compared languages are Elixir (USD 96,000), Perl (90,000), Ruby (90,221), Scala (88,619), Lisp (80,555) and Groovy (79,330); Go (76,433) and Rust (76,292) follow. The lowest are Ada (42,584), Dart (44,576) and PHP (49,586). The widely used languages sit in the middle: Python 67,723, JavaScript 63,694, Java 61,714 and C# 66,066. A high salary for a niche language often reflects few, senior positions rather than a wide market, so combine it with the popularity figures. The JetBrains survey reports that Scala accounts for 38% of the top-paid developers, which is a share, not a salary (JetBrains State of Developer Ecosystem 2025). Job demand by language is not published by the Stack Overflow survey, and the IEEE Spectrum jobs ranking is kept in the data files (IEEE Spectrum) but not charted. Community indicators such as open-source contributors come from GitHub Octoverse 2025.
| Language | Median salary, USD per year |
|---|---|
Elixir |
96,000 |
90,221 |
|
Perl |
90,000 |
88,619 |
|
Lisp |
80,555 |
79,330 |
|
76,433 |
|
76,292 |
|
Zig |
75,332 |
Bash |
75,184 |
75,184 |
|
73,648 |
|
Lua |
72,542 |
70,351 |
|
70,000 |
|
Julia |
70,000 |
Haskell |
68,337 |
67,723 |
|
66,066 |
|
65,907 |
|
65,815 |
|
SQL |
64,919 |
64,444 |
|
Pascal/Delphi |
64,444 |
64,444 |
|
63,694 |
|
63,694 |
|
63,694 |
|
61,714 |
|
Assembly |
60,834 |
53,703 |
|
49,586 |
|
Dart |
44,576 |
Ada |
42,584 |
Salary data are annual at best and lag the market by more than a year.
Other metrics
Other properties that matter when choosing a language are whether it has a formal standard, how often it is released, and under which licence its reference implementation is distributed. C (ISO/IEC 9899:2024), C++ (ISO/IEC 14882:2024), COBOL (ISO/IEC 1989:2023), C# (ECMA-334 and ISO/IEC 20619:2023) and JavaScript (ECMA-262, ECMAScript 2026) have formal standards; Python, Rust and Java have no formal standard in a source that was read, which is not a verified absence. Release cadences range from about every six weeks (Rust) to every six months (Java, with an LTS line) to annual (Python, C#). The licence chart counts the licence of each reference implementation as recorded by GitHub; 19 of the 35 languages have none recorded (n/a), mostly languages with several implementations or a custom licence.
| Language | Standard | Release cadence | Licence of the reference implementation |
|---|---|---|---|
ISO/IEC 9899:2024 (C23), ISO/IEC JTC 1/SC 22/WG 14 |
n/a |
n/a |
|
ISO/IEC 1989:2023 |
n/a |
n/a |
|
ISO/IEC 14882:2024 (C++23); C++26 not yet published |
n/a |
n/a |
|
ECMA-334 7th edition (Dec 2023) = ISO/IEC 20619:2023; earlier editions ISO/IEC 23270 |
annual with .NET (10 2025-11-11; 9 2024-11-12; 8 2023-11-14) |
MIT (Roslyn compiler) |
|
ISO/IEC 1539-1:2023 (Fortran 2023) |
n/a |
n/a |
|
n/a |
every 6 months (1.27 2026-08-19; 1.26 2026-02-10; 1.25 2025-08-12) |
BSD-3-Clause |
|
n/a |
irregular (6.0 2026-09-19; 5.1 2026-08-15; 5.0 2025-08-21; 4.0 2022-01-25) |
Apache-2.0 |
|
n/a |
every 6 months, March and September (27 2026-09-15; 26 2026-03-17; 25 2025-09-16) |
GPL-2.0 (GitHub SPDX for OpenJDK jdk repo) |
|
ECMA-262 17th edition (ECMAScript 2026), June 2026 |
Node.js majors about every 6 months (26: 2026-05-05; 25: 2025-10-15; 24: 2025-05-06); ECMAScript edition annual |
n/a |
|
n/a |
about every 6 months (2.4 2026-06-03; 2.3 2025-12-16; 2.2 2025-06-23) |
n/a |
|
n/a |
n/a |
n/a |
|
n/a |
n/a |
n/a |
|
n/a |
annual (8.5 2025-11-20; 8.4 2024-11-21; 8.3 2023-11-23) |
BSD-3-Clause |
|
n/a |
annual (3.15 2026-10-09; 3.14 2025-10-07; 3.13 2024-10-07) |
n/a |
|
n/a |
n/a |
GPL-2.0 (GitHub SPDX) |
|
ISO/IEC 30170:2012; JIS X 3017:2011 |
annual, Dec 25 (4.0 2025-12-25; 3.4 2024-12-24; 3.3 2023-12-25) |
Ruby License and BSD-2-Clause (CRuby since 1.9.3) |
|
n/a |
about every 6 weeks (1.99 2026-10-01; 1.98 2026-08-20; 1.97 2026-07-09) |
Apache-2.0 (GitHub SPDX; project is dual-licensed MIT/Apache per its repo, not verified here) |
|
n/a |
irregular, several 3.x minors per year (3.10 2026-10-12; 3.9 2026-09-03; 3.8 2026-01-22; 3.7 2025-05-07) |
Apache-2.0 |
|
n/a |
n/a |
Apache-2.0 |
|
n/a |
n/a |
Apache-2.0 |
|
n/a |
ships with .NET annual releases (10 2025-11-11); VB language-specific cadence not found |
MIT (dotnet/runtime) |
|
Pascal/Delphi |
ISO 7185:1990 (Pascal); ISO/IEC 10206:1990 (Extended Pascal) |
n/a |
n/a |
Perl |
n/a |
annual (5.44 2026-07-15; 5.42 2025-07-03; 5.40 2024-06-09) |
n/a |
Ada |
ISO/IEC 8652:2023 (Ada 2022) |
n/a |
n/a |
Lisp |
ANSI INCITS 226-1994 (formerly X3.226), ANSI X3J13; reaffirmed S2018 |
n/a |
n/a |
Assembly |
n/a |
n/a |
n/a |
Dart |
ECMA-408 (editions approved 2014-2015, Ecma TC52) |
n/a |
BSD-3-Clause |
Julia |
n/a |
about annual minors (1.13 2026-09-10; 1.12 2025-10-08; 1.11 2024-10-07) |
MIT |
Zig |
n/a |
about every 6 months (0.17.0 2026-10-01; 0.16.0 2026-04-13; 0.15.2 2025-10-11) |
MIT |
Elixir |
n/a |
about every 6 months (1.20 2026-06-03; 1.19 2025-10-16; 1.18 2024-12-19) |
Apache-2.0 |
Lua |
n/a |
irregular (5.5 2025-12-22; 5.4 2020-06-29; 5.3 2015-01-12) |
n/a |
Haskell |
n/a |
GHC about annual, roughly 1-2 majors/yr (9.14 2025-12-19; 9.12 2024-11-15; 9.10 2024-05-10) |
n/a |
Mojo |
n/a |
n/a |
n/a |
SQL |
ISO/IEC 9075:2023 (SQL:2023) |
n/a |
n/a |
Bash |
n/a |
n/a |
n/a |
Standards and licences change rarely, but the releases listed are as of the snapshot date.
Radar comparisons
Radar charts show nine axes on a 0 to 10 scale (popularity, ecosystem, performance, memory, energy, learning ease, safety, versatility and job market), computed from the sourced data with the rubric in How the scores were assigned. A language appears in each group where it fits (for example Python is both a scripting and a scientific language, and C both C family and systems). A gap in an outline means the score is n/a, not zero. Read them as a profile of strengths, not as a single winning score: the axes are not weighted and a missing axis makes a language look smaller than it is.
JVM languages (Java, Kotlin, Scala, Groovy) share the Maven Central ecosystem, so they differ mostly in popularity, safety data and learning. Java is the only one with benchmark and safety data.
C family (C, C++, C#, Objective-C): C and C++ lead on performance, memory and energy but score low on safety; C# trades some speed for a verified registry count (NuGet), which C and C++ lack, so only C# has an Ecosystem value.
Scripting languages (Python, JavaScript, TypeScript, Ruby, PHP, Perl, Lua, Bash): Python and JavaScript lead on popularity and ecosystem; Python and Ruby on ease of learning; and all of them score low on performance and energy, with JavaScript the best of the group.
Scientific languages (Python, R, MATLAB, Julia, Fortran): Fortran and Julia are the fastest on CPU; Python wins on popularity and ease; R and MATLAB have few benchmark inputs, so their outlines have gaps.
Systems languages (C, C++, Rust, Go, Zig, Ada): C, C++ and Rust are close on performance and energy; Rust adds a memory-safety classification and a verified registry count (361,763 crates), which C and C++ lack. Zig has little data and its outline is mostly gaps.
Legacy languages (COBOL, Fortran, Pascal/Delphi, Visual Basic, Lisp, Assembly): these score low on popularity and have the most gaps. COBOL has data only for popularity, versatility and job market. Fortran is grouped here by age (1957); modern Fortran still scores high on performance and energy, which is why the recommendations keep it for scientific and HPC work.
The scores behind every radar chart are listed below, so no outline has to be read by eye.
| Language | Popularity | Ecosystem | Performance | Memory | Energy | Learning (ease) | Safety | Versatility | Job market |
|---|---|---|---|---|---|---|---|---|---|
6.1 |
n/a |
10.0 |
8.0 |
10.0 |
4.3 |
2.0 |
7.8 |
4.0 |
|
1.4 |
n/a |
n/a |
n/a |
n/a |
n/a |
n/a |
2.2 |
5.1 |
|
6.0 |
n/a |
9.7 |
7.6 |
9.3 |
5.2 |
2.0 |
8.9 |
4.1 |
|
5.3 |
7.3 |
8.8 |
4.0 |
7.4 |
7.9 |
n/a |
6.7 |
4.4 |
|
1.8 |
n/a |
8.1 |
6.7 |
7.9 |
6.3 |
2.0 |
n/a |
5.2 |
|
3.2 |
n/a |
7.1 |
7.4 |
7.3 |
8.3 |
n/a |
n/a |
6.3 |
|
0.5 |
7.6 |
n/a |
n/a |
n/a |
n/a |
n/a |
n/a |
6.9 |
|
6.2 |
7.6 |
7.0 |
2.8 |
8.4 |
6.9 |
10.0 |
4.4 |
3.6 |
|
7.7 |
10.0 |
5.8 |
2.5 |
6.6 |
4.7 |
n/a |
7.8 |
4.0 |
|
1.5 |
7.6 |
n/a |
n/a |
n/a |
n/a |
n/a |
5.6 |
4.3 |
|
1.6 |
n/a |
n/a |
n/a |
n/a |
n/a |
n/a |
n/a |
2.1 |
|
1.1 |
n/a |
n/a |
n/a |
n/a |
n/a |
n/a |
n/a |
5.8 |
|
3.2 |
7.2 |
1.6 |
4.6 |
2.3 |
6.9 |
n/a |
n/a |
1.3 |
|
9.7 |
8.0 |
0.1 |
4.9 |
0.1 |
9.6 |
n/a |
7.8 |
4.7 |
|
2.7 |
3.6 |
n/a |
n/a |
n/a |
n/a |
n/a |
n/a |
4.1 |
|
1.2 |
6.1 |
0.6 |
4.6 |
0.3 |
8.8 |
n/a |
n/a |
8.9 |
|
3.4 |
6.9 |
9.5 |
7.1 |
9.9 |
6.4 |
8.0 |
6.7 |
6.3 |
|
0.5 |
7.6 |
n/a |
n/a |
n/a |
n/a |
n/a |
n/a |
8.6 |
|
2.0 |
2.7 |
7.1 |
5.2 |
7.7 |
6.5 |
n/a |
6.7 |
6.1 |
|
4.0 |
10.0 |
n/a |
n/a |
3.0 |
n/a |
n/a |
4.4 |
4.4 |
|
2.7 |
7.3 |
n/a |
n/a |
n/a |
n/a |
n/a |
n/a |
4.0 |
|
Pascal/Delphi |
1.4 |
n/a |
6.7 |
10.0 |
8.3 |
n/a |
n/a |
n/a |
4.1 |
Perl |
1.6 |
4.5 |
0.0 |
4.7 |
0.0 |
6.8 |
n/a |
n/a |
8.9 |
Ada |
1.4 |
n/a |
7.4 |
6.4 |
8.8 |
5.0 |
n/a |
n/a |
0.0 |
Lisp |
0.7 |
n/a |
6.9 |
3.7 |
8.1 |
n/a |
n/a |
n/a |
7.1 |
Assembly |
1.8 |
n/a |
n/a |
n/a |
n/a |
n/a |
n/a |
n/a |
3.4 |
Dart |
1.3 |
5.2 |
6.1 |
0.9 |
6.9 |
7.2 |
n/a |
5.6 |
0.4 |
Julia |
1.5 |
2.9 |
8.4 |
0.0 |
n/a |
7.6 |
n/a |
6.7 |
5.1 |
Zig |
0.2 |
n/a |
n/a |
n/a |
n/a |
n/a |
n/a |
n/a |
6.1 |
Elixir |
0.3 |
3.5 |
n/a |
n/a |
n/a |
n/a |
n/a |
n/a |
10.0 |
Lua |
1.3 |
2.0 |
0.8 |
7.0 |
1.3 |
6.2 |
n/a |
n/a |
5.6 |
Haskell |
0.4 |
3.3 |
7.0 |
5.0 |
7.4 |
7.3 |
n/a |
n/a |
4.8 |
Mojo |
0.0 |
n/a |
n/a |
n/a |
n/a |
n/a |
n/a |
n/a |
n/a |
SQL |
7.0 |
n/a |
n/a |
n/a |
n/a |
n/a |
n/a |
1.1 |
4.2 |
Bash |
8.3 |
n/a |
n/a |
n/a |
n/a |
n/a |
n/a |
n/a |
6.1 |
Summary and recommendations
These recommendations are an editorial judgement built on the data above; they are not part of the sourced data. Every one cites the metric it relies on, and every metric has a snapshot date of 2026-10-26. The data change fast: popularity indices move every month, registry counts every day, and the energy study is from 2021. Re-check the numbers before a decision that will last years.
Avoid for new projects.
-
COBOL ranks 16th in TIOBE with 0.89%, has a PYPL share of 0.04%, 1.1% usage in the Stack Overflow survey 2026 and no verified registry (Popularity, Ecosystem). Keep it where it already runs (its median salary is USD 70,000), but do not start a new system in it.
-
Visual Basic has fallen from 8.66% of PYPL in 2004 to 0.10% and has 4% usage in the 2026 survey (Popularity). Existing .NET applications can continue; new ones fit C# better, on the same NuGet ecosystem (528,060 package IDs).
Use with care.
-
PHP still has 17.7% survey usage and a large registry (470,008 package names), but its PYPL share fell from 19.71% to 1.74%, it is 40.68 times the fastest CPU time with 29.30 times the energy of C, and its median salary (USD 49,586) is the third lowest in the dataset, above only Ada and Dart. It is a reasonable choice for maintaining an existing site; weigh it against alternatives for a new one.
Safe mainstream choices.
-
JavaScript and TypeScript lead survey usage (62% and 43.8%) and share the largest registry (npm, 4,532,034 packages); TypeScript has the highest admired score of the two (53%). They are the default for the web.
-
Python is first in TIOBE (19.23%) and PYPL (53.9%), has 923,102 PyPI projects and the highest learning-to-code usage (71.8%). Its cost is performance: 74.18 times the fastest CPU time and 75.88 times the energy of C, which is why it is paired with compiled libraries.
-
Java (8.41% TIOBE, 661,801 Maven Central artifacts) is classified as memory safe and has a six-month release cadence with LTS releases. C# (3.79% TIOBE, 528,060 NuGet package IDs) is 1.93 times the fastest CPU time, the best of the managed languages here.
Trends.
-
Python for AI and machine learning. The dataset does not measure domains, so this is editorial: Python’s TIOBE rating grew from 3.90% in 2016 to 19.23% and its ecosystem is the second largest of the registries compared. Treat the domain claim as a hypothesis the data are consistent with, not a result.
-
Rust for safety and performance. Rust has the highest admired score (67.4%), CPU time 1.45 times the fastest and energy 1.03 times that of C, a memory-safe-unless-unsafe classification, 361,763 crates and growth in TIOBE from 0.26% (2016) to 1.44%.
Recommendation by purpose.
| Purpose | Recommended | Why (metrics used) |
|---|---|---|
Web front end |
TypeScript (or JavaScript) |
JavaScript has the highest survey usage of the compared languages (62%), TypeScript 43.8%; npm has 4,532,034 packages. Popularity indices and the survey are the evidence. To choose the framework, see the Web Frameworks Comparison. |
Back end |
Large registries (Maven Central 661,801, NuGet 528,060, PyPI 923,102), CPU times of 1.93 (C#), 4.04 (Go) and 4.16 (Java) times the fastest, Java classified as memory safe, Go with full onboarding score (10). Choose by team skills and the existing platform. To choose the framework, see the Backend Frameworks Comparison. |
|
Mobile |
Kotlin shares the Maven Central ecosystem (661,801 artifacts) and Swift has CPU time 3.94 times the fastest; the data do not rank mobile frameworks, so this follows each platform’s main language. Swift has a much smaller registry (12,380 packages). |
|
Desktop |
C# on Windows, Java or C++ for cross-platform and performance-critical apps |
NuGet and Maven Central registries; C++ is 1.35 times the fastest CPU time but not memory safe. |
Systems and embedded |
Rust for new code, C and C++ where the toolchain requires them |
CPU 1.19 ©, 1.35 (C++), 1.45 (Rust) times the fastest; energy 1.00, 1.34 and 1.03 times that of C; only Rust is classified memory safe unless unsafe, C and C++ are not (Performance, Security and safety). |
Data science and AI/ML |
Python: first in TIOBE and PYPL, 923,102 PyPI projects. R: 25,529 CRAN packages and a specific-purpose design. The domain use is editorial (see Trends). |
|
Scientific and HPC |
CPU times of 2.64 (Fortran), 1.35 (C++) and 2.28 (Julia) times the fastest; Julia uses 123.98 times the lowest memory, so check memory use (Performance, Radar comparisons). |
|
Scripting and automation |
Python, Bash for shell tasks |
Python has short sources (483.39 gzip bytes, second only to Ruby) and an onboarding score of 10; Bash has 51.3% survey usage but no benchmark or registry data. |
Legacy maintenance |
COBOL, Visual Basic, fixed-form FORTRAN 77 code, Objective-C, PHP |
These keep working code alive; legacy FORTRAN 77 is listed here, while modern Fortran (2008 and later) stays a recommended choice for scientific and HPC work (see that row); the evidence is their low and falling popularity (Popularity) and in COBOL a median salary of USD 70,000, so plan for scarce skills and a migration path rather than expansion. |
The strongest conclusion is the least surprising one: for most teams the right language is the one the team and the platform already support, and the metrics above matter mainly at the edges (energy-sensitive or safety-critical work, ecosystem gaps, hiring). Refresh the data from the sources in the Bibliography before relying on a number older than a year.
Bibliography
Every number on this page comes from one of the sources below. Each entry gives the publisher, the edition or the retrieval date, the metrics it feeds (the column "Used for" quotes the data columns of the CSV files under scripts/language-charts/data) and the sections whose charts and tables use it. All sources were read on 2026-10-26 unless an edition says otherwise. Captions and tables elsewhere on this page link to the anchors here.
The registry of sources is sources.csv, with 205 entries.
Popularity indices and surveys
| Source | Publisher | Edition or retrieved | Used for | Sections and charts |
|---|---|---|---|---|
TIOBE BV |
October 2026; retrieved 2026-10-26 |
Monthly rating and rank (popularity-current.csv) |
||
Pierre Carbonnelle |
October 2026; retrieved 2026-10-26 (All.js latest row) |
Monthly search-share (popularity-current.csv) |
||
The Top Programming Languages 2025 (Spectrum, Jobs, Trending rankings) |
IEEE Spectrum |
2025 edition published 2025-09-23; data from embedded Flourish visualisation 24825595; retrieved 2026-10-26 |
Ranking scores (popularity-current.csv) |
|
RedMonk (Stephen OGrady) |
January 2026 edition published 2026-04-14; retrieved 2026-10-26 |
Top 20 rank (popularity-current.csv) |
||
Stack Overflow (Stack Exchange Inc.) |
2026 (v2026.1); retrieved 2026-10-26 |
so-usage, so-admired, so-desired (popularity-current.csv); n/a rows in learning-so.csv and jobs.csv |
||
Stack Overflow Developer Survey 2025 - Technology (Learning to Code segment) |
Stack Overflow (Stack Exchange Inc.) |
2025; retrieved 2026-10-26 |
Learning-to-code language usage (learning-so.csv) |
Learning curve and ease of use, Performance, Radar comparisons |
Stack Overflow Developer Survey 2024 - Top paying technologies |
Stack Overflow (Stack Exchange Inc.) |
2024; retrieved 2026-10-26 |
Median salary by language (jobs.csv) |
|
Octoverse: A new developer joins GitHub every second as AI leads TypeScript to #1 |
GitHub |
Octoverse 2025, published 2025-10-28; retrieved 2026-10-26 |
Top languages by contributors (popularity-current.csv) |
|
The State of Developer Ecosystem 2025 (JetBrains Research blog) |
JetBrains |
2025 (survey Apr-Jun 2025); retrieved 2026-10-26 |
Languages to adopt next, Scala primary-language and top-paid shares (popularity-current.csv, jobs.csv) |
Package registries and release data
| Source | Publisher | Edition or retrieved | Used for | Sections and charts |
|---|---|---|---|---|
npm, Inc. |
2026-10-26 |
npm package count; TypeScript latest |
||
Python Software Foundation |
2026-10-26 |
PyPI project count |
||
Sonatype |
2026-10-26 |
Maven Central artifact count |
||
.NET Foundation / Microsoft |
2026-10-26 |
NuGet package ID count |
||
Rust Foundation / crates.io team |
2026-10-26 |
crates.io count |
||
Packagist |
2026-10-26 |
Packagist package names |
||
Ruby Central |
2026-10-26 |
RubyGems gem count |
||
R Foundation / CRAN |
2026-10-26 |
CRAN count; R latest |
||
Dart team |
2026-10-26 |
pub.dev count |
||
Hex.pm |
2026-10-26 |
Hex count by paging |
||
Haskell.org |
2026-10-26 |
Hackage count |
||
LuaRocks |
2026-10-26 |
LuaRocks counts and yearly history |
||
JuliaRegistries |
2026-10-26 |
Julia package count |
||
SPI Operations Ltd |
2026-10-26 |
Swift package count |
||
MetaCPAN |
2026-10-26 |
CPAN distribution count |
||
endoflife.date |
2026-10-26 |
versions, release dates, EOL, cadence |
||
GitHub |
2026-10-26 |
licence, last push, releases |
||
2026-10-26 |
Dart latest |
|||
Zig Software Foundation |
2026-10-26 |
Zig latest and cadence |
||
Free Pascal team |
2026-10-26 |
Free Pascal latest |
||
Wikipedia language articles (C, C++, COBOL, Fortran, Ada, SQL, Common Lisp, Ruby, Pascal, Dart, Objective-C) (2) (3) (4) |
Wikimedia Foundation |
2026-10-26 |
standardisation_body (secondary; ISO catalogue returned 403) |
|
Ecma International |
2026-10-26 |
C# and ECMAScript standards |
||
Docs repo pages programming-languages/<lang>/ides-and-tools.adoc |
Irurueta Docs |
2026-10-26 |
ide_docs_xref |
|
modulecounts.com |
2026-10-26 |
history attempt only; TLS cert mismatch |
Performance, energy and language documentation
| Source | Publisher | Edition or retrieved | Used for | Sections and charts |
|---|---|---|---|---|
The Computer Language Benchmarks Game (fastest-programs pages and box-plot summary) |
Isaac Gouy / Benchmarks Game team |
25.03; measured 05 Mar 2025 u64q; retrieved 2026-10-26 |
cpu_time_vs_fastest; memory_vs_fastest; code_size_loc |
|
TechEmpower |
Round 23; run 2025-01-30; retrieved 2026-10-26 |
techempower_json_rps; techempower_plaintext_rps |
||
Energy efficiency across programming languages: how do energy, time, and memory relate? (SLE 2017) |
Pereira et al.; ACM SIGPLAN SLE 2017 |
SLE 2017 Table 4; retrieved 2026-10-26 |
energy.csv cross-check (identical Table 4 values) |
|
Ranking programming languages by energy efficiency (Science of Computer Programming) |
Pereira et al.; Elsevier |
Preprint dated 2021-03-23; Tables 4 and 6; retrieved 2026-10-26 |
energy.csv |
|
GNU Project |
retrieved 2026-10-26 |
c memory_management |
||
Standard C++ Foundation |
retrieved 2026-10-26 |
cpp memory_management |
||
Microsoft Learn |
retrieved 2026-10-26 |
csharp; visual-basic execution_model |
||
Microsoft Learn |
retrieved 2026-10-26 |
csharp; visual-basic memory_management |
||
Oracle |
SE 21; retrieved 2026-10-26 |
java execution_model |
||
Oracle |
SE 21; retrieved 2026-10-26 |
java memory_management |
||
JetBrains |
retrieved 2026-10-26 |
kotlin execution_model |
||
JetBrains |
retrieved 2026-10-26 |
kotlin memory_management |
||
Scala Center / EPFL |
retrieved 2026-10-26 |
scala execution_model |
||
Python Software Foundation |
retrieved 2026-10-26 |
python execution_model; memory_management |
||
MDN Web Docs |
retrieved 2026-10-26 |
javascript execution_model |
||
MDN Web Docs |
retrieved 2026-10-26 |
javascript memory_management |
||
Microsoft |
retrieved 2026-10-26 |
typescript execution_model |
||
Ruby core team |
master; retrieved 2026-10-26 |
ruby execution_model |
||
Ruby core team |
master; retrieved 2026-10-26 |
ruby memory_management |
||
The PHP Group |
retrieved 2026-10-26 |
php execution_model |
||
The PHP Group |
retrieved 2026-10-26 |
php memory_management |
||
The Go Authors |
retrieved 2026-10-26 |
go execution_model |
||
The Go Authors |
Go 1.19 described; retrieved 2026-10-26 |
go memory_management |
||
Rust Project |
retrieved 2026-10-26 |
rust execution_model |
||
Rust Project |
retrieved 2026-10-26 |
rust memory_management |
||
The Swift Programming Language: Automatic Reference Counting (source in swiftlang/swift-book) |
Apple / Swift project |
retrieved 2026-10-26 |
swift memory_management |
|
Apple |
archive; retrieved 2026-10-26 |
objective-c execution_model |
||
Apple |
archive; retrieved 2026-10-26 |
objective-c memory_management |
||
Google / dart.dev |
retrieved 2026-10-26 |
dart execution_model; memory_management |
||
Julia project |
v1; retrieved 2026-10-26 |
julia memory_management |
||
Zig Software Foundation |
retrieved 2026-10-26 |
zig memory_management |
||
Elixir team |
retrieved 2026-10-26 |
elixir execution_model |
||
Ericsson / Erlang/OTP |
retrieved 2026-10-26 |
elixir memory_management |
||
PUC-Rio |
5.4; retrieved 2026-10-26 |
lua execution_model; memory_management |
||
GHC team |
latest; retrieved 2026-10-26 |
haskell execution_model |
||
GHC team |
latest; retrieved 2026-10-26 |
haskell memory_management |
||
Modular |
retrieved 2026-10-26 |
mojo execution_model |
||
Modular |
retrieved 2026-10-26 |
mojo memory_management |
||
PostgreSQL Global Development Group |
current; retrieved 2026-10-26 |
sql execution_model |
||
GNU Project |
retrieved 2026-10-26 |
bash execution_model |
||
GnuCOBOL project |
retrieved 2026-10-26 |
cobol execution_model |
||
Fortran-lang community |
retrieved 2026-10-26 |
fortran execution_model |
||
MathWorks |
retrieved 2026-10-26 |
matlab memory_management |
||
R Core Team |
retrieved 2026-10-26 |
r execution_model |
||
R Core Team |
r-release; retrieved 2026-10-26 |
r memory_management |
||
Free Pascal team |
retrieved 2026-10-26 |
pascal-delphi execution_model |
||
Perl 5 Porters |
retrieved 2026-10-26 |
perl execution_model |
||
Perl 5 Porters |
retrieved 2026-10-26 |
perl memory_management |
||
Ada Resource Association |
Ada 2022 RM; retrieved 2026-10-26 |
ada memory_management |
||
SBCL project |
retrieved 2026-10-26 |
lisp execution_model; memory_management |
||
NASM project |
2.16.03; retrieved 2026-10-26 |
assembly execution_model |
Security and memory safety
| Source | Publisher | Edition or retrieved | Used for | Sections and charts |
|---|---|---|---|---|
CISA/NSA et al. |
Dec 2023 |
memory_safety C C++ Rust; guidance |
||
Back to the Building Blocks: A Path Toward Secure and Measurable Software |
White House ONCD |
Feb 2024 |
memory_safety C C++ Rust |
|
Wikipedia |
retrieved 2026-10-26 |
memory_safety Java Fortran |
||
Microsoft MSRC |
2019-07-18 |
~70% CVEs |
||
The Chromium Projects |
retrieved 2026-10-26 |
~70% serious bugs |
||
Google Security Blog |
2024-09-25 |
Android 76% to 24% |
||
New Guidance Released for Reducing Memory-Related Vulnerabilities |
CISA |
2025-06-24 |
guidance |
|
Memory Safe Languages: Reducing Vulnerabilities in Modern Software Development |
NSA/CISA |
2025-06-24 |
unreachable (403); n/a row |
Official sites checked for the onboarding score
| Source | Publisher | Edition or retrieved | Used for | Sections and charts |
|---|---|---|---|---|
C official steward |
retrieved 2026-10-26 |
learning.csv onboarding score |
Learning curve and ease of use, Performance, Radar comparisons |
|
COBOL official steward |
retrieved 2026-10-26 |
learning.csv onboarding score |
Learning curve and ease of use, Performance, Radar comparisons |
|
C++ official steward |
retrieved 2026-10-26 |
learning.csv onboarding score |
Learning curve and ease of use, Performance, Radar comparisons |
|
C# official steward |
retrieved 2026-10-26 |
learning.csv onboarding score |
Learning curve and ease of use, Performance, Radar comparisons |
|
Fortran official steward |
retrieved 2026-10-26 |
learning.csv onboarding score |
Learning curve and ease of use, Performance, Radar comparisons |
|
Go official steward |
retrieved 2026-10-26 |
learning.csv onboarding score |
Learning curve and ease of use, Performance, Radar comparisons |
|
Groovy official steward |
retrieved 2026-10-26 |
learning.csv onboarding score |
Learning curve and ease of use, Performance, Radar comparisons |
|
Java official steward |
retrieved 2026-10-26 |
learning.csv onboarding score |
Learning curve and ease of use, Performance, Radar comparisons |
|
JavaScript official steward |
retrieved 2026-10-26 |
learning.csv onboarding score |
Learning curve and ease of use, Performance, Radar comparisons |
|
Kotlin official steward |
retrieved 2026-10-26 |
learning.csv onboarding score |
Learning curve and ease of use, Performance, Radar comparisons |
|
MATLAB official steward |
retrieved 2026-10-26 |
learning.csv onboarding score |
Learning curve and ease of use, Performance, Radar comparisons |
|
Objective-C official steward |
retrieved 2026-10-26 |
learning.csv onboarding score |
Learning curve and ease of use, Performance, Radar comparisons |
|
PHP official steward |
retrieved 2026-10-26 |
learning.csv onboarding score |
Learning curve and ease of use, Performance, Radar comparisons |
|
Python official steward |
retrieved 2026-10-26 |
learning.csv onboarding score |
Learning curve and ease of use, Performance, Radar comparisons |
|
R official steward |
retrieved 2026-10-26 |
learning.csv onboarding score |
Learning curve and ease of use, Performance, Radar comparisons |
|
Ruby official steward |
retrieved 2026-10-26 |
learning.csv onboarding score |
Learning curve and ease of use, Performance, Radar comparisons |
|
Rust official steward |
retrieved 2026-10-26 |
learning.csv onboarding score |
Learning curve and ease of use, Performance, Radar comparisons |
|
Scala official steward |
retrieved 2026-10-26 |
learning.csv onboarding score |
Learning curve and ease of use, Performance, Radar comparisons |
|
Swift official steward |
retrieved 2026-10-26 |
learning.csv onboarding score |
Learning curve and ease of use, Performance, Radar comparisons |
|
TypeScript official steward |
retrieved 2026-10-26 |
learning.csv onboarding score |
Learning curve and ease of use, Performance, Radar comparisons |
|
Visual Basic official steward |
retrieved 2026-10-26 |
learning.csv onboarding score |
Learning curve and ease of use, Performance, Radar comparisons |
|
Pascal/Delphi official steward |
retrieved 2026-10-26 |
learning.csv onboarding score |
Learning curve and ease of use, Performance, Radar comparisons |
|
Perl official steward |
retrieved 2026-10-26 |
learning.csv onboarding score |
Learning curve and ease of use, Performance, Radar comparisons |
|
Ada official steward |
retrieved 2026-10-26 |
learning.csv onboarding score |
Learning curve and ease of use, Performance, Radar comparisons |
|
Common Lisp official steward |
retrieved 2026-10-26 |
learning.csv onboarding score |
Learning curve and ease of use, Performance, Radar comparisons |
|
Assembly official steward |
retrieved 2026-10-26 |
learning.csv onboarding score |
Learning curve and ease of use, Performance, Radar comparisons |
|
Dart official steward |
retrieved 2026-10-26 |
learning.csv onboarding score |
Learning curve and ease of use, Performance, Radar comparisons |
|
Julia official steward |
retrieved 2026-10-26 |
learning.csv onboarding score |
Learning curve and ease of use, Performance, Radar comparisons |
|
Zig official steward |
retrieved 2026-10-26 |
learning.csv onboarding score |
Learning curve and ease of use, Performance, Radar comparisons |
|
Elixir official steward |
retrieved 2026-10-26 |
learning.csv onboarding score |
Learning curve and ease of use, Performance, Radar comparisons |
|
Lua official steward |
retrieved 2026-10-26 |
learning.csv onboarding score |
Learning curve and ease of use, Performance, Radar comparisons |
|
Haskell official steward |
retrieved 2026-10-26 |
learning.csv onboarding score |
Learning curve and ease of use, Performance, Radar comparisons |
|
Mojo official steward |
retrieved 2026-10-26 |
learning.csv onboarding score |
Learning curve and ease of use, Performance, Radar comparisons |
|
SQL official steward |
retrieved 2026-10-26 |
learning.csv onboarding score |
Learning curve and ease of use, Performance, Radar comparisons |
|
Bash official steward |
retrieved 2026-10-26 |
learning.csv onboarding score |
Learning curve and ease of use, Performance, Radar comparisons |
Wikipedia articles used for paradigms, purposes, platforms, type systems and dates
| Source | Publisher | Edition or retrieved | Used for | Sections and charts |
|---|---|---|---|---|
Wikipedia |
retrieved 2026-10-26 |
versatility c |
||
Wikipedia |
retrieved 2026-10-26 |
versatility cobol |
||
Wikipedia |
retrieved 2026-10-26 |
versatility cpp |
||
Wikipedia |
retrieved 2026-10-26 |
versatility csharp |
||
Wikipedia |
retrieved 2026-10-26 |
versatility fortran |
||
Wikipedia |
retrieved 2026-10-26 |
versatility go |
||
Wikipedia |
retrieved 2026-10-26 |
versatility groovy |
||
Wikipedia |
retrieved 2026-10-26 |
versatility java |
||
Wikipedia |
retrieved 2026-10-26 |
versatility javascript |
||
Wikipedia |
retrieved 2026-10-26 |
versatility kotlin |
||
Wikipedia |
retrieved 2026-10-26 |
versatility matlab |
||
Wikipedia |
retrieved 2026-10-26 |
versatility objective-c |
||
Wikipedia |
retrieved 2026-10-26 |
versatility php |
||
Wikipedia |
retrieved 2026-10-26 |
versatility python |
||
Wikipedia |
retrieved 2026-10-26 |
versatility r |
||
Wikipedia |
retrieved 2026-10-26 |
versatility ruby |
||
Wikipedia |
retrieved 2026-10-26 |
versatility rust |
||
Wikipedia |
retrieved 2026-10-26 |
versatility scala |
||
Wikipedia |
retrieved 2026-10-26 |
versatility swift |
||
Wikipedia |
retrieved 2026-10-26 |
versatility typescript |
||
Wikipedia |
retrieved 2026-10-26 |
versatility visual-basic |
||
Wikipedia |
retrieved 2026-10-26 |
versatility perl |
||
Wikipedia |
retrieved 2026-10-26 |
versatility ada |
||
Wikipedia |
retrieved 2026-10-26 |
versatility lisp |
||
Wikipedia |
retrieved 2026-10-26 |
versatility assembly |
||
Wikipedia |
retrieved 2026-10-26 |
versatility dart |
||
Wikipedia |
retrieved 2026-10-26 |
versatility julia |
||
Wikipedia |
retrieved 2026-10-26 |
versatility zig |
||
Wikipedia |
retrieved 2026-10-26 |
versatility elixir |
||
Wikipedia |
retrieved 2026-10-26 |
versatility lua |
||
Wikipedia |
retrieved 2026-10-26 |
versatility haskell |
||
Wikipedia |
retrieved 2026-10-26 |
versatility mojo |
||
Wikipedia |
retrieved 2026-10-26 |
versatility sql |
||
Wikipedia |
retrieved 2026-10-26 |
versatility bash |
||
Wikipedia |
retrieved 2026-10-26 |
versatility pascal-delphi |
||
Wikipedia |
retrieved 2026-10-26 |
versatility pascal-delphi |
||
Wikipedia |
retrieved 2026-10-26 |
languages.csv first_appeared |
Sources for the versatility domains
| Source | Publisher | Edition or retrieved | Used for | Sections and charts |
|---|---|---|---|---|
Ada Reference Manual (Ada 2022) Annex C: Systems Programming |
Ada Conformity Assessment Authority |
Ada 2022; retrieved 2026-10-26 |
versatility-domains.csv ada systems |
|
Google / Android Developers |
retrieved 2026-10-26 |
versatility-domains.csv c; cpp mobile |
||
OpenJS Foundation / Electron |
retrieved 2026-10-26 |
versatility-domains.csv typescript desktop |
||
OpenJS Foundation / Electron |
retrieved 2026-10-26 |
versatility-domains.csv javascript desktop |
||
retrieved 2026-10-26 |
versatility-domains.csv dart mobile; desktop; embedded |
|||
The Go Authors |
retrieved 2026-10-26 |
versatility-domains.csv go mobile |
||
The Go Authors |
retrieved 2026-10-26 |
versatility-domains.csv go backend |
||
Apache Software Foundation |
retrieved 2026-10-26 |
versatility-domains.csv groovy backend; desktop |
||
The GTK Team |
retrieved 2026-10-26 |
versatility-domains.csv c desktop |
||
Haskell.org |
retrieved 2026-10-26 |
versatility-domains.csv haskell backend |
||
IBM |
retrieved 2026-10-26 |
versatility-domains.csv cobol mainframe |
||
IBM |
retrieved 2026-10-26 |
versatility-domains.csv c; cpp mainframe |
||
IBM |
retrieved 2026-10-26 |
versatility-domains.csv sql mainframe |
||
IBM |
retrieved 2026-10-26 |
versatility-domains.csv go mainframe |
||
IBM Support |
retrieved 2026-10-26 |
versatility-domains.csv java mainframe |
||
IBM |
retrieved 2026-10-26 |
versatility-domains.csv javascript mainframe |
||
IBM |
retrieved 2026-10-26 |
versatility-domains.csv python mainframe |
||
The Julia Project |
retrieved 2026-10-26 |
versatility-domains.csv julia backend; desktop; embedded; data-ai |
||
JetBrains |
retrieved 2026-10-26 |
versatility-domains.csv kotlin mobile |
||
JetBrains |
retrieved 2026-10-26 |
versatility-domains.csv kotlin data-ai |
||
JetBrains |
retrieved 2026-10-26 |
versatility-domains.csv kotlin web-frontend |
||
JetBrains |
retrieved 2026-10-26 |
versatility-domains.csv kotlin backend |
||
PUC-Rio |
retrieved 2026-10-26 |
versatility-domains.csv lua embedded |
||
Microsoft Learn |
retrieved 2026-10-26 |
versatility-domains.csv csharp web-frontend |
||
Microsoft Learn |
retrieved 2026-10-26 |
versatility-domains.csv visual-basic web-frontend; mobile |
||
Microsoft Learn |
retrieved 2026-10-26 |
versatility-domains.csv csharp mobile; desktop |
||
Microsoft |
retrieved 2026-10-26 |
versatility-domains.csv csharp backend; data-ai |
||
OpenJS Foundation |
retrieved 2026-10-26 |
versatility-domains.csv javascript backend |
||
OpenMP Architecture Review Board |
retrieved 2026-10-26 |
versatility-domains.csv c; cpp scientific-hpc |
||
Python Software Foundation |
retrieved 2026-10-26 |
versatility-domains.csv python backend; desktop; data-ai; scientific-hpc |
||
Python Software Foundation |
Python 3.15.2 docs; retrieved 2026-10-26 |
versatility-domains.csv python mobile |
||
PyTorch Foundation |
retrieved 2026-10-26 |
versatility-domains.csv cpp data-ai |
||
Meta Platforms |
retrieved 2026-10-26 |
versatility-domains.csv javascript mobile |
||
Meta Platforms |
retrieved 2026-10-26 |
versatility-domains.csv typescript mobile |
||
Rust Foundation / Rust project |
retrieved 2026-10-26 |
versatility-domains.csv rust embedded |
||
Rust Foundation / Rust project |
retrieved 2026-10-26 |
versatility-domains.csv rust backend |
||
Rust project |
retrieved 2026-10-26 |
versatility-domains.csv rust mobile; mainframe |
||
Scala Center / EPFL |
retrieved 2026-10-26 |
versatility-domains.csv scala web-frontend |
||
Posit |
retrieved 2026-10-26 |
versatility-domains.csv r backend |
||
Swift project |
retrieved 2026-10-26 |
versatility-domains.csv swift backend; mobile; desktop; embedded; systems; data-ai |
||
retrieved 2026-10-26 |
versatility-domains.csv javascript data-ai |