The Eng Language Index
I’ve been exploring Google Trends for programming languages using the search term “<language> tutorial” (à la PYPL). I gauged level of interest relative to Java and averaged it for each year. I measured 2015 against 2014. I chose the following 28 languages for my “basket” of comparison:
Language Share Share increase over 2014 1. Java 24.019 -0.333
2. Python 11.249 1.233
3. PHP 10.928 -1.001
4. C# 8.925 -0.148
5. C++ 7.598 -0.426
6. C 7.323 -0.201
7. JavaScript 7.136 -0.069
8. Go 2.994 0.076
9. Matlab 2.783 -0.148
10. R 2.777 0.379
11. Swift 2.684 1.188
12. Ruby 2.37 -0.122
13. Visual Basic 1.949 -0.51
14. D 1.516 0.138
15. Perl 1.167 -0.209
16. Objective-C 0.858 -0.111
17. Scala 0.841 0.222
18. Lua 0.487 -0.047
19. Delphi 0.46 -0.085
20. Groovy 0.444 0.037
21. Haskell 0.29 0.012
22. Rust 0.275 0.036
23. Clojure 0.274 0.009
24. Julia 0.261 0.02
25. TypeScript 0.24 0.24
26. Erlang 0.154 -0.037
27. F# 0 0
28. Dart 0 -0.141
(Languages like Elixir, Kotlin, Vala, Nemerle, and Nim just don’t register because their search volumes are too low. Having looked at the raw data for the last 8 languages–Haskell to Dart–I would suggest that they’re mostly statistical noise and therefore their ranking should be taken with a grain of salt.)
As you can see, the top languages that garnered the most searches were Java, Python, PHP, C#, C++, C, and JavaScript. Well behind were the stragglers, such as D, Scala, Haskell, and Rust.
F# was the big surprise — its search volume was too low to register!
Note: Dart fell off the grid in 2015 when its search volume dropped too low.
Language Share Share increase over 2014Python 11.249 1.233
Swift 2.684 1.188
R 2.777 0.379
TypeScript 0.24 0.24
Scala 0.841 0.222
D 1.516 0.138
Go 2.994 0.076
Groovy 0.444 0.037
Rust 0.275 0.036
Julia 0.261 0.02
Haskell 0.29 0.012
Clojure 0.274 0.009
F# 0 0
Erlang 0.154 -0.037
Lua 0.487 -0.047
JavaScript 7.136 -0.069
Delphi 0.46 -0.085
Objective-C 0.858 -0.111
Ruby 2.37 -0.122
Dart 0 -0.141
C# 8.925 -0.148
Matlab 2.783 -0.148
C 7.323 -0.201
Perl 1.167 -0.209
Java 24.019 -0.333
C++ 7.598 -0.426
Visual Basic 1.949 -0.51
PHP 10.928 -1.001
Interestingly, the languages that grew the most in the ranking over 2014 were Python, Swift, R, TypeScript, and Scala. Go grew respectably, at least more so than Rust or Haskell.
The last half dozen shrank significantly and PHP, in particular, fell off a cliff!
Consider this the State of the Union for programming languages over the past two years.
Compared to PYPL (January 2016), my index does quite well. At least, it’s largely consistent…
Languages ELI PYPLJava 24.0 24.4
Python 11.2 11.8
PHP 10.9 10.7
C# 8.9 8.9
C++ 7.6 7.6
C 7.3 7.6
JavaScript 7.1 7.3
Matlab 2.8 2.7
R 2.8 2.9
Swift 2.7 2.9
Ruby 2.4 2.3
Visual Basic 1.9 1.8
Perl 1.2 1.1
Objective-C 0.9 5.1
Scala 0.8 0.9
Lua 0.5 0.5
Objective-C is the odd man out. I don’t know how PYPL arrived at 5.1, but I can tell you I had to use the search term “Objective C tutorial”–without the hyphen–even though the language name is officially hyphenated.
(FYI, I also had to use the search term “tutorial C++”, since “C++ tutorial” thoroughly confused Google Trends, which thought it was “c+tutorial”.)
[UPDATE (1/14/2016): I just learned that PYPL substituted “iOS tutorial” for “Objective-C tutorial”. That’s how they arrived at 5.1. I categorically do not accept this modification of their procedure. There are all kinds of things wrong with this.
To special-case Objective-C invalidates the integrity of their study, which is predicated on the search term “<language> tutorial”. Why should Objective-C be singled out and not other languages such as Dart (there are sewing dart tutorials) or Go (which TIOBE did to disastrous result)? How can we assume that people who search for “iOS tutorial” are especially interested in Objective-C as a language? When I searched for iOS tutorials back in 2011, I sure as hell didn’t give a crap about the programming language used.
Last year, Apple made Swift front and centre for iOS development. If people searched for “iOS tutorial”, were they focused on Objective-C or Swift or neither? Since Swift is presently only for iOS development, why shouldn’t “iOS tutorial” substitute for “Swift tutorial”, as well? And what about OS X development? Objective-C can be, and is, used for writing OS X applications, too. Why not “OS X tutorial” or “OS X programming tutorial”? This is one smelly can of worms!
Did you know that Objective-C is now at #18 on TIOBE, consistent with my index and not PYPL? It’s #20 at IEEE Spectrum. CodeEval ranks Objective-C at #13.]
Where PYPL differs egregiously in “Share increase over 2014” or “Trend” is in these languages: Java, C#, JavaScript, Objective-C, and Swift. The rest of the numbers are roughly consistent. I suspect this is due to the slightly different datasets that PYPL is using.
The value of ELI is to expose and correct a weakness in PYPL. PYPL overlooks several important languages, namely Go, D, and Groovy. It also confirms that a number of “up-and-coming” languages are merely statistical noise and roundly ignored by the IT community at large.