Friday, January 05, 2007
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.
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:
- Eric S. Raymond, in "How To Become A Hacker"
It's best, actually, to learn all five of Python, C/C++, Java, Perl, and LISP. Besides being the most important hacking languages, they represent very different approaches to programming, and each will educate you in valuable ways.
- Deborah Rothberg, "10 Programming Languages You Should Learn Right Now", in eWEEK:
By picking the brains of Web developers and IT recruiters, eWEEK selected 10 programming languages that are a bonus for developers to add to their resumes. Even better, they're great jumping-off points, with loads of job opportunities for younger recruits. PHP ... C# ...
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).
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: New Years Resolutions, programming languages