Skip to content

A new year, a new language

ThePragmaticProgrammer (read that book!) gives quite some advice on how to develop one’s knowledge portfolio. One thing I definitely will cling to (and did so for the last couple of years) is:

Learn at least one new [programming] language every year. Different languages solve the same problems in different ways. By learning several different approaches, you can help broaden your thinking and avoid getting stuck in a rut.

Well, the new year already began. Last year I’ve learned C#, the year before I got into Python and JavaScript/PHP the year before that. This year I’ll dig into Lisp.

Heck, why Lisp?

Some features and other rationales that make Lisp very appealling to me are:

  • Lisp was developed in 1958. That’s almost 50 years ago! Making it the second oldes ProgrammingLanguage after Fortran (see this Computer Languages History-graph).
  • It’s not just old, it’s still alive and kickin’:
    • PaulGraham made millions selling ViaWeb to Yahoo in 1996. ViaWeb was a Lisp-application back then.
    • Emacs, the OS and editor was written in Lisp.
    • A much more verbose list of success stories can be found at Bill Clementson’s Blog: Lisp Success Stories.
  • Interesting syntax (remember all those parantheses?). Mind-bending is a good practice.
  • Macros. Which are muuuch more powerful in Lisp than the macros known from other languages like C which actually are just textual substitions. Macros in Lisp allow programming (i.e. changing) the programming language. Very interesting concept.
  • Reading PaulGraham sooner or later one develops the urging desire to learn – at least a bit – Lisp.
  • It was the first environment with DynamicMemoryAllocation, GarbageCollector, DynamicTyping, FirstClassFunctions, LexicalClosures, the If-then-else-construct (remember, 50 years ago!), and IncrementalCompilation. I certainly forgot some… ;-)
  • Quite some great hackers (PaulGraham, GuySteele, PhilipGreenspun) thought about how to improve Lisp. And did so. Remember: 50 years to evolve!
  • It is an interpreted (see REPL) language but can be compiled to efficient machine-code, too.
  • EricRaymond stating:

Lisp is worth learning for the profound enlightenment experience you will have when you finally get it; that experience will make you a better programmer for the rest of your days, even if you never actually use Lisp itself a lot.

So, starting with Lisp I currently read Practical Common Lisp by PeterSeibel. This is the best book I’ve ever read as introduction to a ProgrammingLanguage. At the end of page 36 the beginning Lisp-enthusiast already has crafted some little CD-bookkeeping application. Recommended reading.

Next year I plan to learn some Japanese, though. ;-)

BTW, this entry was posted with my freshly hacked PSPad2Wordpress-plugin, written – alas – in Python.

Verwandte Artikel

{ 1 } Comments

  1. blandi | 2006/2/3 at 08:53 | Permalink

    In my eyes the main danger in programming lisp is the lack of variable typing. If you are not a disciplined programmer you will soon loose the control over your code.. but i have to admit that there are some nice features like lamda-expressions and evaluation of code at runtime … these things are rather complicated to realize in other programming languages!

{ 1 } Trackback

  1. [...] I first have to admit that I have not written a program longer than maybe 500 lines of code in a dynamic language. I am very interested in DynamicLanguages, though and Rainer’s comment on another post made me investigate how to develop large scale applications in DynamicLanguages: In my eyes the main danger in programming lisp is the lack of variable typing. If you are not a disciplined programmer you will soon loose the control over your code. [...]

Post a Comment

Your email is never published nor shared. Required fields are marked *