Sandbox: Difference between revisions
Content added Content deleted
m (Another link, spellcheck) |
(removed tabel, added temporary link to the new page) |
||
Line 1: | Line 1: | ||
Language comparison table now found [[Language Comparison Table|here]]. |
|||
{|class="wikitable sortable" |
|||
! [[Programming Language|Language]] |
|||
! Paradigm(s) |
|||
! Standardized |
|||
! [[Type strength]] |
|||
! [[Type safety]] |
|||
! Expression of types |
|||
! [[Type compatibility]] |
|||
! Type checking |
|||
! Intended use |
|||
! Design goals |
|||
|- |
|||
! [[ActionScript]] |
|||
| [[imperative programming]], [[object-oriented]], [[event-driven programming]] |
|||
| {{yes}}, [[ECMA]] |
|||
| strong |
|||
| safe |
|||
| |
|||
| |
|||
| static |
|||
| Web design |
|||
| |
|||
|- |
|||
! [[Ada]] |
|||
| [[concurrent programming|concurrent]], distributed programming, [[generic programming]], [[imperative programming]], [[object-oriented]] |
|||
| {{yes}}, [[ANSI]], [[ISO]] |
|||
| strong |
|||
| safe |
|||
| explicit |
|||
| nominative |
|||
| static |
|||
| Embedded, Real-time applications |
|||
| Reliability |
|||
|- |
|||
! [[ALGOL 68]] |
|||
| [[concurrent programming|concurrent]], [[imperative programming]] |
|||
| {{no}} |
|||
| strong |
|||
| safe |
|||
| |
|||
| structural |
|||
| static or dynamic |
|||
| Application |
|||
| Readability, Structure |
|||
|- |
|||
! [[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 |
|||
| System |
|||
| Low level access, Minimal constraint |
|||
|- |
|||
! [[C sharp|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 |
|||
| 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 |
|||
|- |
|||
! [[Eiffel]] |
|||
| [[imperative programming]], [[object-oriented]], [[generic programming]] |
|||
| {{yes}}, [http://www.ecma-international.org/publications/standards/Ecma-367.htm ECMA-367], [http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=42924 ISO/IEC 25436:2006] |
|||
| strong |
|||
| safe |
|||
| |
|||
| nominative |
|||
| static |
|||
| Application |
|||
| Correctness, Efficiency, Design by contract |
|||
|- |
|||
! [[Erlang]] |
|||
| [[functional programming]], [[concurrent 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 |
|||
|- |
|||
! [[Fortran]] |
|||
| [[imperative programming]], [[procedural programming]], [[object-oriented]] |
|||
| {{yes}} |
|||
| 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]] |
|||
| {{no}} |
|||
| strong |
|||
| |
|||
| implicit |
|||
| structural |
|||
| static |
|||
| Application |
|||
| [[lazy evaluation]], Explicit side-effect |
|||
|- |
|||
! [[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 |
|||
| Application |
|||
| Write once run anywhere |
|||
|- |
|||
! [[JavaScript]] |
|||
| [[imperative programming]], [[object-oriented]], [[functional programming]], [[reflective programming]] |
|||
| {{yes}} |
|||
| weak |
|||
| |
|||
| |
|||
| |
|||
| dynamic |
|||
| Client side web scripting |
|||
| |
|||
|- |
|||
! [[Joy]] |
|||
| [[functional programming]], [[stack]]-oriented |
|||
| {{no}} |
|||
| strong |
|||
| safe |
|||
| |
|||
| |
|||
| dynamic |
|||
| [[functional programming]] research |
|||
| [[concatenative]] |
|||
|- |
|||
! [[Lisp]] |
|||
| [[functional programming]], reflective; others vary by dialect |
|||
| {{no}} |
|||
| strong |
|||
| |
|||
| |
|||
| |
|||
| dynamic |
|||
| General |
|||
| Simple notation for Lambda calculus, Homoiconicity |
|||
|- |
|||
! [[Lua]] |
|||
| [[procedural programming]], [[imperative programming]], [[reflective programming|reflective]] |
|||
| {{no}} |
|||
| strong |
|||
| safe |
|||
| implicit |
|||
| |
|||
| dynamic |
|||
| Host-driven Scripting |
|||
| Small, embedded, configuration. |
|||
|- |
|||
! [[Mathematica]] |
|||
| [[functional programming]], [[procedural programming]] |
|||
| {{no}} |
|||
| strong |
|||
| |
|||
| |
|||
| |
|||
| dynamic |
|||
| Numeric computation and visualization |
|||
| |
|||
|- |
|||
! [[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 |
|||
| Application |
|||
| Efficiency, Robustness, Correctness |
|||
|- |
|||
! [[Oz]] |
|||
| logic programming, [[functional programming]], [[imperative programming]], [[object-oriented]], [[concurrent programming]] - multi paradigm |
|||
| {{no}} |
|||
| |
|||
| |
|||
| |
|||
| |
|||
| dynamic |
|||
| Education |
|||
| |
|||
|- |
|||
! [[Pascal]] |
|||
| [[imperative programming]], [[procedural programming]] |
|||
| {{yes}} |
|||
| 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 |
|||
| 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 |
|||
| Application, Scripting |
|||
| Expressiveness, Readability |
|||
|- |
|||
! [[Scala]] |
|||
| [[object-oriented]], [[functional programming]], [[generic programming]] |
|||
| {{no}} |
|||
| strong |
|||
| |
|||
| partially implicit |
|||
| |
|||
| static |
|||
| Education |
|||
| |
|||
|- |
|||
! [[Scheme]] |
|||
| [[functional programming]] |
|||
| {{yes}} |
|||
| strong |
|||
| |
|||
| |
|||
| |
|||
| dynamic (latent) |
|||
| 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 |
|||
| |
|||
|- |
|||
! [[Visual Basic]] |
|||
| component-oriented programming, [[event-driven programming]] |
|||
| {{no}} |
|||
| strong |
|||
| safe |
|||
| |
|||
| nominative |
|||
| static |
|||
| Application |
|||
| Rapid application development, Simplicity |
|||
|- |
|||
! [[Visual Basic .NET]] |
|||
| [[object-oriented]], [[event-driven programming]] |
|||
| {{no}} |
|||
| strong |
|||
| |
|||
| |
|||
| |
|||
| static |
|||
| Application |
|||
| Rapid application development, Simplicity |
|||
|- |
|||
! [[Windows PowerShell]] |
|||
| [[imperative programming]], [[object-oriented]], [[functional programming]], [[pipeline programming]], [[reflective programming]] |
|||
| {{no}} |
|||
| strong |
|||
| safe |
|||
| implicit |
|||
| |
|||
| dynamic |
|||
| |
|||
| |
|||
|-class="sortbottom" |
|||
! [[Programming Language|Language]] |
|||
! Paradigm(s) |
|||
! Standardized |
|||
! [[Type strength]] |
|||
! [[Type safety]] |
|||
! Expression of types |
|||
! [[Type compatibility]] |
|||
! Type checking |
|||
! Intended use |
|||
! Design goals |
|||
|} |
Revision as of 20:09, 19 July 2008
Language comparison table now found here.