Six years ago, in The Art of Unix Programming, I observed some interesting trends in the deployment of programming languages. One Christer NyfÃ¤lt mailed me this morning reporting that he had followed up by collecting the analogous statistics from SourceForge for present time. Here’s what he said (lightly copy-edited as his English is a bit shaky):
I took data from Freshmeat, but its interface has changed recently, so I had to search for how many projects were tagged with the name of each language. My data is from 2009-05-27, a little over six years since you wrote that chapter.
C: from 4845 to 8944, 184%
C++: from 2098 to 4824, 230%
Emacs Lisp: from 31 to 60, 194%
These are the language you claimed have reached stability, so let’s call a doubling of projects a stable growth rate.
Perl: from 2508 to 3730, 149%
Here we see the noted stagnation of Perl, only 50% growth instead of doubling expected.
Tcl: from 328 to 480, 146%
Same situation as Perl. Also, Ruby has reached similar numbers (469) as Tcl.
Python: from 948 to 3161, 333%
A tripling. We can start to expect Python to pass Perl in a couple of years.
Java: from 1900 to 5316, 280%
Also a big growth, and it has passed both C++ and Perl in numbers.
Shell: from 487 to 1064, 218%
Normal growth here.
So, the losers are Perl and Tcl, and the winners are Java and Python. Two losers that you predicted, one winner that you predicted, and one winner that’s probably due to policy changes by Sun.
I’m interested in your take on this subject. A blog entry from you on it would be interesting. Are there any other trends caused by new languages? Anything surprising? Would Tcl still be listed as a major language in second edition? Will Perl survive in the long run?
Your wish is my command, Christer, especially when you’re making me look prescient. Not that it took a lot of clue to foresee these trends; I’d been watching since ’97 and there was a lot of momentum on them. In answer to your questions…
1. Ruby is probably the biggest disruptor since 2003. For a while there I thought it might do to Python what Python did to Perl, but it didn’t sustain its initial growth surge and seems to be having trouble getting design wins nowadays outside a small community of very hard-core supporters. I’m not knocking the language, mind you – it has some attractive features – but it looks like Ruby is turning out not to be quite enough stronger than Python to take share away from it.
2. Tcl looks to me like it’s on life-support at this point, with the twin iron lungs being Expect and Tkinter. I bet if you dug deep you’d find that’s what most of the new “Tcl” projects are actually using it for.
3. Yeah, Perl will survive – because there’s huge dark masses of legacy out there that we’ll be dealing with for decades. Perl has become the COBOL of web design.