Sandbox: Difference between revisions
Content added Content deleted
m (Not sure where this should go...) |
m (Added tons of links to the table) |
||
Line 1: | Line 1: | ||
{|class="wikitable sortable" |
{|class="wikitable sortable" |
||
! [[Programming Language|Language]] |
|||
! Language |
|||
! Paradigm(s) |
! Paradigm(s) |
||
! Standarized |
! Standarized |
||
! Type strength |
! [[Type strength]] |
||
! Type safety |
! [[Type safety]] |
||
! Expression of types |
! Expression of types |
||
! Type Compatability |
! Type Compatability |
||
Line 12: | Line 12: | ||
|- |
|- |
||
! [[ActionScript]] |
! [[ActionScript]] |
||
| imperative programming, object-oriented, event-driven programming |
| [[imperative programming]], [[object-oriented]], event-driven programming |
||
| {{yes}}, ECMA |
| {{yes}}, [[ECMA]] |
||
| strong |
| strong |
||
| safe |
| safe |
||
Line 23: | Line 23: | ||
|- |
|- |
||
! [[Ada]] |
! [[Ada]] |
||
| concurrent, distributed programming, generic programming, imperative programming, object-oriented |
| concurrent, distributed programming, generic programming, [[imperative programming]], [[object-oriented]] |
||
| {{yes}}, ANSI, ISO |
| {{yes}}, [[ANSI]], ISO |
||
| strong |
| strong |
||
| safe |
| safe |
||
Line 34: | Line 34: | ||
|- |
|- |
||
! [[ALGOL 68]] |
! [[ALGOL 68]] |
||
| concurrent, imperative programming |
| concurrent, [[imperative programming]] |
||
| {{no}} |
| {{no}} |
||
| strong |
| strong |
||
Line 45: | Line 45: | ||
|- |
|- |
||
! [[BASIC]] |
! [[BASIC]] |
||
| procedural programming |
| [[procedural programming]] |
||
| {{yes}}, ANSI, ISO |
| {{yes}}, [[ANSI]], ISO |
||
| varies by dialect |
| varies by dialect |
||
| |
| |
||
Line 56: | Line 56: | ||
|- |
|- |
||
! [[C]] |
! [[C]] |
||
| imperative programming |
| [[imperative programming]] |
||
| {{yes}}, ANSI C89, ISO C90/C99 |
| {{yes}}, [[ANSI]] C89, ISO C90/C99 |
||
| weak |
| weak |
||
| unsafe |
| unsafe |
||
Line 67: | Line 67: | ||
|- |
|- |
||
! [[C sharp|C#]] |
! [[C sharp|C#]] |
||
| imperative programming, object-oriented, generic programming, reflective programming |
| [[imperative programming]], [[object-oriented]], generic programming, reflective programming |
||
| {{yes}}, ECMA, ISO |
| {{yes}}, [[ECMA]], ISO |
||
| strong |
| strong |
||
| safe (but unsafe allowed) |
| safe (but unsafe allowed) |
||
Line 78: | Line 78: | ||
|- |
|- |
||
! [[C++]] |
! [[C++]] |
||
| imperative programming, object-oriented, generic programming |
| [[imperative programming]], [[object-oriented]], generic programming |
||
| {{yes}}, ISO |
| {{yes}}, ISO |
||
| strong |
| strong |
||
Line 89: | Line 89: | ||
|- |
|- |
||
! [[Clean]] |
! [[Clean]] |
||
| functional programming, generic programming |
| [[functional programming]], generic programming |
||
| {{no}} |
| {{no}} |
||
| strong |
| strong |
||
Line 100: | Line 100: | ||
|- |
|- |
||
! [[COBOL]] |
! [[COBOL]] |
||
| imperative programming, object-oriented |
| [[imperative programming]], [[object-oriented]] |
||
| {{yes}} |
| {{yes}} |
||
| strong |
| strong |
||
Line 111: | Line 111: | ||
|- |
|- |
||
! [[ColdFusion]] |
! [[ColdFusion]] |
||
| procedural programming, object-oriented |
| [[procedural programming]], [[object-oriented]] |
||
| {{no}} |
| {{no}} |
||
| weak |
| weak |
||
Line 122: | Line 122: | ||
|- |
|- |
||
! [[Common Lisp]] |
! [[Common Lisp]] |
||
| imperative programming, functional programming, object-oriented |
| [[imperative programming]], [[functional programming]], [[object-oriented]] |
||
| {{yes}} |
| {{yes}} |
||
| strong |
| strong |
||
Line 130: | Line 130: | ||
| dynamic |
| dynamic |
||
| General |
| General |
||
| Standardize Lisp |
| Standardize [[Lisp]] |
||
|- |
|- |
||
! [[D]] |
! [[D]] |
||
| imperative programming, object-oriented, generic programming |
| [[imperative programming]], [[object-oriented]], generic programming |
||
| {{no}} |
| {{no}} |
||
| strong |
| strong |
||
Line 144: | Line 144: | ||
|- |
|- |
||
! [[Eiffel]] |
! [[Eiffel]] |
||
| imperative programming, object-oriented, generic programming |
| [[imperative programming]], [[object-oriented]], generic programming |
||
| {{yes}}, ECMA-367, ISO/IEC 25436:2006 |
| {{yes}}, [[ECMA]]-367, ISO/IEC 25436:2006 |
||
| strong |
| strong |
||
| safe |
| safe |
||
Line 155: | Line 155: | ||
|- |
|- |
||
! [[Erlang]] |
! [[Erlang]] |
||
| functional programming, concurrent, distributed programming |
| [[functional programming]], concurrent, distributed programming |
||
| {{no}} |
| {{no}} |
||
| strong |
| strong |
||
Line 166: | Line 166: | ||
|- |
|- |
||
! [[Forth]] |
! [[Forth]] |
||
| imperative programming, stack-oriented |
| [[imperative programming]], stack-oriented |
||
| {{yes}}, ANSI |
| {{yes}}, [[ANSI]] |
||
| none |
| none |
||
| n/a |
| n/a |
||
Line 177: | Line 177: | ||
|- |
|- |
||
! [[Fortran]] |
! [[Fortran]] |
||
| imperative programming, procedural programming, object-oriented |
| [[imperative programming]], [[procedural programming]], [[object-oriented]] |
||
| {{yes}} |
| {{yes}} |
||
| strong |
| strong |
||
Line 188: | Line 188: | ||
|- |
|- |
||
! [[Groovy]] |
! [[Groovy]] |
||
| imperative programming, object-oriented, aspect-oriented programming |
| [[imperative programming]], [[object-oriented]], aspect-oriented programming |
||
| {{no}} |
| {{no}} |
||
| strong |
| strong |
||
Line 196: | Line 196: | ||
| dynamic |
| dynamic |
||
| Application |
| Application |
||
| JVM compatibility |
| [[JVM]] compatibility |
||
|- |
|- |
||
! [[Haskell]] |
! [[Haskell]] |
||
| functional programming, generic programming, lazy evaluation |
| [[functional programming]], generic programming, lazy evaluation |
||
| {{no}} |
| {{no}} |
||
| strong |
| strong |
||
Line 210: | Line 210: | ||
|- |
|- |
||
! [[J]] |
! [[J]] |
||
| array programming, function-level programming, tacit programming |
| [[array]] programming, function-level programming, tacit programming |
||
| {{no}} |
| {{no}} |
||
| strong |
| strong |
||
Line 221: | Line 221: | ||
|- |
|- |
||
! [[Java]] |
! [[Java]] |
||
| imperative programming, object-oriented, generic programming, reflective programming |
| [[imperative programming]], [[object-oriented]], generic programming, reflective programming |
||
| {{no}} |
| {{no}} |
||
| strong |
| strong |
||
Line 232: | Line 232: | ||
|- |
|- |
||
! [[JavaScript]] |
! [[JavaScript]] |
||
| imperative programming, object-oriented, functional programming, reflective programming |
| [[imperative programming]], [[object-oriented]], [[functional programming]], reflective programming |
||
| {{yes}} |
| {{yes}} |
||
| weak |
| weak |
||
Line 243: | Line 243: | ||
|- |
|- |
||
! [[Joy]] |
! [[Joy]] |
||
| functional programming, stack-oriented |
| [[functional programming]], stack-oriented |
||
| {{no}} |
| {{no}} |
||
| strong |
| strong |
||
Line 250: | Line 250: | ||
| |
| |
||
| dynamic |
| dynamic |
||
| |
| [[functional programming]] research |
||
| [[concatenative]] |
|||
| Concatenative |
|||
|- |
|- |
||
! [[Lisp]] |
! [[Lisp]] |
||
| functional programming, reflective; others vary by dialect |
| [[functional programming]], reflective; others vary by dialect |
||
| {{no}} |
| {{no}} |
||
| strong |
| strong |
||
Line 265: | Line 265: | ||
|- |
|- |
||
! [[Lua]] |
! [[Lua]] |
||
| procedural programming, imperative programming, reflective |
| [[procedural programming]], [[imperative programming]], reflective |
||
| {{no}} |
| {{no}} |
||
| strong |
| strong |
||
Line 276: | Line 276: | ||
|- |
|- |
||
! [[Mathematica]] |
! [[Mathematica]] |
||
| functional programming, procedural programming |
| [[functional programming]], [[procedural programming]] |
||
| {{no}} |
| {{no}} |
||
| strong |
| strong |
||
Line 287: | Line 287: | ||
|- |
|- |
||
! [[Object Pascal]] ([[Delphi]]) |
! [[Object Pascal]] ([[Delphi]]) |
||
| imperative programming, object-oriented, generic programming |
| [[imperative programming]], [[object-oriented]], generic programming |
||
| {{no}} |
| {{no}} |
||
| strong |
| strong |
||
Line 298: | Line 298: | ||
|- |
|- |
||
! [[Objective-C]] |
! [[Objective-C]] |
||
| imperative programming, object-oriented, reflective programming |
| [[imperative programming]], [[object-oriented]], reflective programming |
||
| {{yes}} |
| {{yes}} |
||
| weak |
| weak |
||
Line 309: | Line 309: | ||
|- |
|- |
||
! [[Ocaml]] |
! [[Ocaml]] |
||
| object-oriented, functional programming, imperative programming, generic programming |
| [[object-oriented]], [[functional programming]], [[imperative programming]], generic programming |
||
| {{no}} |
| {{no}} |
||
| strong |
| strong |
||
Line 320: | Line 320: | ||
|- |
|- |
||
! [[Oz]] |
! [[Oz]] |
||
| logic programming, functional programming, imperative programming, object-oriented, concurrent programming - multi paradigm |
| logic programming, [[functional programming]], [[imperative programming]], [[object-oriented]], concurrent programming - multi paradigm |
||
| {{no}} |
| {{no}} |
||
| |
| |
||
Line 331: | Line 331: | ||
|- |
|- |
||
! [[Pascal]] |
! [[Pascal]] |
||
| imperative programming, procedural programming |
| [[imperative programming]], [[procedural programming]] |
||
| {{yes}} |
| {{yes}} |
||
| strong |
| strong |
||
Line 342: | Line 342: | ||
|- |
|- |
||
! [[Perl]] |
! [[Perl]] |
||
| imperative programming, procedural programming, reflective programming, functional programming, object-oriented, generic programming |
| [[imperative programming]], [[procedural programming]], reflective programming, [[functional programming]], [[object-oriented]], generic programming |
||
| {{no}} |
| {{no}} |
||
| weak |
| weak |
||
Line 353: | Line 353: | ||
|- |
|- |
||
! [[PHP]] |
! [[PHP]] |
||
| imperative programming, object-oriented, reflective programming |
| [[imperative programming]], [[object-oriented]], reflective programming |
||
| {{no}} |
| {{no}} |
||
| weak |
| weak |
||
Line 372: | Line 372: | ||
| dynamic |
| dynamic |
||
| Problem solving, Artificial intelligence |
| Problem solving, Artificial intelligence |
||
| |
| [[declarative programming]] |
||
|- |
|- |
||
! [[Python]] |
! [[Python]] |
||
| imperative programming, object-oriented, functional programming, aspect-oriented programming, reflective programming |
| [[imperative programming]], [[object-oriented]], [[functional programming]], aspect-oriented programming, reflective programming |
||
| {{no}} |
| {{no}} |
||
| strong |
| strong |
||
Line 386: | Line 386: | ||
|- |
|- |
||
! [[Ruby]] |
! [[Ruby]] |
||
| imperative programming, object-oriented, aspect-oriented programming, reflective programming |
| [[imperative programming]], [[object-oriented]], aspect-oriented programming, reflective programming |
||
| {{no}} |
| {{no}} |
||
| strong |
| strong |
||
Line 397: | Line 397: | ||
|- |
|- |
||
! [[Scala]] |
! [[Scala]] |
||
| object-oriented, functional programming, generic programming |
| [[object-oriented]], [[functional programming]], generic programming |
||
| {{no}} |
| {{no}} |
||
| strong |
| strong |
||
Line 408: | Line 408: | ||
|- |
|- |
||
! [[Scheme]] |
! [[Scheme]] |
||
| functional programming |
| [[functional programming]] |
||
| {{yes}} |
| {{yes}} |
||
| strong |
| strong |
||
Line 419: | Line 419: | ||
|- |
|- |
||
! [[Smalltalk]] |
! [[Smalltalk]] |
||
| object-oriented, concurrent programming, event-driven programming, imperative programming, declarative programming |
| [[object-oriented]], concurrent programming, event-driven programming, [[imperative programming]], [[declarative programming]] |
||
| {{yes}}, ANSI |
| {{yes}}, [[ANSI]] |
||
| strong |
| strong |
||
| safe |
| safe |
||
Line 430: | Line 430: | ||
|- |
|- |
||
! [[Tcl]] |
! [[Tcl]] |
||
| imperative programming, procedural programming, event-driven programming |
| [[imperative programming]], [[procedural programming]], event-driven programming |
||
| {{no}} |
| {{no}} |
||
| |
| |
||
Line 452: | Line 452: | ||
|- |
|- |
||
! [[Visual Basic .NET]] |
! [[Visual Basic .NET]] |
||
| object-oriented, event-driven programming |
| [[object-oriented]], event-driven programming |
||
| {{no}} |
| {{no}} |
||
| strong |
| strong |
||
Line 463: | Line 463: | ||
|- |
|- |
||
! [[Windows PowerShell]] |
! [[Windows PowerShell]] |
||
| imperative programming, object-oriented, functional programming, pipeline programming, reflective programming |
| [[imperative programming]], [[object-oriented]], [[functional programming]], pipeline programming, reflective programming |
||
| {{no}} |
| {{no}} |
||
| strong |
| strong |
||
Line 473: | Line 473: | ||
| |
| |
||
|-class="sortbottom" |
|-class="sortbottom" |
||
! [[Programming Language|Language]] |
|||
! Language |
|||
! Paradigm(s) |
! Paradigm(s) |
||
! Standarized |
! Standarized |
||
! Type strength |
! [[Type strength]] |
||
! Type safety |
! [[Type safety]] |
||
! Expression of types |
! Expression of types |
||
! Type Compatability |
! Type Compatability |