X
Business

Time to learn LISP

Peter Coffee has an interesting article about "exotic" programming languages (and techniques) that are being used in mainstream applications.  Peter mentions LISP, Prolog, genetic programming, and neural nets as examples.
Written by Phil Windley, Contributor

Peter Coffee has an interesting article about "exotic" programming languages (and techniques) that are being used in mainstream applications.  Peter mentions LISP, Prolog, genetic programming, and neural nets as examples.  I've done my share of programming in a dialect of LISP called Scheme and think there are compelling reasons for increased adoption of these languages and techniques in Web-facing applications. 

One of the biggest complaints against these "exotic" languages and techniques was performance.  But, as Peter mentions, the tools, and particularly the libraries, are getting much better.  As people have moved more and more to interpreted languages like Perl, Python, Ruby, and even Java (with it's VM), the performance hurdle has been crossed.  For many applications, programmers are more interested in useful tools than in squeezing out  the last ounce of performance.

Unfamiliarity is always a problem, but again, languages like Perl, Ruby and Python are exposing programmers to concepts and techniques that more mainstream languages like Java or C# hide.  Closures, unnamed procedures, continuations, and so on are some that spring to mind.  People have always complained about the syntax (or lack thereof) in LISP, but XML's strange syntax proves that you can get over even that hurdle.

Lately, I've been noticing people in areas outside machine learning pick up neural nets to solve problems in their specific domain.  There are some interesting user interface problems, for example, that are amenable to machine learning.  Often, if you've got a way to collect "learning data" from users, you can configure software as if by magic, just from watching user actions. 

To be sure, LISP and other "exotic" techniques, aren't going to replace Java or ASP.NET anytime soon as the dominant development methodology, but that's hardly the point.  As Paul Graham has rightly pointed out: popularity isn't the same as greatness.   

Editorial standards