Computer Language Popularity, 1997 to 2006

By Xah Lee. Date:

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

computer language popularity chart
A graph showing the newsgroup traffic for comp.lang.lisp, comp.lang.c, comp.lang.perl.misc, comp.lang.javascript.

The figure above gives a general overview of high level languages such as lisp, medium level languages such as perl and JavaScript, and low level languages such as c.

High Level “Scripting” Languages

computer language popularity chart
A graph showing newsgroup traffic of representative high-level languages that are so-called scripting languages. The newsgroups plotted are: comp.lang.perl.misc, comp.lang.javascript, comp.lang.python, comp.lang.ruby, comp.lang.php.

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.

JavaScript is invented by Netscape during the same time Perl became widely popular. JavaScript holds the unique position where it is the only industrial language for client-side web scripting (mostly dealing with HTML in web browsers), and is still so today and not likely to change in the near future.

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

computer language popularity chart
A graph showing the newsgroup traffic for comp.lang.lisp, comp.lang.c, comp.lang.c++, comp.lang.java.programmer.

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.

C++ is a result of OOP fad in its infancy, and is functionally a OOP graft over C. Java is invented by Sun Microsystems during the dot com era, with huge investment towards marketing, to the point that even non-programers have read about it in common newspapers, with the air of some technological revolution. (the naming of JavaScript by Netscape, is a intentional ride on Sun Microsystem's Java marketing propaganda. JavaScript the language has no relations, affinity, or similarity to Java the language.) From the graph we can see, that Java's popularity went over C++ but fell slightly below C++ after the dot com bubble burst.

Postscript and Colophon

The data source is google's newsgroup archive. For example, «http://groups.google.com/group/comp.lang.javascript/about»

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:

# perl
use Data::Dumper;

=pod

this script gets newsgroups posting data, example:
 http://groups.google.com/group/comp.lang.javascript/about
then parse the numbers in it into a format readible by Mathematica.

To use this script, change the $gp below, and run it like “perl parse_data.pl”.
The output is stdout.

this script requires the unix tool “curl”.

  Xah
  xah@xahlee.org
∑ http://xahlee.org/
  2006-09

=cut

$gp = 'comp.lang.c';
$gp = 'alt.usage.english';
$gp = q(misc.writing);
$gp = q(rec.arts.poems);
$gp = q(rec.juggling);

qx{curl --silent --output about.html --user-agent "Mozilla/4.0" http://groups.google.com/group/$gp/about};

open (FF, "<about.html");
my @aa =();
@aa = <FF>;
chomp @aa;

for $li (@aa) {
  if ( $li =~ m#/group/$gp/browse_frm/month/(\d{4})-(\d{2})">(\d+)# ) {
    push @bb, qq({$1, $2, $3});
  }
}

$out = join( ",", @bb);
# print Dumper(\@bb);

print $gp . '={' . $out . '}';

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:

Google trends search: https://trends.google.com/trends/?q=php,javascript,perl&ctab=0&geo=all&date=all

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 .