Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris

Re: New Year's Resolution: learn another language

by gamache (Friar)
on Jan 07, 2008 at 15:14 UTC ( [id://660846] : note . print w/replies, xml ) Need Help??

in reply to New Year's Resolution: learn another language

Learning Lisp will teach you how to use modern dynamic languages (Perl, Python, JavaScript, Ruby etc.) in much more powerful ways. The two general-purpose Lisps people use today are Scheme and Common Lisp. Scheme is a spectacularly small language, easy to learn and extend. Common Lisp is a monstrosity, similar to how a car might look if executives from General Motors, Ford, Toyota, Peugeot, Yugo and Land Rover designed it together over the course of a decade. For a learning language, Scheme has the edge over CL. In any case, Lisp will stretch your head further than perhaps any other single computer language.

Learning C will teach you how computers work, how awesome dynamic languages are, and why Lisp compilers are usually written in Lisp. C is the best assembly language ever. It's a total pain in the ass for anything sizable, but once you grok C, you have a good sense about where every bit and byte is going in all languages. C++ adds some higher-level features to C, but still requires a lot of hand-holding to get from point A to point B. If you're not planning to use either language extensively and just want to see where it takes you, I'd recommend C. The language features in C++ which are absent from C (object orientation, template programming, generic functions, overloading, etc) are learned more easily from a language with more forgiving syntax.

Lisp and C have both aged very well, respectively 50 and 35 years old. I'd say there's more to learn at these opposite ends of the spectrum than in between, if you're a code tourist. Most people who write actual software for actual purposes aim for a language somewhere in the middle.

  • Comment on Re: New Year's Resolution: learn another language