Friday, January 05, 2007

 

Visual Esperanto




Among my recurring New Year's Resolutions is to learn another programming language.  Actually, I consider this much more often than annually; this is not only a recurring resolution, it is a chronic interest.  Like a surfer searching for the
perfect wave.  The problem remains, which one?  The answer probably is "more than one".  If there were a "Visual Esperanto" programming language, it would probably be as popular as Esperanto.

In an article in the American Scientist last summer, The Semicolon Wars by Brian Hayes, the author notes that collectors estimate the number of programming languages between 2,500 and 8,500! Diarmuid Pigott, the curator of the Encyclopedia of Computer Languages (the one with over 8,500), lists his favorites--about 70 of them! Among those I've known (at least a little), Algol 68, APL, and REXX are included; Fortran, BASIC, VBA, php are not, nor are Java, JavaScript, or XSLT.  I suppose he has his reasons.

Of course, I am not choosing a first language; to the ones I mentioned above, I should add SQL, Lotus123 and Lotus Symphony macros, Express and Acumen (mainframe proto-olap languages), CML (a simulation language written by a PhD student), and a matrix generation and report writing language for linear programming.  Of them all, I most enjoyed APL.  Much as "the determined Real Programmer can write Fortran programs in any language"(see link below), I am inspired by the APL-style in whichever language I use.

For perspective, I did some research to see what a couple of sources "recommend" (and why): one celebrity hacker and one recommendation for work-seekers.  I also had another read of some humorous "comparisons", including the classic "Real Programmers Don't Use Pascal" (quoted above), "99 Bottles of Beer: one program in 1046 variations", and "Shooting yourself in the foot in various programming languages."  For good measure, and although it is not language-specific, I re-read "How To Write Unmaintainable Code" and had some (more) very good laughs.

What they recommend:
Overall, they mostly agree. Perl; c; C++, Java/C# (said to be Microsoft's Java for .net); Python.  VB.Net is Microsoft platform specific (as is C#, isn't it? Yet the table on Wikipedia says it it "multi-platform".) so there are some jobs but not open source community interest. I'll drop Ruby and Rails, or save it for next year or the year after, when we can judge whether they have staying power or not. So that slightly shortens my list of candidates, but it is still pretty long, and I think XSLT should be added.

To shorten the list, I now turn to the programming style or paradigm aspect of the languages.  My past favorite is APL, which is a functional language. If I make "functional" a requirement, that eliminates c, C++, Java (and C# and VB, which were already eliminated), plus php (which I do already know and use somewhat anyway).

Lisp (Common Lisp) is tempting because of its long history in artificial intelligence and similar endeavors, but I suspect it would have limited commercial acceptance.  Now the list is: JavaScript (or ECMAScript in its official specification), Python and Perl. Plus XSLT. Perl and Python seem to have similar uses and performances (and they both clearly outperform JavaScript): I'll toss a coin and probably pick Perl, and continue with XSLT and ECMAScript in parallel.


P.S. Personally, I've already "learned" Java several times.  I just don't like to use it; I'll learn it again when I have a use for it, if that ever is the case.

P.P.S. "J", the new improved "APL", looks pretty interesting,too, so I may reconsider, ignoring the above-cited "advice".




powered by performancing firefox, except that it failed to post to blogger due to blogger detecting a < within an href, no cases of which can I find in the html.


Technorati Tags: ,

Comments: Post a Comment

<< Home

This page is powered by Blogger. Isn't yours?