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

मुक्त ज्ञानकोश विकिपीडिया से
नेविगेशन पर जाएँ खोज पर जाएँ

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

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

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

भाषा प्रोग्रामिंग सम्बन्धी विशेषता मानकीकृत है?
ActionScript 3.0 imperative, object-oriented, event-driven Yes, ECMA
Ada concurrent, distributed, generic, imperative, object-oriented साँचा:yes, ANSI, ISO
ALGOL 58 imperative साँचा:no
ALGOL 60 imperative साँचा:yes, ISO
ALGOL 68 concurrent, imperative साँचा:no
APL array-oriented साँचा:yes, ISO
BASIC procedural साँचा:yes, ANSI
BLISS procedural साँचा:no
Boo साँचा:no
सी imperative साँचा:yes, ANSI C89, ISO C90/C99
सी++ imperative, object-oriented, generic साँचा:yes, ISO
C# imperative, object-oriented, generic, reflective साँचा:yes, ECMA, ISO
Chrome imperative, object-oriented, generic साँचा:no
Clean functional, generic साँचा:no
COBOL imperative, object-oriented साँचा:yes
ColdFusion procedural, object-oriented साँचा:no
Common Lisp imperative, functional, object-oriented साँचा:yes
D imperative, object-oriented, generic साँचा:no
Dylan functional, object-oriented साँचा:no
Eiffel imperative, object-oriented, generic साँचा:yes, ECMA, ISO[१]
Erlang functional, concurrent, distributed साँचा:no
F# functional, object-oriented, imperative, generic साँचा:no
Forth imperative, stack-oriented साँचा:yes, ANSI
Fortran imperative, procedural, object-oriented साँचा:yes
GraphTalk logic-oriented, object-oriented साँचा:no
Groovy imperative, object-oriented, aspect-oriented साँचा:no
Haskell functional, generic, lazy evaluation साँचा:no
Io imperative, object-oriented साँचा:no
J array-oriented, function-level, tacit साँचा:no
जावा imperative, object-oriented, generic, reflective साँचा:no
जावास्क्रिप्ट imperative, object-oriented, functional, reflective साँचा:yes
Joy functional, stack-oriented साँचा:no
Lisp functional, reflective; others vary by dialect साँचा:no
Lua procedural, imperative, reflective साँचा:no
Mathematica functional, procedural साँचा:no
Modula-2 imperative, generic Yes, ISO/IEC 10514-1:1996
Modula-3 imperative, object-oriented, generic साँचा:no
Oberon imperative, object-oriented साँचा:no
Objective-C imperative, object-oriented, reflective साँचा:yes
Objective Caml object-oriented, functional, imperative, generic साँचा:no
Object Pascal (Delphi) imperative, object-oriented, generic साँचा:no
Oz logic, functional, imperative, object-oriented, concurrent - multi paradigm साँचा:no
Pascal imperative, procedural साँचा:yes
Perl procedural, reflective, functional, object-oriented साँचा:no
PHP imperative, object-oriented, reflective साँचा:no
Prolog logic Yes, ISO
Python imperative, object-oriented, functional, aspect-oriented, reflective साँचा:no[२]
Ruby imperative, object-oriented, aspect-oriented साँचा:no
S-Lang imperative, procedural साँचा:no
Scala object-oriented, functional, generic साँचा:no
Scheme functional साँचा:yes
Smalltalk object-oriented, concurrent, event-driven, imperative, declarative Yes, ANSI
Tcl imperative, procedural, event-driven साँचा:no
Visual Basic component-oriented, event-driven साँचा:no
Visual Basic .NET object-oriented, event-driven साँचा:no
Visual Prolog logical, object-oriented, functional, event-driven, imperative, declarative साँचा:no
Windows PowerShell imperative, object-oriented, functional, pipeline, reflective साँचा:no
XL concept programming, imperative (by default), object-oriented (multiple models), साँचा:no
Language Paradigm(s) Standardized?

Type systems

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