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.