August 2008


Aug 15, 2008: 22. A few thoughts about programming languages


In the previous item of this series - that grows slowly because of my health - I considered the popularity of programming languages with the help of some recent statistical investigations into the subject that seem somewhat serious and informed.

If you check out the funny, interesting and educational site 99 bottles of beer, you will find the programming code for displaying the English song "99 bottles of beer" in over 210 programming languages and dialects thereof.

Since this gives more than 1024 ways of skinning a cat - so to speak: the politically correct may substitute "peeling a cucumber" - this is bound to be educational for those who like that kind of thing.

It also suggests there are over a 1000 programming languages or dialects thereof, but this would be at least a little misleading, as suggested by the statistics I quoted in the previous item of this series:

One summary of the figures I considered is that there are about a 100 such languages at present that are - so to speak - alive and well and that at least 90% of programming is done in one of the 10 following languages, in order of popularity: Java, C, (Visual) Basic, PHP, C++, Python, Perl, C#, Delphi and Javascript - and it is notable that the eleventh in ranking, the fairly recently developed language Ruby, has a popularity ranking of 2.345%.

Another summary, not only of the figures and rankings but also of my own experiences in checking out programming languages and programming environments, is that an important part of the popularity of the most popular languages is due to the qualities of their programming environment (IDEs) and documentation (rather than that the language as such is great).

My final reflections are related to the fact that I am a logical or mathematical type of person (so to speak - let's say: someone who likes these subjects and is experienced in them), who knows that most people are not and who is 58 and has read some of the speculations about open source and the internet, and who has seriously investigated quite a few programming languages and IDEs over the last 20 years, in the end because I care deeply for logic and reasoning.

I have three points.

The first is that every major programming language or dialect thereof tends to be the work of one truly smart and persistent person, who may cooperate with a few others, but who generally did (and does) most of the groundwork himself.

The second is that the internet does allow such individuals to find others who are interested in the subject and who are willing to work on it and/or spend time on it, without getting paid for it - which really is a very great advance in the possibilities for developing a real human civilization, for it means that smart men in a difficult subject can find other smart men from all over the world to develop or seriously investigate clever ideas (that may lead nowhere, but even that is an advance if properly documented).

The point here is especially that this does work (to some extent); that it concerns what is in fact a difficult technical subject and that this does get working by the combination of private individual interests + internet, that enables the individuals to find each other and to share their thoughts and code (rather than watch TV or play games).

The third is that there remains much to be done in developing programming and programming languages and especially in teaching the subject in a sensible way - and that my personal guess is that the best hopes here involve the development of good assembler programming environments (rather than adding cruft or routines on top of a C compiler).

The two ultimate reasons for that are that - in the end - the bits and pieces from which a program is composed are bits and pieces of assembly and that it is quite possible (with some effort) to program in assembly much like this is done in higher level languages, but with much more control and much more understanding of the machine than is possible in higher level languages.

Maarten Maartensz


        home - index - top -