Computer Language Popularity, 1997 to 2006
This page gives a visual report of computer languages's popularity, as indicated by their traffic level in newsgroups. This is not a comprehensive or fair survey, but does give some indications of popularity trends.
Language Class Overview
High Level “Scripting” Languages
From this graph, we can see that Perl rose and fell with the dot com era. Python rose and surpassed Perl about 2002. Ruby is a new kid on the block, and Pretty-Home-Page also has some presence.
Among these languages, Perl is a sys admin staple that started as a unix scripting hack around 1988 and gained a widespread popularity due to the rise of the internet, with CGI and dot com boom (~1995 to 2000). At the time, it was the only practical language for server-side web programing. Also, Perl at the time held another unique position in unix scripting, in that it is more general and flexible than the inconsistent unix tool bags of shell, find, grep, awk.
PHP, or Pretty-Home-Page, started as a CGI script written in Perl. Gradually, it became a language itself, dedicated to server-side programing. It essentially is a outgrowth of a hack in the unix tradition. (For example, c/tcsh, sh/bash, sed/awk/perl) Today, PHP's popularity surpasses that of Perl in the web application industry. PHP as a language is rather dry and business-like. It has a lot online forums but isn't very lively in newsgroups, where chatty college students and language enthus dwell.
Python started in the early 1990s, several years later than Perl, and with much less fanfare. It is fit for the same type of applications Perl is good for. Its popularity rose slowly and stably. The primary, and a very sharp, difference between Perl and Python is that Perl has lax syntax that makes Perl code most unreadable, while Python has a syntax that requires even exact indentations, which makes it very readable.
Ruby is another language in the same class as Perl and Python. It arose as a betterment over Perl's problematic syntactical and semantical inconsistencies. From the design point of view, Ruby is very clean and elegant, but as of today, it is still a toy language with no industrial foothold. Although its popularity is on the rise, but whether it will become widely used is not clear, since there are also old and new languages such as Scheme, Haskell, Perl6 and Python3000 vying for the future.
Lisp, and Industrial Low Level Languages
The languages in this graph are all widely used industrial languages. C and lisp share a commonality in their old age. (LISP ~ 1960 and C ~1970). Lisp is a functional language distinct from the others. C++ is more or less a compatible superset of C. Java is somewhat a betterment over C++. The syntax of C, C++, and Java are basically identical.
We can see that lisp is slowly but steadily on the rise, and the imperative languages rose and fell with the dot com.
Postscript and Colophon
A perl script is used to retrieve the data and parse it into a form readable by Mathematica. The perl script that does this is here:
The data is then feed into Mathematica and plotted there. The Mathematica notebook is here: language_traffic.nb
This report examed all major languages in the “comp.lang.*” hierarchy. Any “comp.lang.*” newsgroup either has a traffic below the “comp.lang.lisp” shown on this page, or is already represented here. For example, there are several perl newsgroups “comp.lang.perl.*”, but “comp.lang.perl.misc” is the most busy by far. Similarly, “comp.lang.lisp.*” and “comp.lang.scheme.*” are represented by just “comp.lang.lisp”. Languages such as Fortran, Pascall, Ada, Modula etc don't have much traffic, nor languages like APL, Prolog, Logo, ML etc. Also note, some language don't have a “comp.lang.*” newsgroup presence, such as Microsoft's C# and F#. And, as noted before, some languages are widely popular but don't have much newsgroup culture, such as PHP and “comp.lang.basic.*”.
If you find a newsgroup that has more traffic than any language here, please let me know.
Google provides search stats for any word. This is another way to glean language trends. Example search:
Some language names, such as Python, Java, lisp, can also mean a lot other things. Pyhon usually means the snake, and also the a comedy show. Java can mean a type of coffee, or the island in Indonesia. And, lisssp is a speech impediment, few knew. Therefore, the google search stat may make spurious impressions.
Now and then i thought about updating the graph on this page, but unfortunately, most of these language groups are now some 90% machine generated spam. See: Death of Newsgroups .