Saturday, January 5, 2008

Polyglot

pol·y·glot (pŏl'ē-glŏt')
adj. Speaking, writing, written in, or composed of several languages.

n.
1. A person having a speaking, reading, or writing knowledge of several languages.
2. A book, especially a Bible, containing several versions of the same text in different languages.
3. A mixture or confusion of languages.


[French polyglotte, from Greek poluglōttos : polu-, poly- + glōtta, tongue, language.]


Stevey, in a long but well-put rant on code bloat, exposes an issue which I have been wrestling for the past several months:

But you should take anything a "Java programmer" tells you with a hefty grain of salt, because an "X programmer", for any value of X, is a weak player. You have to cross-train to be a decent athlete these days. Programmers need to be fluent in multiple languages with fundamentally different "character" before they can make truly informed design decisions.

Recently I've been finding that Java is an especially bad value for X. If you absolutely must hire an X programmer, make sure it's Y.


This is absolutely true. I must admit that my résumé and work history really only show my roots in Java. But being an autodidact and wannabe polyglot, I can definitely see that I need to be cross-training. To that end, I am presently pursuing knowledge in the following languages:

  • Ruby: I have written a very small web service in Ruby and Ruby on Rails in my "day job". Rails is OK, if your requirements fit the "sweet spot" that Ruby On Rails proclaims to hit, but Lord help you if you need stuff, like, say, composite keys.
  • Python: Before Ruby, I stumbled across Python. Kevin, if you're out there reading this, thanks for a) telling me about Guido van Rossum and b) introducing me to Cygwin ("it makes Windows useful")
  • Common Lisp: from my short experiences with mathematics, I have learned to appreciate elegance, and Lisp is nothing if not elegant. David, if you're out there reading this, I apologize for not recognizing the truth in your words and conviction any earlier. But I still have not gotten the hang of Emacs yet...

No comments: