Jump to content

User:Dbabbitt/Sandbox/Comparison of programming languages

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Dbabbitt (talk | contribs) at 11:35, 18 February 2014 (Saved page for safety). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

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. 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 event-driven, object-oriented, weakly typed Un­known
Io Application, host-driven scripting imperative, object-oriented No
ISLISP General functional, generic, imperative, object-oriented 1997, ISO
J Data processing array-oriented, function-level, tacit No
JADE Application, distributed imperative, object-oriented No
Java Application, business, client-side, general, server-side, Web generic, imperative, object-oriented, reflective, concurrent De facto standard via Java Language Specification
JavaScript Client-side, Server-side, Web functional, imperative, prototype-based, reflective 1997, ECMA
Joy Research functional, stack-oriented No
K Data processing, business array-oriented, tacit Un­known
LabVIEW (G) Application, industrial instrumentation-automation dataflow, visual No
Lisp General functional Un­known
Livecode Application, RAD, General event-driven, object-oriented, weakly typed No
Logtalk Artificial intelligence, application event-driven, logic, object-oriented, reflective No
Lua Application, embedded scripting aspect-oriented, functional, imperative, object-oriented, procedural, reflective No[19]
Maple Symbolic computation, numerical computing procedural, functional, imperative, object-oriented, distributed No
Mathematica Symbolic language functional, procedural, imperative, logic, distributed, object-oriented No
MATLAB Highly domain-specific, numerical computing imperative, object-oriented, procedural No
Modula-2 Application, system generic, imperative 1996, ISO[20]
Modula-3 Application generic, imperative, object-oriented No
Oberon Application, system imperative, object-oriented No
Objective-C Application, general imperative, object-oriented, reflective, concurrent No
Occam General concurrent, imperative, procedural, process-oriented No
Opa Web applications functional, generic, imperative, distributed No
Oxygene Application generic, imperative, object-oriented No
Oz Application, distribution, education concurrent, functional, imperative, logic, object-oriented No
Pascal Application, education imperative, procedural 1983, ISO[21]
Pawn Embedded, host-driven scripting imperative No
Perl Application, scripting, text processing, Web functional, generic, imperative, object-oriented, procedural, reflective No
PHP Server-side, Web Application, Web imperative, object-oriented,[22] procedural,[23] reflective No
PL/I Application imperative, object-oriented, procedural 1969
Plus Application, system development imperative, procedural No
Prolog Application, artificial intelligence logic 1995, ISO
PureBasic Application procedural No
Python Application, general, Web, scripting, AI, scientific computing aspect-oriented, functional, imperative, object-oriented, reflective No
Racket Education, general, scripting functional, procedural, modular, object-oriented, logic, reflective, meta No
REALbasic Application procedural Un­known
REBOL Distributed dialected, functional, imperative, object-oriented No
RPG (IBM) Application, system imperative, procedural No
Ruby Application, scripting, Web aspect-oriented, functional, imperative, object-oriented, reflective 2011(JIS X 3017), 2012(ISO/IEC 30170)
Rust Application, system concurrent, functional, generic, imperative, object-oriented, reflective No
S Application, statistics functional, imperative, object-oriented, procedural No
S-Lang Application, numerical, scripting imperative, procedural No
Scala Application, distributed, Web functional, generic, imperative, object-oriented De facto standard via Scala Language Specification (SLS)
Scheme Education, general functional 1998, R6RS
Seed7 Application, general, scripting, Web multi-paradigm, extensible, object-oriented, imperative, structured, generic, reflective No
Simula Education, general discrete event simulation, event-driven, imperative, multi-threaded (quasi-parallel) program execution, object-oriented 1968
Small Basic Application, education, games component-oriented, event-driven, imperative No
Smalltalk Application, education concurrent, declarative, event-driven, object-oriented, reflective 1998, ANSI
SNOBOL Text processing Un­known
Standard ML Application functional, generic, imperative 1997, SML '97[24]
Tcl Application, scripting, Web event-driven, imperative, procedural, reflective No
Visual Basic Application, education component-oriented, event-driven, imperative No
Visual Basic .NET Application, education, Web event-driven, imperative, object-oriented No
Visual FoxPro Application data-centric, logic, object-oriented No
Visual Prolog Application declarative, event-driven, functional, imperative, logic, object-oriented No
Windows PowerShell Administration functional, imperative, object-oriented, pipeline, reflective No
XL concept programming, imperative, object-oriented No
Language Intended use 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. ^ 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.
  20. ^ ISO/IEC 10514-1:1996
  21. ^ ISO 7185
  22. ^ PHP Manual, Chapter 19. Classes and Objects (PHP 5),
  23. ^ PHP Manual, Chapter 17. Functions
  24. ^ SMLNJ.org