Minimum number of languages that a developer should master?

A funny moment: recently I heard a senior computer scientist blast Java on very poor performance (server side Java performance is very good - the language has other problems in my opinion) while extolling the virtues of Common Lisp as, if I understood him correctly, the one true 'do everything' language. I enjoy Lisp (I wrote 2 Springer-Verlag Lisp books, many years ago), but it is a marginal language if you count developers, available frameworks, and relatively few large deployed systems (a few notable exceptions to this). Lisp is a language that I can recommend to some people as a second or third language, but I would have a difficult time recommending it as any developer's primary language for writing production code. Lisp is great for research.

In any case, whenever I hear someone blasting Java, I know that they likely don't have real experience developing large scale Java server side applications and don't understand the benefits of the server JVM and a huge collection of good tools and frameworks.

Whenever I hear someone knocking scripting languages like Ruby, Python, or Perl I always think that what a shame it is that they don't save themselves a lot of development time using an agile scripting language - when appropriate.

Then there are times when it is "just right" that development be slow and painful, and C++ is used for runtime speed and memory efficiency :-)

Also if you need a carpenter to do some maintenance on your home: don't hire a carpenter who only uses a saw.


  1. My impression was that the Lisp/Java story went like this:

    1. Project is using Lisp for object database, and Java for a whole lot of stuff. Two sides talk through some XML representation.

    2. Some process takes 24 hours to run.

    3. Someone's knee-jerk reaction: "Lisp is slow! We should take that part out."

    4. Measuring, Lisp took 12 minutes of that time. Off-the-cuff estimate was that even if Java was somehow 5x as slow as Lisp for handling this particular XML parsing, that only means that 1 hour was consumed by talking to Lisp.

    Given all that, I understand why he was being a little snippy about the complaint about Lisp coming from the Java side, for this particular task. Clearly, I can't speak for any of the details first-hand, but it was a good story. =)


Post a Comment

Popular posts from this blog

Ruby Sinatra web apps with background work threads

My Dad's work with Robert Oppenheimer and Edward Teller

Time and Attention Fragmentation in Our Digital Lives