प्रोग्रामिंग भाषाओं की तुलना
किसी मशीन (प्रायः संगणक) के व्यवहार को नियंत्रित करने के लिये प्रोग्रामिंग भाषाओं का प्रयोग किया जाता है। प्राकृतिक भाषाओं की भांति प्रोग्रामन भाषाओं के भी सिन्टैक्स और सिमैन्टिक्स होते हैं।
इस समय हजारों प्रोग्रामन भाषाएं प्रकाश में हैं। इनमें से कुछ भाषाएँ बहुत लोकप्रिय हैं जिनको बहुत सारे लोक प्रयोग में लाते हैं। दूसरी तरफ यह भी सत्य है कि अनेक प्रोग्रामर दर्जनों भाषाओं में काम करते हैं।
सामान्य तुलना
संपादित करें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 |
बाहरी कड़ियाँ
संपादित करें- 99-bottles-of-beer.net One program in over a thousand variations and multiple languages.
- The Computer Language Benchmarks Game at Alioth
- Language Study — Syntax across languages.
- Programming Language Comparison — A comparison of nine programming languages and related information.
- Computer Language Shootout Scorecard — Comparison of benchmark results for dozens of languages.
- Scriptometer scores — Multiple comparisons of 26 programming languages.
- Are Scripting Languages Any Good? A Validation of Perl, Python, Rexx, and Tcl against C, C++, and Java — PDF — 2003 study
- An empirical comparison of C, C++, Java, Perl, Python, Rexx, and Tcl — PDF — March 2000 refereed journal paper
- An empirical comparison of C, C++, Java, Perl, Python, Rexx, and Tcl for a search/string-processing program — PDF — March 2000 technical report (same author, experiment, and data as above, but has additional analysis and charts)
- ABAP2Java.com Comparision and Translation of ABAP and Java[मृत कड़ियाँ]
- Comparing Web Languages in Theory and Practice — PDF — Research to fulfill Kristofer J. Carlson's master's degree requirements.
- The Encyclopedia of Computer Languages — As of May 2006, the encyclopedia lists 8512 computer languages with 17837 bibliographic records featuring 11064 extracts.
- PLEAC Programming Language Examples Alike Cookbook.
- The hundred-year language by Paul Graham. Keynote from PyCon2003 (about Python): how languages evolve and what increase in CPU speed might bring us.
- TIOBE Programming Community Index The TIOBE Programming Community index gives an indication of the popularity of programming languages.
- OHLOH Language Statistics The programming languages page on Ohloh gives an actively updated indication of the popularity of programming languages in open-source projects.
- History of Programming Language Statements History and Comparing Programming Languages.
- Comparison Cheat Sheet between Languages[मृत कड़ियाँ]
सन्दर्भ
संपादित करें- ↑ ECMA-367; ISO/IEC 25436:2006
- ↑ 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