Language Comparison Table

From Rosetta Code
Revision as of 19:38, 25 November 2008 by Lupus (talk | contribs) (Fortran ISO Standard)
Language Paradigm(s) Standardized Type strength Type safety Expression of types Type compatibility Type checking Parameter Passing Methods Available Intended use Design goals
ActionScript imperative programming, object-oriented, event-driven programming Yes

, ECMA

strong safe static Web design
Ada concurrent, distributed programming, generic programming, imperative programming, object-oriented Yes

, ANSI, ISO, ANSI/MIL-STD-1815A-1983, ISO/IEC 8652, ISO/IEC TR 24718, GOST 27831-88

strong safe explicit nominative static by value, by reference (compiler chosen if not determined by the data type) Embedded, real-time, mission-critical, long-lived, and large scale systems Program reliability and maintenance, Programming as a human activity, Efficiency Language Reference Manual
ALGOL 68 concurrent, imperative programming Yes

, GOST 27974-88

strong safe explicit structural static or dynamic Application Completeness and clarity of design, Orthogonal design, Security, Efficiency (Static mode checking, Mode-independent parsing, Independent compilation, Loop optimization, Representations in minimal & larger character sets)
BASIC procedural programming Yes

, ANSI, ISO

varies by dialect Education Simplicity
C imperative programming Yes

, ANSI C89, ISO C90/C99

weak unsafe explicit nominative static by value, by reference (through reference types) System, Embedded Low level access, Minimal constraint
C# imperative programming, object-oriented, generic programming, reflective programming Yes

, ECMA, ISO

strong safe (but unsafe allowed) implicit nominative static Application Rapid application development
C++ imperative programming, object-oriented, generic programming Yes

, ISO

strong safe (but unsafe allowed) explicit, partially implicit nominative, structural static, dynamic by value, by reference (through reference types) Application, System Abstraction, Efficiency, Compatibility
Clean functional programming, generic programming No strong implicit static General Correctness, Modularity
COBOL imperative programming, object-oriented Yes strong static Business and Financial Applications Readability
ColdFusion procedural programming, object-oriented No weak implicit dynamic Web Development Rapid Application Development, Ease of use
Common Lisp imperative programming, functional programming, object-oriented Yes strong safe dynamic General Standardize Lisp
D imperative programming, object-oriented, generic programming No strong safe explicit static Application, System Compilability, Correctness, Efficiency
eC imperative programming, object-oriented, generic programming, reflective programming No weak unsafe explicit, partially implicit nominative, complex conversions system static, dynamic according to data type, or explicitly by value, by reference Applications, GUIs, System, Games Elegance, Performance, Simplicity, Lightness, 99.9% C compatibility
Eiffel imperative programming, object-oriented, generic programming Yes

, ECMA-367, ISO/IEC 25436:2006

strong safe nominative static Application Correctness, Efficiency, Design by contract
Erlang functional programming, concurrent, distributed programming No strong dynamic Telecom and distributed applications Fault tolerance, Scalability
Forth imperative programming, stack-oriented Yes

, ANSI

none n/a n/a n/a n/a Application, Embedded systems Compact implementations, Low level access, Interactive programming
Fortran imperative programming, procedural programming, object-oriented Yes

, ISO, ISO/IEC 1539-1:2004

strong safe nominative static Scientific and numeric applications Runtime efficiency, Simple syntax
Groovy imperative programming, object-oriented, aspect-oriented programming No strong safe implicit dynamic Application JVM compatibility
Haskell functional programming, generic programming, lazy evaluation Yes

, Haskell 98 Report

strong safe inferred, optional explicit annotations polymorphic structural static Application, Research lazy evaluation, Teaching and research, completely formally described Report Preface
Io object-oriented, prototype No strong dynamic
J array programming, function-level programming, tacit programming No strong safe dynamic Data processing Terseness, Expressiveness, Powerful Data Manipulation
Java imperative programming, object-oriented, generic programming, reflective programming No strong safe explicit nominative static by value Application Write once run anywhere
JavaScript imperative programming, object-oriented, functional programming, reflective programming Yes weak implicit dynamic Client side web scripting
Joy functional programming, stack-oriented No strong safe dynamic functional programming research concatenative
Lisp functional programming, reflective programming; others vary by dialect No strong dynamic General Simple notation for Lambda calculus, Homoiconicity
Logo procedural programming, functional programming No strong safe implicit structural dynamic Education Simple syntax, Turtle graphics, Interactive programming
Lua procedural programming, imperative programming, reflective No strong safe implicit dynamic Host-driven Scripting Small, embedded, configuration.
Lucid dataflow programming, functional programming No strong safe dynamic stream processing dataflow
Mathematica functional programming, procedural programming No strong dynamic Numeric computation and visualization
MAXScript imperative programming, object-oriented, procedural programming No strong safe implicit dynamic by value, by reference 3D Art Tools, Scripting Simplicity, Accessibilty
Nial functional programming, array programming No strong dynamic Data processing
Oberon-2 procedural programming, imperative programming, object-oriented No strong safe explicit structural static or dynamic by value, by reference Teaching, System Simplicity
Object Pascal (Delphi) imperative programming, object-oriented, generic programming No strong safe (but unsafe allowed) explicit nominative static Application, System Readability, Rapid application development, Modularity
Objective-C imperative programming, object-oriented, reflective programming Yes weak explicit static Application Smalltalk like, Component based code reuse, C compatibility
Ocaml object-oriented, functional programming, imperative programming, generic programming No strong safe implicit structural static by value Application Efficiency, Robustness, Correctness
Oz logic programming, functional programming, imperative programming, object-oriented, concurrent programming No dynamic Education
Pascal imperative programming, procedural programming Yes
(Extended Pascal standardized under ISO)
strong safe explicit static Education Readability, Discipline, Modularity
Perl imperative programming, procedural programming, reflective programming, functional programming, object-oriented, generic programming No weak implicit dynamic by reference Text processing, Scripting Terseness, Expressiveness
PHP imperative programming, object-oriented, reflective programming No weak dynamic Web Application, CLI Robustness and Simplicity
Prolog logic programming Yes

, ISO

strong dynamic Problem solving, Artificial intelligence declarative programming
Python imperative programming, object-oriented, functional programming, aspect-oriented programming, reflective programming No strong safe implicit dynamic Application, Education, Scripting Simplicity, Readability, Expressiveness, Modularity
Ruby imperative programming, object-oriented, aspect-oriented programming, reflective programming No strong implicit dynamic by reference Application, Scripting Expressiveness, Readability
Scala object-oriented, functional programming, generic programming No strong partially implicit static Education
Scheme functional programming Yes strong dynamic (latent) by value General, Education Minimalistic, Lexical Scoping
Smalltalk object-oriented, concurrent programming, event-driven programming, imperative programming, declarative programming Yes

, ANSI

strong safe implicit dynamic Application, Education Uniformity, Pure object oriented
Tcl imperative programming, procedural programming, event-driven programming No dynamic Application, Scripting
V functional programming, stack-oriented,concatenative No strong safe dynamic functional programming research concatenative
Visual Basic component-oriented programming, event-driven programming No strong safe nominative static by reference, by value (explicit) Application Rapid application development, Simplicity
Visual Basic .NET object-oriented, event-driven programming No strong static by reference, by value (both explicit) Application Rapid application development, Simplicity
Windows PowerShell imperative programming, object-oriented, functional programming, pipeline programming, reflective programming No strong safe implicit dynamic Scripting
Language Paradigm(s) Standardized Type strength Type safety Expression of types Type compatibility Type checking Parameter Passing Methods Available Intended use Design goals