प्रोग्रामिंग भाषाओं की तुलना

किसी मशीन (प्रायः संगणक) के व्यवहार को नियंत्रित करने के लिये प्रोग्रामिंग भाषाओं का प्रयोग किया जाता है। प्राकृतिक भाषाओं की भांति प्रोग्रामन भाषाओं के भी सिन्टैक्स और सिमैन्टिक्स होते हैं।

इस समय हजारों प्रोग्रामन भाषाएं प्रकाश में हैं। इनमें से कुछ भाषाएँ बहुत लोकप्रिय हैं जिनको बहुत सारे लोक प्रयोग में लाते हैं। दूसरी तरफ यह भी सत्य है कि अनेक प्रोग्रामर दर्जनों भाषाओं में काम करते हैं।

सामान्य तुलना

संपादित करें
भाषा प्रोग्रामिंग सम्बन्धी विशेषता मानकीकृत है?
ActionScript 3.0 imperative, object-oriented, event-driven हाँ, ECMA
Ada concurrent, distributed, generic, imperative, object-oriented हाँ, ANSI, ISO
ALGOL 58 imperative नहीं
ALGOL 60 imperative हाँ, ISO
ALGOL 68 concurrent, imperative नहीं
APL array-oriented हाँ, ISO
BASIC procedural हाँ, ANSI
BLISS procedural नहीं
Boo नहीं
सी imperative हाँ, ANSI C89, ISO C90/C99
सी++ imperative, object-oriented, generic हाँ, ISO
C# imperative, object-oriented, generic, reflective हाँ, ECMA, ISO
Chrome imperative, object-oriented, generic नहीं
Clean functional, generic नहीं
COBOL imperative, object-oriented हाँ
ColdFusion procedural, object-oriented नहीं
Common Lisp imperative, functional, object-oriented हाँ
D imperative, object-oriented, generic नहीं
Dylan functional, object-oriented नहीं
Eiffel imperative, object-oriented, generic हाँ, ECMA, ISO[1]
Erlang functional, concurrent, distributed नहीं
F# functional, object-oriented, imperative, generic नहीं
Forth imperative, stack-oriented हाँ, ANSI
Fortran imperative, procedural, object-oriented हाँ
GraphTalk logic-oriented, object-oriented नहीं
Groovy imperative, object-oriented, aspect-oriented नहीं
Haskell functional, generic, lazy evaluation नहीं
Io imperative, object-oriented नहीं
J array-oriented, function-level, tacit नहीं
जावा imperative, object-oriented, generic, reflective नहीं
जावास्क्रिप्ट imperative, object-oriented, functional, reflective हाँ
Joy functional, stack-oriented नहीं
Lisp functional, reflective; others vary by dialect only Common Lisp
Lua procedural, imperative, reflective नहीं
Mathematica functional, procedural नहीं
Modula-2 imperative, generic हाँ, ISO/IEC 10514-1:1996
Modula-3 imperative, object-oriented, generic नहीं
Oberon imperative, object-oriented नहीं
Objective-C imperative, object-oriented, reflective हाँ
Objective Caml object-oriented, functional, imperative, generic नहीं
Object Pascal (Delphi) imperative, object-oriented, generic नहीं
Oz logic, functional, imperative, object-oriented, concurrent - multi paradigm नहीं
Pascal imperative, procedural हाँ
Perl procedural, reflective, functional, object-oriented नहीं
PHP imperative, object-oriented, reflective नहीं
Prolog logic हाँ, ISO
Python imperative, object-oriented, functional, aspect-oriented, reflective नहीं[2]
Ruby imperative, object-oriented, aspect-oriented नहीं
S-Lang imperative, procedural नहीं
Scala object-oriented, functional, generic नहीं
Scheme functional हाँ
Smalltalk object-oriented, concurrent, event-driven, imperative, declarative हाँ, ANSI
Tcl imperative, procedural, event-driven नहीं
Visual Basic component-oriented, event-driven नहीं
Visual Basic .NET object-oriented, event-driven नहीं
Visual Prolog logical, object-oriented, functional, event-driven, imperative, declarative नहीं
Windows PowerShell imperative, object-oriented, functional, pipeline, reflective नहीं
XL concept programming, imperative (by default), object-oriented (multiple models), नहीं
Language Paradigm(s) Standardized?
Language Type strength Type safety Expression of types "Compatibility" Type checking
ActionScript 3.0 strong safe static
Ada strong safe nominative static
ALGOL 58 strong safe static
ALGOL 60 strong safe static
ALGOL 68 strong safe structural static or dynamic (tagged union)
APL strong safe dynamic
BASIC varies by dialect
BLISS none n/a n/a n/a n/a
Boo strong implicit
C weak unsafe explicit static
C++ strong unsafe explicit nominative static
C# strong safe (but unsafe allowed) implicit static
Chrome strong safe (but unsafe allowed) implicit static
Clean strong implicit static
COBOL strong static
ColdFusion weak implicit dynamic
Common Lisp strong safe dynamic
D strong unsafe static
Dylan strong safe dynamic
Eiffel strong safe nominative static
Erlang strong dynamic
F# strong safe implicit nominative static
Forth none n/a n/a n/a n/a
Fortran strong safe nominative static
GraphTalk weak
Groovy strong safe implicit n/a dynamic
Haskell strong implicit static
Io strong dynamic
J strong safe dynamic
Java strong safe explicit nominative static
JavaScript weak dynamic
Joy none n/a n/a n/a n/a
Lisp strong dynamic
Lua strong safe implicit dynamic
Mathematica strong dynamic
Modula-2 strong safe (but unsafe allowed) explicit structural static
Modula-3 strong safe (but unsafe allowed) structural static
Oberon strong safe static
Objective-C strong static
Objective Caml strong safe implicit structural static
Object Pascal (Delphi) strong safe (but unsafe allowed) nominative static
Oz dynamic
Pascal strong safe explicit static
Perl strong implicit dynamic
PHP weak dynamic
Prolog strong dynamic
Python strong safe implicit dynamic
Ruby strong implicit dynamic
S-Lang strong safe dynamic
Scala strong partially implicit static
Scheme strong dynamic (latent)
Smalltalk strong safe implicit dynamic
Tcl dynamic
Visual Basic strong safe nominative static
Visual Basic .NET strong static
Visual Prolog strong safe nominative static
Windows PowerShell strong safe implicit dynamic
XL strong safe nominative static
Language Type strength Type safety Expression of types "Compatibility" Type checking

प्रयोग (usage)

संपादित करें
भाषा लक्ष्यित उपयोग (intended use) डिजाइन उद्देश्य (Design goals)
ActionScript 3.0 Web design
Ada Embedded, Realtime applications Reliability
ALGOL Application Readability, Structure
APL Data processing Terseness, Expressiveness
AutoIt Automation, Scripting Very quick development
BASIC Education Simplicity
BLISS System Type free
Boo Application Python-like syntax, extensibility
C System Low level access, Minimal constraint
C++ Application, System Abstraction, Efficiency, Compatibility
C# Application Rapid application development
Chrome Application Extends Object Pascal to work on .NET
Clean General Correctness, Modularity
COBOL Business and Financial Applications Readability
ColdFusion Web Development Rapid Application Development, Ease of use
Common Lisp General Standardize Lisp
D Application, System Compilability, Correctness, Efficiency
Dylan Application, General Dynamic but well-suited for commercial software
Eiffel Application Correctness, Efficiency, "Design by contract"
Erlang Telecom and distributed applications Fault tolerance, Scalability
F# Application
Forth Application, Embedded systems Compact implementations
Fortran Scientific and numeric applications Runtime efficiency, Simple syntax
GraphTalk
Groovy Application JVM compatibility
Haskell Education Side-effect free
Io Application, Host-driven Scripting
J Data processing Terseness, Expressiveness, Powerful Data Manipulation
Java Application "Write once run anywhere"
JavaScript Client side web scripting
Joy Functional programming research Concatenative
Lisp General Simple notation for Lambda calculus, Homoiconicity
Lua Host-driven Scripting
Mathematica Numeric computation and visualization
Modula-2 Application, systems programming Source modules, Co-routines, Brevity.
Modula-3 OO extension of Modula-2
Oberon Application, Type-safe systems programming Simplicity, safety and efficiency; Simplifed Modula-2
Objective-C Application Smalltalk like, Component based code reuse, C compatibility
Objective Caml Application Efficiency, Robustness, Correctness
Object Pascal (Delphi) Application, System Readability, Rapid application development, Modularity
Oz Education
Pascal Education Readability, Discipline, Modularity
Perl Text processing, Scripting Terseness, Expressiveness
PHP Web Application, CLI Robustness and Simplicity
Prolog Problem solving, Artificial intelligence Declarative programming
Python Application, Education, Scripting Simplicity, Readability, Expressiveness, Modularity
Ruby Application, Scripting Expressiveness, Readability
S-Lang Application, Numerical, Scripting Small footprint, Embedded, Fast Numerics
Scala Education
Scheme General, Education Minimalistic, Lexical Scoping
Smalltalk Application, Education Uniformity, Pure object oriented
SNOBOL Text processing
Tcl Application, Scripting
Visual Basic Application Rapid application development, Simplicity
Visual Basic .NET Application Rapid application development, Simplicity
Windows PowerShell Automation, Scripting Applicability, "One language to program them all"
XL
Language Intended use Design goals

व्यंजनात्मकता (expressiveness)

संपादित करें
C 1 1
C++ 2.5 1
Fortran 2.5 0.8
Java 2.5 1.5
MS Visual Basic 4.5 ?
Perl 6 6
Smalltalk 6 6.25
Python 6 6.5

बाहरी कड़ियाँ

संपादित करें
  1. ECMA-367; ISO/IEC 25436:2006
  2. 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