The following table compares general and technical information for popular programming languages. See the individual products' articles for further information.
Language
|
General model of execution
|
Influences
|
Principal paradigm
|
Typing discipline
|
Introduced
|
Web populartity[1]
|
Popularity change (1 yr)[2]
|
Ada
|
Compilation
|
Algol, Pascal, C++ (Ada 95), Smalltalk (Ada 95)
|
multi-paradigm: concurrent, distributed, generic-programming, imperative, object-oriented
|
static, strong, safe, nominative
|
1983
|
18
|
0
|
C
|
Compilation
|
Algol, B
|
imperative, flow-driven
|
static, weak
|
1973
|
2
|
-1
|
C++
|
Compilation
|
C, Simula, Algol 68
|
multi-paradigm: imperative, object-oriented, generic
|
static, weak
|
1980
|
3
|
+1
|
C#
|
Compilation
|
Java, C++
|
object-oriented
|
dynamic, strong, both safe and unsafe, nominative
|
2000
|
7
|
0
|
COBOL
|
Compilation
|
?
|
?
|
?
|
1959
|
15
|
-1
|
ColdFusion
|
Compilation
|
?
|
?
|
?
|
1995
|
16
|
+9
|
Common Lisp
|
Compilation
|
Lisp, Smalltalk
|
multi-paradigm: functional, object-oriented
|
dynamic
|
1984
|
14
|
+1
|
D
|
Compilation
|
C++
|
multi-paradigm: imperative, object-oriented, generic
|
?
|
2000
|
19
|
+8
|
Delphi
|
Compilation
|
Pascal, Object Pascal
|
multi-paradigm: imperative, object-oriented
|
static, strong
|
1995
|
10
|
-1
|
Java
|
Interpretation/JIT compilation/Dynamic compilation
|
C++, Objective-C
|
object-oriented
|
static, strong
|
1996
|
1
|
+1
|
JavaScript
|
Interpretation
|
C, LiveScript
|
multi-paradigm: imperative, object-oriented, functional
|
dynamic
|
1995
|
9
|
+2
|
Mathematica
|
Interpretation
|
Lisp
|
Multiple paradigms
|
dynamic, strong
|
1986
|
>50
|
?
|
Objective-C
|
Compilation/JIT compilation
|
C, Smalltalk
|
object-oriented
|
dynamic, strong
|
1986
|
49
|
?
|
Perl
|
Interpretation
|
C, shell, awk, sed, Lisp
|
multi-paradigm: imperative, object-oriented
|
dynamic
|
1987
|
6
|
-3
|
PHP
|
Interpretation
|
Perl, C
|
multi-paradigm: imperative, object-oriented
|
dynamic, strong
|
1995
|
4
|
+1
|
Python
|
Interpretation
|
ABC, Perl
|
multi-paradigm: imperative, object-oriented, functional
|
dynamic (duck), strong
|
1991
|
8
|
0
|
Ruby
|
Interpretation
|
Smalltalk, Perl
|
multi-paradigm: imperative, object-oriented, functional, concurrent
|
dynamic (duck), strong
|
1995
|
20
|
+10
|
Scheme
|
Interpretation
|
Lisp, Algol 60
|
functional
|
dynamic
|
1975
|
14
|
+1
|
Smalltalk
|
JIT compilation
|
Sketchpad, Simula
|
object-oriented
|
dynamic
|
1971
|
35
|
?
|
Visual Basic
|
Compilation
|
QuickBASIC
|
event-driven
|
static, strong
|
1991
|
5
|
+1
|
Visual Basic .NET
|
JIT compilation
|
Visual Basic
|
object-oriented, event-driven
|
static, strong
|
2001
|
17
|
+11
|
- ^ From the first column of the May, 2006 TIOBE Programming Community Index. Languages are ranked sequentially from most to fewest search engine results using the method described on TIOBE's Definition page:
- The ratings are calculated by counting hits of the most popular search engines. The search query that is used is
- +"<language> programming" -tv -channel
- The search query is executed for the regular Google, MSN, and Yahoo! web search and the Google newsgroups for the last 12 months. The web site Alexa.com has been used to determine the most popular search engines. The word "tv" and "channel" have been filtered out here to avoid any interference with TV programs. Otherwise languages such as ABC and Scheme would have been highly overrated.
- By applying the search engine query as defined above, a lot of hit counts are collected. Let's define "hits(PL#i,SE)" as the number of hits of programming language PL at position i of the TPC index for search engine SE. The counted hits are normalized for each search engine for the first 50 languages. More formally, the rating for PL#i becomes
- ((hits(PL#i,SE1)/hits(PL#1) + ... + hits(PL#50)) + ... + (hits(PL#i,SEn)/hits(PL#1) + ... + hits(PL#50)))/n
In determining web popularity of a language, the language may include or exclude certain dialects or other languages. See what's included or excluded in the Exceptions and inclusions chart below.
- ^ From the Delta in Position column of the May, 2006 TIOBE Programming Community Index. This number indicates the language's change in web popularity (see above footnote) over the last year. In determining the popularity change for a language, the language may include or exclude certain dialects or other languages. See what's included or excluded in the Exceptions and inclusions chart below.
Exceptions and inclusions
Exceptions and inclusions used in determining popularity and usage trend
Language
|
Exceptions/Inclusions
|
Awk
|
Included: awk, gawk, mawk, nawk
|
C#
|
Included: C#, C-Sharp, C Sharp
|
ColdFusion
|
Included: ColdFusion, Cold Fusion, CFMX, CFML
|
D
|
Exception: "3-D Programming"
|
Delphi/Kylix
|
Included: Delphi, Kylix
|
IDL
|
Exception: "corba"
|
Lisp/Scheme
|
Included: Lisp, Scheme
|
Python
|
Included: Python, Jython, IronPython (Jan Persson)
|
T-SQL
|
Included: T-SQL, Transact-SQL
|
Tcl/Tk
|
Included: Tcl/Tk, Tcl, Tk
|
VB.NET
|
Included: VB.NET, Visual Basic.NET, Visual Basic .NET, Visual Basic 2005, VB 2005
|
Visual FoxPro
|
Included: FoxPro, Fox Pro, VFP
|