Pages

Friday, 9 March 2012

Programming languages: usage and popularity

In November 2011, the Reddit r/programming community was asked how they use the top 100 programming languages of the TIOBE Programming Community Index (November 2011). Clojure was also included, so a total 101 programming languages were to be placed into four distinct categories: 
  • used (during last 12 months)
  • plan to start using (during the next 12 months)
  • have used (but do not intend to use in the near future)
  • (have used, but) hate  

The pie chart above illustrate in what category a programming language was most commonly placed. The color coding used is:
  • blue for used
  • red for plan to start using
  • green for have used
  • purple for hate
Some languages are infrequent in all of the four categories. For example, the table below shows that although 90 respondents have used Visual Basic in last 12 months, only 1 has used ABC. Because there are so few responses for ABC, the pie chart (above) for ABC is associated with a lot of uncertainty.

Overall, C was the language most frequently selected for any of the four categories (not shown, but can be found by looking at the "Total" column). Java, C++ and Python followed next. As pointed out by malakon, because the languages were in alphabetic order (and not random order) in the survey, there is some bias present in in favor of more respondents selecting programming languages starting with A. 



Language Used Plan to start using Have used Hate Total
(Visual) Basic  90 1 196 233 520
(Visual) FoxPro 3 1 15 22 41
ABAP  4 3 4 6 17
ABC 1 0 1 1 3
ActionScript  116 13 130 50 309
Ada  14 4 42 6 66
Algol 2 1 12 4 19
Alice  4 1 9 8 22
APL  2 4 11 5 22
Assembly  204 58 315 38 615
Awk  221 19 74 9 323
Bash 704 20 103 24 851
bc 39 1 13 3 56
BETA 0 0 0 0 0
BlitzMax 2 2 7 2 13
Boo 5 3 17 1 26
Bourne shell 163 1 38 7 209
798 88 309 38 1233
C shell  27 2 36 17 82
C#  496 60 233 45 834
C++  650 97 292 123 1162
CFML 12 1 9 11 33
cg 7 3 8 0 18
CL (OS/400) 3 0 0 2 5
Clean 1 1 8 1 11
Clojure 73 109 42 0 224
COBOL  7 2 20 40 69
cT 0 0 0 0 0
25 32 33 2 92
Dart 6 47 2 1 56
Delphi/Object Pascal  22 1 111 17 151
Dylan 1 3 8 1 13
Eiffel 2 0 18 1 21
Erlang  51 83 63 5 202
F#  35 66 36 2 139
Factor 5 14 13 1 33
Forth  3 12 34 4 53
Fortran  17 4 51 21 93
Free Pascal 7 2 25 10 44
Go  45 101 40 7 193
Groovy 46 10 38 11 105
Haskell  201 171 118 13 503
Icon 1 0 4 0 5
IDL 3 3 7 4 17
Io 5 7 18 0 30
J 1 4 8 0 13
Java  736 65 222 191 1214
JavaFX Script 1 4 8 2 15
JavaScript  817 73 80 70 1040
JScript.NET 2 1 10 4 17
Korn shell 9 1 22 5 37
LabVIEW 4 3 12 12 31
Ladder Logic  2 1 0 2 5
Lingo 0 0 4 4 8
Lisp  117 76 122 20 335
Logo  1 1 50 4 56
LPC 0 0 0 0 0
Lua  91 57 62 9 219
MAD 0 0 0 0 0
MATLAB  98 11 104 44 257
ML  18 5 17 2 42
MUMPS 3 0 4 1 8
NATURAL 0 0 0 1 1
NXT-G  0 0 0 1 1
Oberon 2 0 7 1 10
Objective-C  154 98 70 31 353
Occam 0 1 4 1 6
OpenCL 21 36 6 0 63
OpenEdge ABL 1 0 0 0 1
Oz 1 1 3 1 6
Pascal  6 3 143 21 173
Perl  150 24 163 105 442
PHP  378 25 161 169 733
PL/I  0 0 9 5 14
PL/SQL  124 5 39 27 195
PostScript 7 2 23 5 37
PowerShell 54 15 18 7 94
Prolog  22 19 108 28 177
Python  746 135 131 38 1050
2 1 1 0 4
r 2 0 0 0 2
69 52 23 4 148
REXXS 1 1 5 3 10
RPG (OS/400)  4 0 2 3 9
Ruby  246 116 114 22 498
SAS  5 1 7 6 19
Scala 86 113 28 3 230
Scheme  88 57 112 12 269
Scratch  6 0 7 0 13
Smalltalk  12 17 35 3 67
SPSS 1 1 5 0 7
Standard ML 14 6 30 4 54
SuperCollide 2 1 1 0 4
Tcl  16 1 55 23 95
Transact-SQL  119 3 17 3 142
VBScript 22 2 37 67 128
VHDL  15 7 38 12 72
Visual Basic .NET  57 5 77 83 222
X10 0 1 0 1 2
xBase 1 0 4 1 6
Z shell 66 8 7 2 83
Total 8523 2110 4778 1859

The table below is sorted in descending order according to how many times a language had been used the last 12 months. Congratulations, JavaScript!  


Language Used Plan to start using Have used Hate Total
JavaScript  817 73 80 70 1040
798 88 309 38 1233
Python  746 135 131 38 1050
Java  736 65 222 191 1214
Bash 704 20 103 24 851
C++  650 97 292 123 1162
C#  496 60 233 45 834
PHP  378 25 161 169 733
Ruby  246 116 114 22 498
Awk  221 19 74 9 323
Assembly  204 58 315 38 615
Haskell  201 171 118 13 503
Bourne shell 163 1 38 7 209
Objective-C  154 98 70 31 353
Perl  150 24 163 105 442
PL/SQL  124 5 39 27 195
Transact-SQL  119 3 17 3 142
Lisp  117 76 122 20 335
ActionScript  116 13 130 50 309
MATLAB  98 11 104 44 257
Lua  91 57 62 9 219
(Visual) Basic  90 1 196 233 520
Scheme  88 57 112 12 269
Scala 86 113 28 3 230
Clojure 73 109 42 0 224
69 52 23 4 148
Z shell 66 8 7 2 83
Visual Basic .NET  57 5 77 83 222
PowerShell 54 15 18 7 94
Erlang  51 83 63 5 202
Groovy 46 10 38 11 105
Go  45 101 40 7 193
bc 39 1 13 3 56
F#  35 66 36 2 139
C shell  27 2 36 17 82
25 32 33 2 92
Delphi/Object Pascal  22 1 111 17 151
Prolog  22 19 108 28 177
VBScript 22 2 37 67 128
OpenCL 21 36 6 0 63
ML  18 5 17 2 42
Fortran  17 4 51 21 93
Tcl  16 1 55 23 95
VHDL  15 7 38 12 72
Ada  14 4 42 6 66
Standard ML 14 6 30 4 54
CFML 12 1 9 11 33
Smalltalk  12 17 35 3 67
Korn shell 9 1 22 5 37
cg 7 3 8 0 18
COBOL  7 2 20 40 69
Free Pascal 7 2 25 10 44
PostScript 7 2 23 5 37
Dart 6 47 2 1 56
Pascal  6 3 143 21 173
Scratch  6 0 7 0 13
Boo 5 3 17 1 26
Factor 5 14 13 1 33
Io 5 7 18 0 30
SAS  5 1 7 6 19
ABAP  4 3 4 6 17
Alice  4 1 9 8 22
LabVIEW 4 3 12 12 31
RPG (OS/400)  4 0 2 3 9
(Visual) FoxPro 3 1 15 22 41
CL (OS/400) 3 0 0 2 5
Forth  3 12 34 4 53
IDL 3 3 7 4 17
MUMPS 3 0 4 1 8
Algol 2 1 12 4 19
APL  2 4 11 5 22
BlitzMax 2 2 7 2 13
Eiffel 2 0 18 1 21
JScript.NET 2 1 10 4 17
Ladder Logic  2 1 0 2 5
Oberon 2 0 7 1 10
2 1 1 0 4
r 2 0 0 0 2
SuperCollide 2 1 1 0 4
ABC 1 0 1 1 3
Clean 1 1 8 1 11
Dylan 1 3 8 1 13
Icon 1 0 4 0 5
J 1 4 8 0 13
JavaFX Script 1 4 8 2 15
Logo  1 1 50 4 56
OpenEdge ABL 1 0 0 0 1
Oz 1 1 3 1 6
REXXS 1 1 5 3 10
SPSS 1 1 5 0 7
xBase 1 0 4 1 6
BETA 0 0 0 0 0
cT 0 0 0 0 0
Lingo 0 0 4 4 8
LPC 0 0 0 0 0
MAD 0 0 0 0 0
NATURAL 0 0 0 1 1
NXT-G  0 0 0 1 1
Occam 0 1 4 1 6
PL/I  0 0 9 5 14
X10 0 1 0 1 2
Total 8523 2110 4778 1859


In the table below, the programming language that most respondents plan to use in the next 12 months is represented. It seems we were right in including Clojure in the survey. At the same time, a lot of redditors complained that some of their favorite languages where not included. Someone with time to spare and JavaScript skills should make a better implementation of the programming language questionnaire in the future (thanks grayvedigga).


Language Used Plan to start using Have used Hate Total
Haskell  201 171 118 13 503
Python  746 135 131 38 1050
Ruby  246 116 114 22 498
Scala 86 113 28 3 230
Clojure 73 109 42 0 224
Go  45 101 40 7 193
Objective-C  154 98 70 31 353
C++  650 97 292 123 1162
798 88 309 38 1233
Erlang  51 83 63 5 202
Lisp  117 76 122 20 335
JavaScript  817 73 80 70 1040
F#  35 66 36 2 139
Java  736 65 222 191 1214
C#  496 60 233 45 834
Assembly  204 58 315 38 615
Lua  91 57 62 9 219
Scheme  88 57 112 12 269
69 52 23 4 148
Dart 6 47 2 1 56
OpenCL 21 36 6 0 63
25 32 33 2 92
PHP  378 25 161 169 733
Perl  150 24 163 105 442
Bash 704 20 103 24 851
Awk  221 19 74 9 323
Prolog  22 19 108 28 177
Smalltalk  12 17 35 3 67
PowerShell 54 15 18 7 94
Factor 5 14 13 1 33
ActionScript  116 13 130 50 309
Forth  3 12 34 4 53
MATLAB  98 11 104 44 257
Groovy 46 10 38 11 105
Z shell 66 8 7 2 83
VHDL  15 7 38 12 72
Io 5 7 18 0 30
Standard ML 14 6 30 4 54
PL/SQL  124 5 39 27 195
Visual Basic .NET  57 5 77 83 222
ML  18 5 17 2 42
Fortran  17 4 51 21 93
Ada  14 4 42 6 66
APL  2 4 11 5 22
J 1 4 8 0 13
JavaFX Script 1 4 8 2 15
Transact-SQL  119 3 17 3 142
cg 7 3 8 0 18
Pascal  6 3 143 21 173
Boo 5 3 17 1 26
ABAP  4 3 4 6 17
LabVIEW 4 3 12 12 31
IDL 3 3 7 4 17
Dylan 1 3 8 1 13
C shell  27 2 36 17 82
VBScript 22 2 37 67 128
COBOL  7 2 20 40 69
Free Pascal 7 2 25 10 44
PostScript 7 2 23 5 37
BlitzMax 2 2 7 2 13
Bourne shell 163 1 38 7 209
(Visual) Basic  90 1 196 233 520
bc 39 1 13 3 56
Delphi/Object Pascal  22 1 111 17 151
Tcl  16 1 55 23 95
CFML 12 1 9 11 33
Korn shell 9 1 22 5 37
SAS  5 1 7 6 19
Alice  4 1 9 8 22
(Visual) FoxPro 3 1 15 22 41
Algol 2 1 12 4 19
JScript.NET 2 1 10 4 17
Ladder Logic  2 1 0 2 5
2 1 1 0 4
SuperCollide 2 1 1 0 4
Clean 1 1 8 1 11
Logo  1 1 50 4 56
Oz 1 1 3 1 6
REXXS 1 1 5 3 10
SPSS 1 1 5 0 7
Occam 0 1 4 1 6
X10 0 1 0 1 2
Scratch  6 0 7 0 13
RPG (OS/400)  4 0 2 3 9
CL (OS/400) 3 0 0 2 5
MUMPS 3 0 4 1 8
Eiffel 2 0 18 1 21
Oberon 2 0 7 1 10
r 2 0 0 0 2
ABC 1 0 1 1 3
Icon 1 0 4 0 5
OpenEdge ABL 1 0 0 0 1
xBase 1 0 4 1 6
BETA 0 0 0 0 0
cT 0 0 0 0 0
Lingo 0 0 4 4 8
LPC 0 0 0 0 0
MAD 0 0 0 0 0
NATURAL 0 0 0 1 1
NXT-G  0 0 0 1 1
PL/I  0 0 9 5 14
Total 8523 2110 4778 1859

The table below shows languages that have been used, but are not planned to be used by respondents in the near future.

 
Language Used Plan to start using Have used Hate Total
Assembly  204 58 315 38 615
798 88 309 38 1233
C++  650 97 292 123 1162
C#  496 60 233 45 834
Java  736 65 222 191 1214
(Visual) Basic  90 1 196 233 520
Perl  150 24 163 105 442
PHP  378 25 161 169 733
Pascal  6 3 143 21 173
Python  746 135 131 38 1050
ActionScript  116 13 130 50 309
Lisp  117 76 122 20 335
Haskell  201 171 118 13 503
Ruby  246 116 114 22 498
Scheme  88 57 112 12 269
Delphi/Object Pascal  22 1 111 17 151
Prolog  22 19 108 28 177
MATLAB  98 11 104 44 257
Bash 704 20 103 24 851
JavaScript  817 73 80 70 1040
Visual Basic .NET  57 5 77 83 222
Awk  221 19 74 9 323
Objective-C  154 98 70 31 353
Erlang  51 83 63 5 202
Lua  91 57 62 9 219
Tcl  16 1 55 23 95
Fortran  17 4 51 21 93
Logo  1 1 50 4 56
Clojure 73 109 42 0 224
Ada  14 4 42 6 66
Go  45 101 40 7 193
PL/SQL  124 5 39 27 195
Groovy 46 10 38 11 105
VHDL  15 7 38 12 72
Bourne shell 163 1 38 7 209
VBScript 22 2 37 67 128
F#  35 66 36 2 139
C shell  27 2 36 17 82
Smalltalk  12 17 35 3 67
Forth  3 12 34 4 53
25 32 33 2 92
Standard ML 14 6 30 4 54
Scala 86 113 28 3 230
Free Pascal 7 2 25 10 44
69 52 23 4 148
PostScript 7 2 23 5 37
Korn shell 9 1 22 5 37
COBOL  7 2 20 40 69
PowerShell 54 15 18 7 94
Io 5 7 18 0 30
Eiffel 2 0 18 1 21
ML  18 5 17 2 42
Transact-SQL  119 3 17 3 142
Boo 5 3 17 1 26
(Visual) FoxPro 3 1 15 22 41
Factor 5 14 13 1 33
bc 39 1 13 3 56
LabVIEW 4 3 12 12 31
Algol 2 1 12 4 19
APL  2 4 11 5 22
JScript.NET 2 1 10 4 17
CFML 12 1 9 11 33
Alice  4 1 9 8 22
PL/I  0 0 9 5 14
J 1 4 8 0 13
JavaFX Script 1 4 8 2 15
cg 7 3 8 0 18
Dylan 1 3 8 1 13
Clean 1 1 8 1 11
Z shell 66 8 7 2 83
IDL 3 3 7 4 17
BlitzMax 2 2 7 2 13
SAS  5 1 7 6 19
Scratch  6 0 7 0 13
Oberon 2 0 7 1 10
OpenCL 21 36 6 0 63
REXXS 1 1 5 3 10
SPSS 1 1 5 0 7
ABAP  4 3 4 6 17
Occam 0 1 4 1 6
MUMPS 3 0 4 1 8
Icon 1 0 4 0 5
xBase 1 0 4 1 6
Lingo 0 0 4 4 8
Oz 1 1 3 1 6
Dart 6 47 2 1 56
RPG (OS/400)  4 0 2 3 9
2 1 1 0 4
SuperCollide 2 1 1 0 4
ABC 1 0 1 1 3
Ladder Logic  2 1 0 2 5
X10 0 1 0 1 2
CL (OS/400) 3 0 0 2 5
r 2 0 0 0 2
OpenEdge ABL 1 0 0 0 1
BETA 0 0 0 0 0
cT 0 0 0 0 0
LPC 0 0 0 0 0
MAD 0 0 0 0 0
NATURAL 0 0 0 1 1
NXT-G  0 0 0 1 1
Total 8523 2110 4778 1859

Finally, the "hate list" of programming languages. The technical solution for the programming language categories in the survey did not allow a programming language to be placed in two (or more) categories at the same time. Nevertheless, many languages still found their way into the "container of hate" (thanks pilf for suggesting that we split the "have used" into two).


Language Used Plan to start using Have used Hate Total
(Visual) Basic  90 1 196 233 520
Java  736 65 222 191 1214
PHP  378 25 161 169 733
C++  650 97 292 123 1162
Perl  150 24 163 105 442
Visual Basic .NET  57 5 77 83 222
JavaScript  817 73 80 70 1040
VBScript 22 2 37 67 128
ActionScript  116 13 130 50 309
C#  496 60 233 45 834
MATLAB  98 11 104 44 257
COBOL  7 2 20 40 69
Assembly  204 58 315 38 615
798 88 309 38 1233
Python  746 135 131 38 1050
Objective-C  154 98 70 31 353
Prolog  22 19 108 28 177
PL/SQL  124 5 39 27 195
Bash 704 20 103 24 851
Tcl  16 1 55 23 95
Ruby  246 116 114 22 498
(Visual) FoxPro 3 1 15 22 41
Pascal  6 3 143 21 173
Fortran  17 4 51 21 93
Lisp  117 76 122 20 335
Delphi/Object Pascal  22 1 111 17 151
C shell  27 2 36 17 82
Haskell  201 171 118 13 503
Scheme  88 57 112 12 269
VHDL  15 7 38 12 72
LabVIEW 4 3 12 12 31
Groovy 46 10 38 11 105
CFML 12 1 9 11 33
Free Pascal 7 2 25 10 44
Awk  221 19 74 9 323
Lua  91 57 62 9 219
Alice  4 1 9 8 22
Go  45 101 40 7 193
Bourne shell 163 1 38 7 209
PowerShell 54 15 18 7 94
Ada  14 4 42 6 66
SAS  5 1 7 6 19
ABAP  4 3 4 6 17
Erlang  51 83 63 5 202
PostScript 7 2 23 5 37
Korn shell 9 1 22 5 37
APL  2 4 11 5 22
PL/I  0 0 9 5 14
Logo  1 1 50 4 56
Forth  3 12 34 4 53
Standard ML 14 6 30 4 54
69 52 23 4 148
Algol 2 1 12 4 19
JScript.NET 2 1 10 4 17
IDL 3 3 7 4 17
Lingo 0 0 4 4 8
Smalltalk  12 17 35 3 67
Scala 86 113 28 3 230
Transact-SQL  119 3 17 3 142
bc 39 1 13 3 56
REXXS 1 1 5 3 10
RPG (OS/400)  4 0 2 3 9
F#  35 66 36 2 139
25 32 33 2 92
ML  18 5 17 2 42
JavaFX Script 1 4 8 2 15
Z shell 66 8 7 2 83
BlitzMax 2 2 7 2 13
Ladder Logic  2 1 0 2 5
CL (OS/400) 3 0 0 2 5
Eiffel 2 0 18 1 21
Boo 5 3 17 1 26
Factor 5 14 13 1 33
Dylan 1 3 8 1 13
Clean 1 1 8 1 11
Oberon 2 0 7 1 10
Occam 0 1 4 1 6
MUMPS 3 0 4 1 8
xBase 1 0 4 1 6
Oz 1 1 3 1 6
Dart 6 47 2 1 56
ABC 1 0 1 1 3
X10 0 1 0 1 2
NATURAL 0 0 0 1 1
NXT-G  0 0 0 1 1
Clojure 73 109 42 0 224
Io 5 7 18 0 30
J 1 4 8 0 13
cg 7 3 8 0 18
Scratch  6 0 7 0 13
OpenCL 21 36 6 0 63
SPSS 1 1 5 0 7
Icon 1 0 4 0 5
2 1 1 0 4
SuperCollide 2 1 1 0 4
r 2 0 0 0 2
OpenEdge ABL 1 0 0 0 1
BETA 0 0 0 0 0
cT 0 0 0 0 0
LPC 0 0 0 0 0
MAD 0 0 0 0 0
Total 8523 2110 4778 1859

7 comments:

  1. The color coding used in the chart does not correspond with that described in the post (but it does with that at the top of the chart)

    ReplyDelete
  2. Hi, Great.. Tutorial is just awesome..It is really helpful for a newbie like me.. I am a regular follower of your blog. Really very informative post you shared here. Kindly keep blogging. If anyone wants to become a Java developer learn from Java Training in Chennai. or learn thru Java Online Training in India . Nowadays Java has tons of job opportunities on various vertical industry.


    or Javascript Training in Chennai. Nowadays JavaScript has tons of job opportunities on various vertical industry.

    ReplyDelete
  3. great information.
    thank you for posting.
    keep sharing.

    ReplyDelete
  4. This is an awesome post.Really very informative and creative contents. These concept is a good way to enhance the knowledge.I like it and help me to development very well.Thank you for this brief explanation and very nice information.Well, got a good knowledge.
    java training in Bangalore

    ReplyDelete
  5. Some us know all relating to the compelling medium you present powerful steps on this blog and therefore strongly encourage contribution from other ones on this subject while our own child is truly discovering a great deal. Have fun with the remaining portion of the year.
    hadoop admin ceritification training

    ReplyDelete