Sandbox: Difference between revisions
Content added Content deleted
m (This pages doesn't need to be in the implementations category) |
m (Not sure where this should go...) |
||
Line 1: | Line 1: | ||
{|class="wikitable sortable" |
|||
! Language |
|||
! Paradigm(s) |
|||
! Standarized |
|||
! Type strength |
|||
! Type safety |
|||
! Expression of types |
|||
! Type Compatability |
|||
! Type checking |
|||
! 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 |
|||
| strong |
|||
| safe |
|||
| explicit |
|||
| nominative |
|||
| static |
|||
| Embedded, Realtime applications |
|||
| Reliability |
|||
|- |
|||
! [[ALGOL 68]] |
|||
| 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}}, 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 |
|||
|- |
|||
! [[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 |
|||
| {{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" |
|||
! Language |
|||
! Paradigm(s) |
|||
! Standarized |
|||
! Type strength |
|||
! Type safety |
|||
! Expression of types |
|||
! Type Compatability |
|||
! Type checking |
|||
! Intended use |
|||
! Design goals |
|||
|} |
|||
{{usertop}} |
{{usertop}} |
||
|- |
|- |