Monday, March 14, 2011

LISP love

... or why Porsche Spider is cool

Few days ago I posted some unpleasant truths about LISP. Today is the day to straighten some things up: I love LISP. I won't use it for producing code, but still admire it, and think that it was a very good investment to learn a little of it.

Why you should learn LISP

  • It will make you better programmer to an extend you'd never think it was possible. If you only know one or two programming languages, you'll feel like a hacker.
  • Your code will become clearer and much shorter
  • You will swear when you encounter lack of that cool LISP feature in your production language. If your language lacks map, reduce or filter - you either implement it or change language to one that does have them (like ruby or python). This or that - you'll be better off to know what is possible.
  • If you use javascript, you will understand, that this underestimated language has nothing to be ashamed of, compared to Java. Quite contrary: java is primitive, feature-less, bloated, slow and ugly compared to javascript. You will learn, understand and love important javascript features like function as primary object, objects {created: 'like this'} and closures.
  • You will deeply understand recursion and actually start using it in your code. This means using trees as data structured and S-lists (lists that have both normal objects and nested lists of objects as members). If you take time to check out TCO (tail call optimization), you might however never again program your math algos in anything but LISP.
  • You will become more productive and efficient in all languages you use.

That's right, it pays to learn LISP (think Clojure).

Then why you ranted at lisp?

Because LISP is like a 1956 Porsche 550 Spider [movie1, movie2, history]. It's a miracle of racing car engineering, has great sound and stunning look. But by today's standard it's slow.

It might be bad taste to compare it to racing cars of today but... well.. it's slow.

  • It's classy.
  • James Dean owned it.
  • Racing it would make you better driver you imagine possible. It would make you a mechanic to own it.
  • It's slow by todays' standards. Spending 50x less money on a car would buy you ridiculously faster track car, easier to drive and more reliable.
  • And the worst: It's very hard to drive that little devil. You need talent to be fast with it.

Nothing will ever compare to the Spider. Nothing. But you wouldn't use it to race today.

It's even cheaper to use a purpose-build crouch rocket like Python or Ruby ;)