Comparison of Programming Languages

From Unify Community Wiki
(Difference between revisions)
Jump to: navigation, search
(Starting new page; initial content is from Wikipedia, but will be modified.)
 
(Comparison)
Line 5: Line 5:
 
The following tables compares technical information, type systems, and failsafes of the Unity programming language. See also the [[Comparison of Basic Instructions of Programming Languages]] for more detailed information
 
The following tables compares technical information, type systems, and failsafes of the Unity programming language. See also the [[Comparison of Basic Instructions of Programming Languages]] for more detailed information
  
{| class="wikitable sortable"
+
{| style="margin: 1em; margin-left: 0; background: #f9f9f9; border: 1px #aaa solid;"
 
|-  
 
|-  
 
! Language
 
! Language
! Intended use <!--What was this supposed to be used for? Not what is this used for now (that would be hard to verify).-->
+
! Intended use
! [[Programming paradigm|Paradigm]](s)
+
! [[http://en.wikipedia.org/wiki/Programming_paradigm Paradigm]](s)
! [[Standardization|Standardized]]?
+
! [[http://en.wikipedia.org/wiki/Standardization Standardized]] Variation?
 
|-
 
|-
! [[ActionScript|ActionScript 3.0]]
+
! [http://en.wikipedia.org/wiki/Boo_(programming_language) Boo]
| Web, client-side
+
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[event-driven programming|event-driven]]
+
| {{Yes}}, ECMA
+
|-
+
! [[Ada (programming language)|Ada]]
+
| Application, Embedded, System and Realtime
+
| [[imperative programming|imperative]], [[Procedural programming|procedural]]<ref>[http://www.adaic.org/standards/05rm/html/RM-TTL.html Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3], [http://www.adaic.org/standards/05rm/html/RM-6.html Section 6: Subprograms]</ref>, [[concurrent programming language|concurrent]]<ref>[http://www.adaic.org/standards/05rm/html/RM-TTL.html Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3], [http://www.adaic.org/standards/05rm/html/RM-9.html Section 9: Tasks and Synchronization]</ref>, [[distributed programming|distributed]]<ref>[http://www.adaic.org/standards/05rm/html/RM-TTL.html Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3] [http://www.adaic.org/standards/05rm/html/RM-E.html Annex E: Distributed Systems]</ref>, [[generic programming|generic]]<ref>[http://www.adaic.org/standards/05rm/html/RM-TTL.html Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3], [http://www.adaic.org/standards/05rm/html/RM-12.html Section 12: Generic Units]</ref>, [[object-oriented programming|object-oriented]]<ref>[http://www.adaic.org/standards/05rm/html/RM-TTL.html Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3], [http://www.adaic.org/standards/05rm/html/RM-3-9.html 3.9 Tagged Types and Type Extensions]</ref>
+
| {{yes}}, ANSI, ISO, [[GOST]] 27831-88 <ref>http://vak.ru/lib/exe/fetch.php/book/gost/pdf/gost-27831-88.pdf</ref>
+
|-
+
! [[ALGOL 58]]
+
 
| Application
 
| Application
| [[imperative programming|imperative]]
+
| [[http://en.wikipedia.org/wiki/Object-oriented_programming object-oriented]], ?
| {{no}}
+
|-
+
! [[ALGOL 60]]
+
| Application
+
| [[imperative programming|imperative]]
+
| {{yes}}, ISO<ref>[http://www.open-std.org/jtc1/sc22/docs/oldwgs/wg6.html ISO 1538:1984]</ref>
+
|-
+
! [[ALGOL 68]]
+
| Application
+
| [[imperative programming|imperative]], [[concurrent programming language|concurrent]]
+
| {{yes}}, [[GOST 27974-88]]<ref>http://vak.ru/lib/exe/fetch.php/book/gost/pdf/gost-27974-88.pdf</ref>
+
|-
+
! [[APL (programming language)|APL]]
+
| Application, Data processing
+
| [[array programming|array-oriented]], [[tacit programming|tacit]]
+
| {{yes}}, ISO
+
|-
+
! [[Assembly language]]
+
| General
+
|
+
| {{no}}
+
|-
+
 
+
! [[AutoHotkey]]
+
| End User Programming
+
| [[imperative programming|imperative]]
+
| {{no}}
+
|-
+
! [[AutoIt]]
+
| Highly domain-specific, GUI automation(macros)
+
| [[imperative programming|imperative]], [[Procedural programming|procedural]]
+
| {{no}}
+
|-
+
! [[BASIC (programming language)|BASIC]]
+
| Application, Education
+
| [[imperative programming|imperative]], [[Procedural programming|procedural]]
+
| {{yes}}, [http://portal.acm.org/citation.cfm?id=988221 ANSI], ISO
+
|-
+
! [[BeanShell]]
+
| Application, Scripting
+
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[functional programming|functional]], [[reflective programming|reflective]]
+
| {{no|In progress}}, [[JCP]]<ref>[http://jcp.org/en/jsr/detail?id=274 JSR 274]</ref>
+
|-
+
! [[BLISS (programming language)|BLISS]]
+
| System
+
| [[Procedural programming|procedural]]
+
| {{no}}
+
|-
+
! [[Boo (programming language)|Boo]]
+
| Application
+
|
+
| {{no}}
+
|-
+
! [[C (programming language)|C]]
+
| System <ref>http://cm.bell-labs.com/cm/cs/who/dmr/chist.html</ref>
+
| [[imperative programming|imperative]], [[Procedural programming|procedural]]
+
| {{yes}}, [[ANSI C|ANSI C89, ISO C90/C99]]
+
|-
+
! [[C++]]
+
| Application, System
+
| [[imperative programming|imperative]], [[Procedural programming|procedural]], [[object-oriented programming|object-oriented]], [[generic programming|generic]]
+
| {{yes}}, ISO
+
|-
+
! [[C Sharp (programming language)|C#]]
+
| Application
+
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[functional programming|functional]], [[generic programming|generic]], [[reflective programming|reflective]]
+
| {{yes}}, ECMA, ISO<ref>ECMA-334; ISO/IEC 23270:2006</ref>
+
|-
+
! [[Clean (programming language)|Clean]]
+
| General
+
| [[functional programming|functional]], [[generic programming|generic]]
+
| {{no}}
+
|-
+
! [[Clojure]]
+
| General
+
| [[functional programming|functional]]
+
| {{no}}
+
|-
+
! [[Cobol|COBOL]]
+
| Application, Business
+
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]]
+
 
| {{yes}}
 
| {{yes}}
 
|-
 
|-
! [[Coldfusion|ColdFusion]]
+
! [http://en.wikipedia.org/wiki/C_Sharp_(programming_language) C#]
| Web Development
+
| [[Procedural programming|procedural]], [[object-oriented programming|object-oriented]]
+
| {{no}}
+
|-
+
! [[Common Lisp|Common&nbsp;Lisp]]
+
| General
+
| [[imperative programming|imperative]], [[functional programming|functional]], [[object-oriented programming|object-oriented]]
+
| {{yes}}
+
|-
+
! [[Curl programming language|Curl]]
+
|
+
| [[imperative programming|imperative]], [[event-driven programming|event-driven]], [[functional programming|functional]], [[object-oriented programming|object-oriented]], [[generic programming|generic]], [[reflective programming|reflective]]
+
| {{no}}
+
|-
+
! [[D (programming language)|D]]
+
| Application; System
+
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[generic programming|generic]]
+
| {{no}}
+
|-
+
! [[Dylan (programming language)|Dylan]]
+
 
| Application
 
| Application
| [[functional programming|functional]], [[object-oriented programming|object-oriented]]
+
| [[http://en.wikipedia.org/wiki/Imperative_programming imperative]], [[http://en.wikipedia.org/wiki/Object-oriented_programming object-oriented]], [[http://en.wikipedia.org/wiki/Functional_programming functional]], [[http://en.wikipedia.org/wiki/Generic_programming generic]], [[http://en.wikipedia.org/wiki/Reflective_programming reflective]]
| {{no}}
+
| {{yes}}, ECMA, ISO ECMA-334; ISO/IEC 23270:2006
 
|-
 
|-
! [[Eiffel (programming language)|Eiffel]]
+
! [http://en.wikipedia.org/wiki/JavaScript JavaScript]
| Application
+
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[generic programming|generic]]
+
| {{yes}}, ECMA, ISO<ref>ECMA-367; ISO/IEC 25436:2006</ref>
+
|-
+
! [[Erlang programming language|Erlang]]
+
| Application, Distributed and Telecom
+
| [[functional programming|functional]], [[concurrent programming language|concurrent]], [[distributed programming|distributed]]
+
| {{no}}
+
|-
+
! [[Factor (programming language)|Factor]]
+
|
+
| [[Stack-oriented programming language|stack-oriented]]
+
| {{no}}
+
|-
+
! [[FP (programming language)|FP]]
+
|
+
| [[Functional programming|functional]]
+
| {{no}}
+
|-
+
! [[F Sharp programming language|F#]]
+
| Application
+
| [[imperative programming|imperative]], [[Functional programming|functional]], [[object-oriented programming|object-oriented]], [[generic programming|generic]]
+
| {{no}}
+
|-
+
! [[Forth (programming language)|Forth]]
+
| General
+
| [[Imperative programming|imperative]], [[Stack-oriented programming language|stack-oriented]]
+
| {{yes}}, ANSI
+
|-
+
! [[FORTRAN]]
+
| Application, scientific and engineering
+
| [[Imperative programming|imperative]], [[Procedural programming|procedural]], [[Object-oriented programming|object-oriented]]
+
| {{yes}}, ANSI 66, ANSI 77, MIL-STD-1753, ISO 90, ISO 95, ISO 2003
+
|-
+
! [[Game Maker Language]]
+
| Application, games
+
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[event-driven programming|event-driven]]
+
| {{no}}
+
|-
+
! [[GraphTalk]]
+
|
+
| [[Logic programming|logic-oriented]], [[Object-oriented programming|object-oriented]]
+
| {{no}}
+
|-
+
! [[Groovy programming language|Groovy]]
+
| Application, Web
+
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[aspect-oriented programming|aspect-oriented]]
+
| {{no}}
+
|-
+
! [[Haskell (programming language)|Haskell]]
+
| Application
+
| [[functional programming|functional]], [[generic programming|generic]], [[lazy evaluation]]
+
| {{yes}}, Haskell 98<ref>{{cite web|url=http://www.haskell.org/onlinereport/ |title=The Haskell 98 Language Report |accessdate=2009-03-07}} Most Haskell implementations extend the Haskell 98 standard.</ref>
+
|-
+
! [[Io programming language|Io]]
+
| Application, Host-driven Scripting
+
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]]
+
| {{no}}
+
|-
+
! [[J (programming language)|J]]
+
| Data processing
+
| [[array programming|array-oriented]], [[function-level programming|function-level]], [[tacit programming|tacit]]
+
| {{no}}
+
|-
+
! [[JADE (programming language)|JADE]]
+
| Application, Distributed
+
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]]
+
| {{no}}
+
|-
+
! [[Java (programming language)|Java]]
+
| Application, Web
+
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[generic programming|generic]], [[reflective programming|reflective]]
+
| {{no}}, [http://java.sun.com/docs/books/jls/third_edition/html/j3TOC.html Java Language Specification]
+
|-
+
! [[JavaScript]]
+
 
| Web, client-side
 
| Web, client-side
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[functional programming|functional]], [[reflective programming|reflective]]
+
| [[http://en.wikipedia.org/wiki/Imperative_programming imperative]], [[http://en.wikipedia.org/wiki/Object-oriented_programming object-oriented]], [[http://en.wikipedia.org/wiki/Functional_programming functional]], [[http://en.wikipedia.org/wiki/Reflective_programming reflective]]
| {{yes}}, ECMA
+
|-
+
! [[Joy (programming language)|Joy]]
+
| research
+
| [[Functional programming|functional]], [[Stack-oriented programming language|stack-oriented]]
+
 
| {{no}}
 
| {{no}}
|-
 
! [[G (programming language)|LabVIEW ("G")]]
 
| Application, industrial instrumentation and automation
 
| [[Dataflow programming|dataflow]], [[Visual programming language|visual]]
 
| {{no}}
 
|-
 
! [[Lua (programming language)|Lua]]
 
| Embedded scripting; Application
 
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]]<!-- Lua doesn't have explicit "object" type (more general type of "table" is used for object definition), but have explicit syntax for object method calling -->, [[functional programming|functional]], [[aspect-oriented programming|aspect-oriented]], [[reflective programming|reflective]]
 
| {{no}}<ref>Version releases are accompanied with a definitive Lua Reference Manual showing full syntax and semantics; a reference implementation, and a test suite. These are used to generate other Lua [[virtual machine|VM]] implementations and compilers such as [[Kahlua (software)|Kahlua]] and [[LLVM-Lua]].</ref>
 
|-
 
! [[Mathematica]]
 
| Highly domain-specific, Math
 
| [[Procedural programming|procedural]], [[Functional programming|functional]]
 
| {{no}}
 
|-
 
! [[MATLAB|MATLAB M-code]]
 
| Highly domain-specific, Math
 
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]]
 
| {{no}}
 
|-
 
! [[Modula-2 programming language|Modula-2]]
 
| Application, System
 
| [[imperative programming|imperative]], [[generic programming|generic]]
 
| {{Yes}}, ISO<ref>ISO/IEC 10514-1:1996</ref>
 
|-
 
! [[Modula-3 programming language|Modula-3]]
 
| Application
 
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[generic programming|generic]]
 
| {{no}}
 
|-
 
! [[Mythryl]]
 
| Application, Scripting
 
| [[imperative programming|imperative]], [[generic programming|generic]], [[Functional programming|functional]]
 
| {{no}}
 
|-
 
! [[Oberon programming language|Oberon]]
 
| Application, System
 
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]]
 
| {{no}}
 
|-
 
! [[Objective-C]]
 
| Application
 
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[reflective programming|reflective]]
 
| {{yes}}{{Citation needed|date=July 2009}}
 
|-
 
! [[Objective Caml]]
 
| Application
 
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[Functional programming|functional]], [[generic programming|generic]]
 
| {{no}}
 
|-
 
! [[Object Pascal]] ([[Borland Delphi|Delphi]])
 
| Application
 
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[generic programming|generic]], [[event-driven programming|event-driven]]
 
| {{no}}
 
|-
 
! [[Occam programming language|Occam]]
 
| Parallel computations
 
| [[Imperative programming|imperative]], [[Procedural programming|procedural]], [[Concurrent programming language|concurrent]], [[Process-oriented programming|process-oriented]]
 
| {{no}}
 
|-
 
! [[Oxygene (programming language)|Oxygene]]
 
| Application
 
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[generic programming|generic]]
 
| {{no}}
 
|-
 
! [[Oz (programming language)|Oz]]
 
| Education
 
| [[imperative programming|imperative]], [[logic programming|logic]], [[functional programming|functional]], [[object-oriented programming|object-oriented]], [[concurrent programming|concurrent]]
 
| {{no}}
 
|-
 
! [[Pascal (programming language)|Pascal]]
 
| Application, Education
 
| [[imperative programming|imperative]], [[Procedural programming|procedural]]
 
| {{yes}}, ISO<ref>ISO 7185</ref>
 
|-
 
! [[Pawn (programming language)|Pawn]]
 
| Embedded, Host-driven Scripting
 
| [[imperative programming|imperative]]
 
| {{no}}
 
|-
 
! [[Perl]]
 
| Application, Text processing, Scripting, Web
 
| [[Imperative programming|imperative]], [[Procedural programming|procedural]], [[reflective programming|reflective]], [[functional programming|functional]], [[object-oriented programming|object-oriented]], [[generic programming|generic]]
 
| {{no}}
 
|-
 
! [[PHP]]
 
| Web, server-side
 
| [[imperative programming|imperative]], [[Procedural programming|procedural]]<ref>[http://php.net/manual/en/index.php PHP Manual], [http://php.net/manual/en/language.functions.php Chapter 17. Functions]</ref>, [[object-oriented programming|object-oriented]]<ref>[http://php.net/manual/en/index.php PHP Manual], [http://php.net/manual/en/language.oop5.php Chapter 19. Classes and Objects (PHP 5)]</ref>, [[reflective programming|reflective]]
 
| {{no}}
 
|-
 
! [[PL/I]]
 
| Application, [[COBOL]]'s and [[Fortran]]'s original domain
 
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]]
 
| {{Yes}}
 
|-
 
! [[Prolog]]
 
| Application, Artificial intelligence
 
| [[logic programming|logic]]
 
| {{Yes}}, ISO
 
|-
 
! [[Python (programming language)|Python]]
 
| Application, Scripting, Web
 
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[functional programming|functional]], [[aspect-oriented programming|aspect-oriented]], [[reflective programming|reflective]]
 
| {{no}}<ref>Language changes are done using a formally documented procedure, starting with a Python Enhancement Proposal (PEP)s. Python version releases are accompanied with a Language Reference Manual showing syntax and semantics; a reference implementation, and test suite. These are used to generate other Python implementations such as [[Jython]] and [[IronPython]].</ref>
 
|-
 
! [[REALbasic]]
 
| Application
 
|
 
| {{unk}}
 
|-
 
! [[REBOL]]
 
| Distributed computing
 
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[functional programming|functional]], [[dialecting|dialected]]
 
| {{no}}
 
|-
 
! [[IBM RPG|RPG]]
 
| Application
 
|
 
| {{unk}}
 
|-
 
! [[Ruby (programming language)|Ruby]]
 
| Application, Scripting, Web
 
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[aspect-oriented programming|aspect-oriented]], [[reflective programming|reflective]], [[functional programming|functional]]
 
| {{no}}
 
|-
 
! [[S programming language|S]]
 
| Application, Statistics
 
| [[imperative programming|imperative]], [[Procedural programming|procedural]], [[functional programming|functional]], [[object-oriented programming|object-oriented]]
 
| {{no}}
 
|-
 
! [[S-Lang (programming language)|S-Lang]]
 
| Application, Scripting, Numerical
 
| [[imperative programming|imperative]], [[Procedural programming|procedural]]
 
| {{no}}
 
|-
 
! [[Scala programming language|Scala]]
 
| Application
 
| [[object-oriented programming|object-oriented]], [[functional programming|functional]], [[generic programming|generic]]
 
| {{no}}
 
|-
 
! [[Scheme (programming language)|Scheme]]
 
| General, Education
 
| [[functional programming|functional]]
 
| {{Yes}}, R<sup>6</sup>RS
 
|-
 
! [[Simula]]
 
| General, Education
 
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[event-driven programming|event-driven]], [[discrete event simulation]], [[multi-threaded]] (quasi-parallel) program execution
 
| {{Yes}}
 
|-
 
! [[Smalltalk]]
 
| Application, Education
 
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[concurrent programming|concurrent]], [[event-driven programming|event-driven]], [[declarative programming|declarative]]
 
| {{Yes}}, [http://www.techstreet.com/cgi-bin/detail?product_id=56122 ANSI]
 
|-
 
! [[SNOBOL]]
 
| Text processing
 
|
 
| {{unk}}
 
|-
 
! [[Standard ML]]
 
| Application
 
| [[imperative programming|imperative]], [[Functional programming|functional]], [[generic programming|generic]]
 
| {{Yes}}, SML '97<ref>http://www.smlnj.org/sml97.html</ref>
 
|-
 
! [[Tcl]]
 
| Application, Scripting
 
| [[imperative programming|imperative]], [[Procedural programming|procedural]], [[event-driven programming|event-driven]]
 
| {{no}}
 
|-
 
! [[Visual Basic|Visual&nbsp;Basic]]
 
| Application, Education
 
| [[imperative programming|imperative]], [[Component-oriented programming|component-oriented]], [[event-driven programming|event-driven]]
 
| {{no}}
 
|-
 
! [[Visual Basic .NET|Visual&nbsp;Basic&nbsp;.NET]]
 
| Application, Education
 
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[event-driven programming|event-driven]]
 
| {{no}}
 
|-
 
! [[Visual Prolog]]
 
| Application
 
| [[imperative programming|imperative]], [[declarative programming|declarative]], [[logical programming|logical]], [[object-oriented programming|object-oriented]], [[functional programming|functional]], [[event-driven programming|event-driven]]
 
| {{no}}
 
|-
 
! [[Windows PowerShell]]
 
| Administration
 
| [[imperative programming|imperative]], [[object-oriented programming|object-oriented]], [[functional programming|functional]], [[pipeline programming|pipeline]], [[reflective programming|reflective]]
 
| {{no}}
 
|-
 
! [[XL (programming language)|XL]]
 
|
 
| [[imperative programming|imperative]], [[concept programming]], [[object-oriented programming|object-oriented]]
 
| {{no}}
 
|-class="sortbottom"
 
! Language
 
! Intended use <!--What was this supposed to be used for? Not what is this used for now (that would be hard to verify).-->
 
! [[Programming paradigm|Paradigm]](s)
 
! [[Standardization|Standardized]]?
 
 
|}
 
|}
  

Revision as of 01:38, 3 August 2009

This is a comparison of the major features of the three high-level programming languages offered by Unity: JavaScript, C#, and Boo.

Comparison

The following tables compares technical information, type systems, and failsafes of the Unity programming language. See also the Comparison of Basic Instructions of Programming Languages for more detailed information

Language Intended use [Paradigm](s) [Standardized] Variation?
Boo Application [object-oriented], ? Yes
C# Application [imperative], [object-oriented], [functional], [generic], [reflective] Yes, ECMA, ISO ECMA-334; ISO/IEC 23270:2006
JavaScript Web, client-side [imperative], [object-oriented], [functional], [reflective] No



Programming Index

Personal tools
Namespaces

Variants
Actions
Navigation
Extras
Toolbox