Comparison of programming languages


s are used for controlling the behavior of a machine. Like natural languages, programming languages follow rules for syntax and semantics.
There are thousands of programming languages and new ones are created every year. Few languages ever become sufficiently popular that they are used by more than a few people, but professional programmers may use dozens of languages in a career.
Most programming languages are not standardized by an international standard, even widely used ones, such as Perl or Standard ML. Notable standardized programming languages include ALGOL, C, C++, JavaScript, Smalltalk, Prolog, Common Lisp, Scheme, ISLISP, Ada, Fortran, COBOL, SQL, and XQuery.

General comparison

The following table compares general and technical information for a selection of commonly used programming languages. See the individual languages' articles for further information.
LanguageOriginal purposeImperativeObject-orientedFunctionalProceduralGenericReflectiveOther paradigmsStandardized
1C:Enterprise programming languageApplication, RAD, business, general, web, mobileObject-based, Prototype-based programming
ActionScriptApplication, client-side, webprototype-based
1999-2003, ActionScript 1.0 with ES3, ActionScript 2.0 with ES3 and partial ES4 draft, ActionScript 3.0 with ES4 draft, ActionScript 3.0 with E4X
AdaApplication, embedded, realtime, systemConcurrent, distributed
1983, 2005, 2012, ANSI, ISO, GOST 27831-88
AldorHighly domain-specific, symbolic computing
ALGOL 58Application
ALGOL 60Application
1960, IFIP WG 2.1, ISO
ALGOL 68ApplicationConcurrent
1968, IFIP WG 2.1, GOST 27974-88,
Ateji PXParallel applicationpi calculus
APLApplication, data processingArray-oriented, tacit
1989, ISO
Assembly languageGeneralAny, syntax is usually highly specific, related to the target processor
1985 IEEE 694-1985
AutoHotkeyGUI automation, highly domain-specific
AutoItGUI automation, highly domain-specific
BallerinaIntegration, agile, server-side, generalConcurrent, transactional, statically and strongly typed, diagrammatic–visual
standard via Ballerina Language Specification
BashShell, scripting
POSIX.2
BASICApplication, education
1983, ANSI, ISO, ECMA
BeanShellApplication, scripting
In progress, JCP
BLISSSystem
BlitzMaxApplication, game
BooApplication, game scripting
CApplication, system, general purpose, low-level operations
1989, ANSI C89, ISO/IEC C90, ISO/IEC C95, ISO/IEC C99, ISO/IEC C11, ISO/IEC C17, ISO/IEC C2x
C++Application, systemConcurrent
1998, ISO/IEC C++98, ISO/IEC C++03, ISO/IEC C++11, ISO/IEC C++14, ISO/IEC C++17, ISO/IEC C++20, ISO/IEC C++23, ISO/IEC C++26
C#Application, RAD, business, client-side, general, server-side, web, game programmingConcurrent, structured
2000, ECMA, ISO
CarbonExperimental successor language to C++, designed by Google for performance-critical softwareMulti-paradigm
ClarionGeneral, business, web
CleanGeneral
ClojureGeneralConcurrent
CLUGeneral
COBOLApplication, business
1968 ANSI X3.23, 1974, 1985; ISO/IEC 1989:1985, 2002, 2014, 2023
CobraApplication, business, general, web
ColdFusion Web
Common LispGeneralExtensible syntax, , syntactic macros, multiple dispatch, concurrent
1994, ANSI
COMAL 80Education
CrystalGeneral purposeConcurrent
CurryApplicationlazy evaluation, non-determinism
standard via Curry Language Report
CythonApplication, general, numerical computingAspect-oriented
DApplication, systemGenerative, concurrent
DartApplication, web, server-side, mobile, IoTStructured
ECMA-408 standard
Delphi, Object PascalGeneral purpose
DylanApplication
EiffelGeneral, application, business, client-side, server-side, web Distributed ,
2005, ECMA, ISO
ELANEducationStructured, stepwise refinement
ElixirApplication, distributedConcurrent, distributed
ErlangApplication, distributedConcurrent, distributed
EuphoriaApplication
FactorGeneralStack-oriented
FP
F#Application
ForthGeneralStack-oriented
1994, ANSI
FortranApplication, numerical computingArray-based, vectorized, concurrent, native distributed/shared-memory parallelism
1966, ANSI 66, ANSI 77, MIL-STD-1753, ISO 90, ISO 95, ISO 2003, ISO/IEC 1539-1:2010, ISO/IEC JTC1/SC22/WG5 N2145
FreeBASICApplication, numerical computing
GambasApplication
Game Maker LanguageApplication, game programming
GLBasicApplication, gamesSimple object-oriented
GoApplication, web, server-sideConcurrent
standard via Go Language Specification
GosuApplication, general, scripting, web
GraphTalkApplicationLogic
GroovyApplication, general, scripting, webMeta-programming
In progress, JCP
HarbourApplication, business, data processing, general, webDeclarative
HaskellApplicationLazy evaluation
2010, Haskell 2010
HaxeApplication, general, web
HyperTalkApplication, RAD, generalWeakly typed
IoApplication, host-driven scripting
IPLGeneral
ISLISPGeneral
1997, 2007, ISO
JApplication, data processingArray-oriented, function-level, tacit, concurrent
JADEApplication, distributed
JavaApplication, business, client-side, general, mobile development, server-side, webConcurrent
standard via Java Language Specification
JavaScriptClient-side, server-side, webprototype-based
ECMA-262 standard
JoyResearchStack-oriented
jq"awk for JSON"Tacit, Backtracking, Streaming, PEG
JuliaGeneral, technical computingMultiple dispatch, meta, scalar and array-oriented, parallel, concurrent, distributed
standard via Julia Documentation
KData processing, businessArray-oriented, tacit
KotlinApplication, general, mobile development, server-side, client-side, web, scripting, domain-specificConcurrent
standard via Kotlin Language Specification
KshShell, scriptingSeveral variants, custom programmable, dynamic loadable modules
POSIX.2
LabVIEW Application, industrial instrumentation-automationDataflow, visual
LispGeneral
LiveCodeApplication, RAD, generalWeakly typed
LogtalkArtificial intelligence, applicationLogic
Linden Scripting Language Virtual worlds content scripting and animationScripts exist in in-world objects
reference is the Second Life implementation of LSL.
LuaApplication, embedded scriptingAspect-oriented, prototype-based
MapleSymbolic computation, numerical computingDistributed
MathematicaSymbolic languageLogic, distributed
MATLABHighly domain-specific, numerical computing
Modula-2Application, system
1996, ISO
Modula-3Application
MUMPS General, application, databases Thru Indirection and XecuteConcurrent, multi-user, NoSQL, transaction processing
1977 ANSI, 1995, ISO 2020
NimApplication, general, web, scripting, systemMultiple dispatch, concurrent, meta
OberonApplication, system
Object PascalApplication, general, mobile app, webStructured
Objective-CApplication, generalConcurrent
OCamlApplication, general
OccamGeneralConcurrent, process-oriented
OpaWeb applicationsDistributed
OpenLispGeneral, Embedded Lisp Engine
ISLISP
OxygeneApplication
Oz-MozartApplication, distribution, educationConcurrent, logic
PascalApplication, education
1983, ISO
PerlApplication, scripting, text processing, Web
PHPServer-side, web application, web
standard via language specification and Requests for Comments
PL/IApplication
1969, ECMA-50
PlusApplication, system development
PostScriptGraphics, page descriptionConcatenative, stack-oriented
standard via the PostScript Reference Manual
PowerShellAdministration, application, general, scriptingPipeline
PrologApplication, artificial intelligenceLogic, declarative
1995, ISO/IEC 13211-1:1995, TC1 2007, TC2 2012, TC3 2017
PureBasicApplication
PythonApplication, general, web, scripting, artificial intelligence, scientific computingAspect-oriented
standard via Python Enhancement Proposals
RApplication, statistics
RacketEducation, general, scriptingModular, logic, meta
RakuScripting, text processing, glueAspect-oriented, array, lazy evaluation, multiple dispatch, metaprogramming
REALbasicApplication
RebolDistributedDialected
REXXScripting
1996
RPGApplication, system
RubyApplication, scripting, webAspect-oriented
2011, 2012
RustApplication, server-side, system, webConcurrent standard by the official Rust releases
SApplication, statistics
S-LangApplication, numerical, scripting
ScalaApplication, general, parallel, distributed, webData-oriented programming, metaprogramming
standard via Scala Language Specification
SchemeEducation, generalmeta, extensible-syntax
1975-2013, R0RS, R1RS, R2RS, R3RS, R4RS, R5RS, R6RS, R7RS Small Edition
Seed7Application, general, scripting, webMulti-paradigm, extensible, structured
SimulaEducation, generaldiscrete event simulation, multi-threaded program execution
1968
Small BasicApplication, education, gamesComponent-oriented
SmalltalkApplication, general, business, artificial intelligence, education, webConcurrent, declarative
1998, ANSI
SNOBOLText processing
Standard MLApplication
1997, SML '97
SwiftApplication, generalConcurrent, declarative, protocol-oriented
TclApplication, scripting, web
V Application, general, system, game, web, server-sideConcurrent
Visual BasicApplication, RAD, education, business, general,, office automationComponent-oriented
Application, RAD, education, web, business, generalStructured, concurrent
Visual FoxProApplicationData-centric, logic
Visual PrologApplicationDeclarative, logic
Wolfram LanguageSymbolic languageLogic, distributed
XLconcept programming
XojoApplication, RAD, general, web
XPath/XQueryDatabases, data processing, scriptingTree-oriented
1999 W3C XPath 1, 2010 W3C XQuery 1, 2014 W3C XPath/XQuery 3.0
ZeekDomain-specific, application
ZigApplication, general, systemConcurrent
ZshShell, scriptingLoadable modules
POSIX.2