Hitchhiker's Guide to Software Architecture and Everything Else - by Michael Stal

Saturday, June 17, 2006

Lisp again!

I just saw a nice posting on Gernot Starke's blog: http://it-and-more.blogspot.com/2006/05/little-more-on-lisp.html.
There he addresses how developers can learn Lisp. I like this posting because in recent research projects I've made the personal observation that people tend to constantly reinvent the wheel. A good example are developers that grew up with Java or C++ or C#. They are often astonished with new and cool language capabilities such as closures (Ruby), or lambda-expressions (LINQ). Why am I talking about this issue? The good ole languages such as Lisp, Prolog invented several of the features that are so exciting. For example, model-checking in model-baased software development is a good example where Prolog turns out to be a clear winner. And Lisp simply is the singularity where the big bang of dynamic languages originated. Knowing these languages is absolutely valuable. Know the idioms of these languages and you will benefit in your daily developer life. Eric Meijer said recently on a conference: "you should learn a new language each year". That's the right strategy :-)


  • Hi Michael,

    I do not think Lisp is coming back as a new shiny hammer to solve many of the current problems of software engineering. The current popularity of Lisp is based in my opinion of the renaissance of functional programming in general. The many good functional ideas are brought back in the next generation/s of imperative languages which surely will benefit from it. I have made a little attempt to program functional with C# and compare it to F# by myself: http://geekswithblogs.net/akraus1/articles/79880.aspx

    I think you need to distinguish the intended target group of each language. Java, C# is for the ones which do not deal with complex algorithmic problems but have to do an enormous amount of work that is clearly defined and solvable. Lisp, F#, ... on the other hand does target great hackers which try to solve problems in a new way which no language does support with an easy syntax yet. These people get upset when the language syntax/idioms (e.g. OO does not fit very well with algos) do get into their way and have a hard time to circumvent langauage dependant constraints.

    Alois Kraus

    By Anonymous Anonymous, at 10:03 PM  

  • Dear Alois,

    You brought up some important points. My point was not that Lisp is coming back. Rather I meant that ideas from languages like Lisp are returning. If people knew some of the language concepts in those languages it would be really helpful. In a recent workshop it was amazing how fast those concepts are currently integrated into current languages. An example I've mentioned is C# and LINQ. With LINQ functional features get integrated into an OO language as a kind of Integrated DSL to solve a specific problem where OO might not be appropriate. That might be the glimpse of an interesting future development.

    That said, I am convinced that old ideas are not necessarily bad ideas. Thus, it is not surprising at all that the wheel is reinvented all the time. Sometimes, it is good when the wheen is reinvented because it means that a certain concepts has proven to be essential.

    Thanks for your valuable comment

    -- Michael

    By Blogger Michael, at 10:46 PM  

Post a Comment

<< Home