User:Dbabbitt/Sandbox/Comparison of programming languages

General comparison

edit

The following table compares general and technical information for a selection of commonly used programming languages. See the individual languages' articles for further information. Please note that the following table may be missing some information.

Language Intended use Imperative Functional Procedural Generic Reflective Event-Driven Concurrent Logic Other Paradigm(s) Standardized?
ActionScript 3.0 Application, client-side, Web X X object-oriented 1996, ECMA
Ada Application, embedded, realtime, system X X[1] X[2] X[3] distributed,[4] imperative object-oriented,[5] 1983, 2005, 2012, ANSI, ISO, GOST 27831-88[6]
Aldor Highly domain-specific, symbolic computing X X object-oriented No
ALGOL 58 Application X No
ALGOL 60 Application X 1960, IFIP WG 2.1, ISO[7]
ALGOL 68 Application X X 1968, IFIP WG 2.1, GOST 27974-88,[8]
Ateji PX Parallel application object-oriented, pi calculus No
APL Application, data processing array-oriented, tacit 1989, ISO
Assembly language General X any, syntax is usually highly specific, related to the target processor No
AutoHotkey GUI automation (macros), highly domain-specific X No
AutoIt GUI automation (macros), highly domain-specific X X X No
BASIC Application, education X X 1983, ANSI, ISO
BBj Application, business, Web X object-oriented No
BeanShell Application, scripting X X X object-oriented In progress, JCP[9]
BitC System X X No
BLISS System X No
BlitzMax Application, game X X object-oriented No
Boo Application No
Bro domain-specific, application X X No
C Application, system,[10] general purpose, low-level operations X X 1989, ANSI C89, ISO C90, ISO C99, ISO C11[11]
C++ Application, system X X X X object-oriented 1998, ISO/IEC 1998, ISO/IEC 2003, ISO/IEC 2011[12]
C# Application, business, client-side, general, server-side, Web, Robotics X X X X X X structured,[13] object-oriented 2000, ECMA, ISO[14]
Clarion General, business, Web X X[15] object-oriented Un­known
Clean General X X No
Clojure General X X No
CLU General X X X object-oriented No
COBOL Application, business X object-oriented 2002 (ISO/IEC 1989)
Cobra Application, business, general, Web X X X X object-oriented No
ColdFusion (CFML) Web X object-oriented No
Common Lisp General X X X X object-oriented 1994, ANSI
COMAL 80 Education X X No
Crystal 1.0.0 Education X X X No
Cython Application, general, numerical computing X X X aspect-oriented, object-oriented No
D Application, system X X X X generative, object-oriented No
Dart Application, Web X structured, object-oriented No
Dylan Application X object-oriented No
Eiffel Application X X object-oriented 2005, ECMA, ISO[16]
Erlang Application, distributed, telecom X concurrent, distributed No
Euphoria Application. Since the interpreter is shared for system and application code, system is not an intended use because application crashes would affect the whole system. X X No
Factor stack-oriented No
Falcon General, Application X X object oriented, prototype OOP, message oriented, tabular programming No
FP X No
F# Application X X X object-oriented No
Forth General X stack-oriented 1994, ANSI
Fortran Application, numerical computing X X X object-oriented 1966, ANSI 66, ANSI 77, MIL-STD-1753, ISO 90, ISO 95, ISO 2003, ISO/IEC 1539-1:2010 (2008)
G2 Application, inference, expert system X X common graphical development and runtime environment, object-oriented No
Gambas Application X X object-oriented No
Game Maker Language Application, games X X object-oriented No
GLBasic Application, games X X simple object-oriented No
Go Application, system X concurrent No
Gosu Application, general, scripting, Web X X X object-oriented No
GraphTalk Application logic, object-oriented No
Groovy Application, general, scripting, Web X X aspect-oriented, object-oriented In progress, JCP[17]
Harbour Application, business, data processing, general, Web X X X X X declarative, object-oriented No
Haskell Application X X lazy evaluation 2010, Haskell 2010[18]
Haxe Application, general, Web X X X X object-oriented No
HyperNext Application, education X X weakly typed No
HyperTalk Application, RAD, General X object-oriented, weakly typed Un­known
Io Application, host-driven scripting X object-oriented No
ISLISP General X X X object-oriented 1997, ISO
J Data processing array-oriented, function-level, tacit No
JADE Application, distributed X object-oriented No
Java Application, business, client-side, general, server-side, Web X X X object-oriented, concurrent De facto standard via Java Language Specification
JavaScript Client-side, Server-side, Web X X X prototype-based 1997, ECMA
Joy Research X stack-oriented No
K Data processing, business array-oriented, tacit Un­known
LabVIEW (G) Application, industrial instrumentation-automation dataflow, visual No
Lisp General X Un­known
Livecode Application, RAD, General X object-oriented, weakly typed No
Logtalk Artificial intelligence, application X X logic, object-oriented No
Lua Application, embedded scripting X X X X aspect-oriented, object-oriented[19] No[20]
Maple Symbolic computation, numerical computing X X X object-oriented, distributed No
Mathematica Symbolic language X X X logic, distributed, object-oriented No
MATLAB Highly domain-specific, numerical computing X X object-oriented No
Modula-2 Application, system X X 1996, ISO[21]
Modula-3 Application X X object-oriented No
Oberon Application, system X object-oriented No
Objective-C Application, general X X object-oriented, concurrent No
Occam General X X concurrent, process-oriented No
Opa Web applications X X X distributed No
Oxygene Application X X object-oriented No
Oz Application, distribution, education X X concurrent, logic, object-oriented No
Pascal Application, education X X 1983, ISO[22]
Pawn Embedded, host-driven scripting X No
Perl Application, scripting, text processing, Web X X X X X object-oriented No
PHP Server-side, Web Application, Web X X[23] X object-oriented[24] No
PL/I Application X X object-oriented 1969
Plus Application, system development X X No
Prolog Application, artificial intelligence logic 1995, ISO
PureBasic Application X No
Python Application, general, Web, scripting, AI, scientific computing X X X aspect-oriented, object-oriented No
Racket Education, general, scripting X X X modular, object-oriented, logic, meta No
REALbasic Application X Un­known
REBOL Distributed X X dialected, object-oriented No
RPG (IBM) Application, system X X No
Ruby Application, scripting, Web X X X aspect-oriented, object-oriented 2011(JIS X 3017), 2012(ISO/IEC 30170)
Rust Application, system X X X X concurrent, object-oriented No
S Application, statistics X X X object-oriented No
S-Lang Application, numerical, scripting X X No
Scala Application, distributed, Web X X X object-oriented De facto standard via Scala Language Specification (SLS)
Scheme Education, general X 1998, R6RS
Seed7 Application, general, scripting, Web X X X multi-paradigm, extensible, object-oriented, structured No
Simula Education, general X X discrete event simulation, multi-threaded (quasi-parallel) program execution, object-oriented 1968
Small Basic Application, education, games X X component-oriented No
Smalltalk Application, education X X concurrent, declarative, object-oriented 1998, ANSI
SNOBOL Text processing Un­known
Standard ML Application X X X 1997, SML '97[25]
Tcl Application, scripting, Web X X X X No
Visual Basic Application, education X X component-oriented No
Visual Basic .NET Application, education, Web X X object-oriented No
Visual FoxPro Application data-centric, logic, object-oriented No
Visual Prolog Application X X X X declarative, object-oriented No
Windows PowerShell Administration X X X object-oriented, pipeline No
XL X concept programming, object-oriented No
Language Intended use Imperative Functional Procedural Generic Reflective Event-Driven Concurrent Logic Other Paradigm(s) Standardized?
  1. ^ Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3, Section 6: Subprograms
  2. ^ Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3, Section 12: Generic Units
  3. ^ Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3, Section 9: Tasks and Synchronization
  4. ^ Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3 Annex E: Distributed Systems
  5. ^ Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3, 3.9 Tagged Types and Type Extensions
  6. ^ Vak.ru
  7. ^ ISO 1538:1984
  8. ^ Vak.ru
  9. ^ JSR 274
  10. ^ CM.bell-labs.com
  11. ^ ANSI C89, ISO/IEC 9899:1990, 1999, 2011
  12. ^ ISO/IEC 14882:1998, 2003, 2011
  13. ^ Codeproject.com: Functional Programming in C# 3.0 using Lambda Expression
  14. ^ ECMA-334; ISO/IEC 23270:2006
  15. ^ Softvelocity.com
  16. ^ ECMA-367; ISO/IEC 25436:2006
  17. ^ JSR 241
  18. ^ "The Haskell 2010 Language Report". Retrieved 2011-12-07. Most Haskell implementations extend the Haskell 2010 standard.
  19. ^ Lua doesn't have explicit "object" type (more general type of "table" is used for object definition), but does have explicit syntax for object method calling
  20. ^ Version releases are accompanied with a definitive Lua Reference Manual showing full syntax and semantics; a reference implementation, and a test suite. These are used to generate other Lua VM implementations and compilers such as Kahlua and LLVM-Lua.
  21. ^ ISO/IEC 10514-1:1996
  22. ^ ISO 7185
  23. ^ PHP Manual, Chapter 17. Functions
  24. ^ PHP Manual, Chapter 19. Classes and Objects (PHP 5),
  25. ^ SMLNJ.org