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.| Language | Original purpose | Imperative | Object-oriented | Functional | Procedural | Generic | Reflective | Other paradigms | Standardized |
| 1C:Enterprise programming language | Application, RAD, business, general, web, mobile | Object-based, Prototype-based programming | |||||||
| ActionScript | Application, client-side, web | prototype-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 | ||||||
| Ada | Application, embedded, realtime, system | Concurrent, distributed | 1983, 2005, 2012, ANSI, ISO, GOST 27831-88 | ||||||
| Aldor | Highly domain-specific, symbolic computing | ||||||||
| ALGOL 58 | Application | ||||||||
| ALGOL 60 | Application | 1960, IFIP WG 2.1, ISO | |||||||
| ALGOL 68 | Application | Concurrent | 1968, IFIP WG 2.1, GOST 27974-88, | ||||||
| Ateji PX | Parallel application | pi calculus | |||||||
| APL | Application, data processing | Array-oriented, tacit | 1989, ISO | ||||||
| Assembly language | General | Any, syntax is usually highly specific, related to the target processor | 1985 IEEE 694-1985 | ||||||
| AutoHotkey | GUI automation, highly domain-specific | ||||||||
| AutoIt | GUI automation, highly domain-specific | ||||||||
| Ballerina | Integration, agile, server-side, general | Concurrent, transactional, statically and strongly typed, diagrammatic–visual | standard via Ballerina Language Specification | ||||||
| Bash | Shell, scripting | POSIX.2 | |||||||
| BASIC | Application, education | 1983, ANSI, ISO, ECMA | |||||||
| BeanShell | Application, scripting | In progress, JCP | |||||||
| BLISS | System | ||||||||
| BlitzMax | Application, game | ||||||||
| Boo | Application, game scripting | ||||||||
| C | Application, 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, system | Concurrent | 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 programming | Concurrent, structured | 2000, ECMA, ISO | ||||||
| Carbon | Experimental successor language to C++, designed by Google for performance-critical software | Multi-paradigm | |||||||
| Clarion | General, business, web | ||||||||
| Clean | General | ||||||||
| Clojure | General | Concurrent | |||||||
| CLU | General | ||||||||
| COBOL | Application, business | 1968 ANSI X3.23, 1974, 1985; ISO/IEC 1989:1985, 2002, 2014, 2023 | |||||||
| Cobra | Application, business, general, web | ||||||||
| ColdFusion | Web | ||||||||
| Common Lisp | General | Extensible syntax, , syntactic macros, multiple dispatch, concurrent | 1994, ANSI | ||||||
| COMAL 80 | Education | ||||||||
| Crystal | General purpose | Concurrent | |||||||
| Curry | Application | lazy evaluation, non-determinism | standard via Curry Language Report | ||||||
| Cython | Application, general, numerical computing | Aspect-oriented | |||||||
| D | Application, system | Generative, concurrent | |||||||
| Dart | Application, web, server-side, mobile, IoT | Structured | ECMA-408 standard | ||||||
| Delphi, Object Pascal | General purpose | ||||||||
| Dylan | Application | ||||||||
| Eiffel | General, application, business, client-side, server-side, web | Distributed , | 2005, ECMA, ISO | ||||||
| ELAN | Education | Structured, stepwise refinement | |||||||
| Elixir | Application, distributed | Concurrent, distributed | |||||||
| Erlang | Application, distributed | Concurrent, distributed | |||||||
| Euphoria | Application | ||||||||
| Factor | General | Stack-oriented | |||||||
| FP | |||||||||
| F# | Application | ||||||||
| Forth | General | Stack-oriented | 1994, ANSI | ||||||
| Fortran | Application, numerical computing | Array-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 | ||||||
| FreeBASIC | Application, numerical computing | ||||||||
| Gambas | Application | ||||||||
| Game Maker Language | Application, game programming | ||||||||
| GLBasic | Application, games | Simple object-oriented | |||||||
| Go | Application, web, server-side | Concurrent | standard via Go Language Specification | ||||||
| Gosu | Application, general, scripting, web | ||||||||
| GraphTalk | Application | Logic | |||||||
| Groovy | Application, general, scripting, web | Meta-programming | In progress, JCP | ||||||
| Harbour | Application, business, data processing, general, web | Declarative | |||||||
| Haskell | Application | Lazy evaluation | 2010, Haskell 2010 | ||||||
| Haxe | Application, general, web | ||||||||
| HyperTalk | Application, RAD, general | Weakly typed | |||||||
| Io | Application, host-driven scripting | ||||||||
| IPL | General | ||||||||
| ISLISP | General | 1997, 2007, ISO | |||||||
| J | Application, data processing | Array-oriented, function-level, tacit, concurrent | |||||||
| JADE | Application, distributed | ||||||||
| Java | Application, business, client-side, general, mobile development, server-side, web | Concurrent | standard via Java Language Specification | ||||||
| JavaScript | Client-side, server-side, web | prototype-based | ECMA-262 standard | ||||||
| Joy | Research | Stack-oriented | |||||||
| jq | "awk for JSON" | Tacit, Backtracking, Streaming, PEG | |||||||
| Julia | General, technical computing | Multiple dispatch, meta, scalar and array-oriented, parallel, concurrent, distributed | standard via Julia Documentation | ||||||
| K | Data processing, business | Array-oriented, tacit | |||||||
| Kotlin | Application, general, mobile development, server-side, client-side, web, scripting, domain-specific | Concurrent | standard via Kotlin Language Specification | ||||||
| Ksh | Shell, scripting | Several variants, custom programmable, dynamic loadable modules | POSIX.2 | ||||||
| LabVIEW | Application, industrial instrumentation-automation | Dataflow, visual | |||||||
| Lisp | General | ||||||||
| LiveCode | Application, RAD, general | Weakly typed | |||||||
| Logtalk | Artificial intelligence, application | Logic | |||||||
| Linden Scripting Language | Virtual worlds content scripting and animation | Scripts exist in in-world objects | reference is the Second Life implementation of LSL. | ||||||
| Lua | Application, embedded scripting | Aspect-oriented, prototype-based | |||||||
| Maple | Symbolic computation, numerical computing | Distributed | |||||||
| Mathematica | Symbolic language | Logic, distributed | |||||||
| MATLAB | Highly domain-specific, numerical computing | ||||||||
| Modula-2 | Application, system | 1996, ISO | |||||||
| Modula-3 | Application | ||||||||
| MUMPS | General, application, databases | Thru Indirection and Xecute | Concurrent, multi-user, NoSQL, transaction processing | 1977 ANSI, 1995, ISO 2020 | |||||
| Nim | Application, general, web, scripting, system | Multiple dispatch, concurrent, meta | |||||||
| Oberon | Application, system | ||||||||
| Object Pascal | Application, general, mobile app, web | Structured | |||||||
| Objective-C | Application, general | Concurrent | |||||||
| OCaml | Application, general | ||||||||
| Occam | General | Concurrent, process-oriented | |||||||
| Opa | Web applications | Distributed | |||||||
| OpenLisp | General, Embedded Lisp Engine | ISLISP | |||||||
| Oxygene | Application | ||||||||
| Oz-Mozart | Application, distribution, education | Concurrent, logic | |||||||
| Pascal | Application, education | 1983, ISO | |||||||
| Perl | Application, scripting, text processing, Web | ||||||||
| PHP | Server-side, web application, web | standard via language specification and Requests for Comments | |||||||
| PL/I | Application | 1969, ECMA-50 | |||||||
| Plus | Application, system development | ||||||||
| PostScript | Graphics, page description | Concatenative, stack-oriented | standard via the PostScript Reference Manual | ||||||
| PowerShell | Administration, application, general, scripting | Pipeline | |||||||
| Prolog | Application, artificial intelligence | Logic, declarative | 1995, ISO/IEC 13211-1:1995, TC1 2007, TC2 2012, TC3 2017 | ||||||
| PureBasic | Application | ||||||||
| Python | Application, general, web, scripting, artificial intelligence, scientific computing | Aspect-oriented | standard via Python Enhancement Proposals | ||||||
| R | Application, statistics | ||||||||
| Racket | Education, general, scripting | Modular, logic, meta | |||||||
| Raku | Scripting, text processing, glue | Aspect-oriented, array, lazy evaluation, multiple dispatch, metaprogramming | |||||||
| REALbasic | Application | ||||||||
| Rebol | Distributed | Dialected | |||||||
| REXX | Scripting | 1996 | |||||||
| RPG | Application, system | ||||||||
| Ruby | Application, scripting, web | Aspect-oriented | 2011, 2012 | ||||||
| Rust | Application, server-side, system, web | Concurrent | standard by the official Rust releases | ||||||
| S | Application, statistics | ||||||||
| S-Lang | Application, numerical, scripting | ||||||||
| Scala | Application, general, parallel, distributed, web | Data-oriented programming, metaprogramming | standard via Scala Language Specification | ||||||
| Scheme | Education, general | meta, extensible-syntax | 1975-2013, R0RS, R1RS, R2RS, R3RS, R4RS, R5RS, R6RS, R7RS Small Edition | ||||||
| Seed7 | Application, general, scripting, web | Multi-paradigm, extensible, structured | |||||||
| Simula | Education, general | discrete event simulation, multi-threaded program execution | 1968 | ||||||
| Small Basic | Application, education, games | Component-oriented | |||||||
| Smalltalk | Application, general, business, artificial intelligence, education, web | Concurrent, declarative | 1998, ANSI | ||||||
| SNOBOL | Text processing | ||||||||
| Standard ML | Application | 1997, SML '97 | |||||||
| Swift | Application, general | Concurrent, declarative, protocol-oriented | |||||||
| Tcl | Application, scripting, web | ||||||||
| V | Application, general, system, game, web, server-side | Concurrent | |||||||
| Visual Basic | Application, RAD, education, business, general,, office automation | Component-oriented | |||||||
| Application, RAD, education, web, business, general | Structured, concurrent | ||||||||
| Visual FoxPro | Application | Data-centric, logic | |||||||
| Visual Prolog | Application | Declarative, logic | |||||||
| Wolfram Language | Symbolic language | Logic, distributed | |||||||
| XL | concept programming | ||||||||
| Xojo | Application, RAD, general, web | ||||||||
| XPath/XQuery | Databases, data processing, scripting | Tree-oriented | 1999 W3C XPath 1, 2010 W3C XQuery 1, 2014 W3C XPath/XQuery 3.0 | ||||||
| Zeek | Domain-specific, application | ||||||||
| Zig | Application, general, system | Concurrent | |||||||
| Zsh | Shell, scripting | Loadable modules | POSIX.2 |