Jump to content

User:Draychev/programming languages

From Wikipedia, the free encyclopedia
Sortable table
name license created paradigm influenced-by typing GC tail call pointers to functions encapsulation polymorphism inheritance currying monads
C GPLv3 1972 imperative (procedural), structured B (BCPL, CPL), ALGOL 68,Assembly, PL/I, Fortran Static, weak, manifest, nominal no no ptf encapsulation polymorphism inheritance implementable monads
C++ GPLv3 1983 procedural, functional, object-oriented, generic no maybe ptf yes yes yes implementable monads
Java GNU General Public License, Java Community Process 1995 object-oriented (class-based), structured, imperative, generic, reflective, concurrent yes no via interface? yes yes yes yes in Java 8 monads
Scala 3-clause BSD license 2004 functional, object-oriented, imperative, concurrent yes no ptf yes polymorphism inheritance currying monads
Clojure Eclipse Public License 2007 functional Common Lisp, Erlang, Haskell, ML, Prolog, Scheme, Java, Ruby dynamic, strong yes no ptf encapsulation polymorphism inheritance currying monads
Kotlin Apache 2 2011 Object-oriented, procedural Java, Scala, Groovy, C#, Gosu static yes no ptf encapsulation polymorphism inheritance currying monads
Ruby Ruby, GPLv2 or 2-clause BSD license 1995 object-oriented, imperative, functional, reflective yes no ptf encapsulation polymorphism inheritance currying monads
JavaScript license 1995 scripting, object-oriented (prototype-based), imperative, functional Lua, Scheme, Perl, Self, Java, C, Python, AWK, HyperTalk dynamic, duck yes no (maybe in ES6) ptf encapsulation polymorphism inheritance currying monads
Python Python Software Foundation License 1991 object-oriented, imperative, functional, procedural, reflective ABC, ALGOL 68, C, C++, Dylan, Haskell, Icon, Java, Lisp, Modula-3, Perl duck, dynamic, strong, gradual (as of Python 3.5) yes no ptf encapsulation polymorphism inheritance currying monads
Go BSD-style + patent grant 2009 compiled, concurrent, imperative, structured Alef, APL, BCPL, C, CSP, Limbo, Modula, Newsqueak, Oberon, occam, Pascal, Python, Smalltalk strong, static, inferred, structural yes no yes encapsulation polymorphism inheritance currying monads
Rust license 2010 compiled, concurrent, functional, imperative, structured no no ptf encapsulation polymorphism inheritance currying monads
Erlang Apache License 2.0 1986 concurrent, functional Prolog, Smalltalk, PLEX dynamic, strong yes yes ptf encapsulation polymorphism inheritance currying monads
Haskell New BSD License (GHC) 1990 functional, lazy/non-strict, modular Clean, FP, Gofer, Hope, Id, ISWIM, KRC, Lisp, Miranda, ML and Standard ML, Orwell, SASL, Scheme, SISAL, Agda, Bluespec,[1] C++11/Concepts, C#/LINQ, CAL,[citation needed] Cayenne,[2] Clean, Clojure, CoffeeScript, Curry, Elm, Epigram, Escher, F#, Frege, Hack, Idris, Isabelle, Java/Generics, LiveScript, Mercury, Omega, Perl 6, Python, Rust, Scala, Swift, Timber, Visual Basic 9.0 static, strong, inferred yes yes ptf encapsulation polymorphism inheritance currying monads
Racket LGPL 1994 functional, procedural, modular, object-oriented, logic, reflective, meta Scheme, Eiffel Dynamic, strong, static yes yes ptf encapsulation polymorphism inheritance currying monads
Perl, Perl 6 GNU General Public License or Artistic License 1987 functional, imperative, object-oriented (class-based), reflective, procedural, event-driven, generic dynamic, static, gradual yes no ptf encapsulation polymorphism inheritance currying monads
Swift 2014 Multi-paradigm (protocol-oriented programming, object-oriented, functional, imperative, block structured) C#, CLU, D, Haskell, Objective-C, Python, Rust, Ruby Static, strong, inferred no no ptf encapsulation polymorphism inheritance implementable monads
Objective-C 1983 Reflective, class-based object-oriented C, Smalltalk static, dynamic, weak no no ptf encapsulation polymorphism inheritance currying monads
Pascal depends on vendor 1970 Imperative, structured Static, strong, safe no no ptf encapsulation polymorphism inheritance currying monads
Wolfram Proprietary 1988 functional languages term-rewriting, functional, procedural, array no maybe no maybe ptf encapsulation polymorphism inheritance currying monads
  1. ^ Hudak et al. 2007, p. 12-38,43.
  2. ^ Hudak et al. 2007, pp. 12-45–46.