3 ms·
As I understand it, the main way LISP gives you a quantitative productivity gain (evident from LOC or bytes or tokens) over other high level langauges is that i
by dsrguru 15y ago
As I understand it, the main way LISP gives you a quantitative productivity gain (evident from LOC or bytes or tokens) over other high level langauges is that it lets you use syntactic abstraction (macros) to create highly expressive DSLs that you use to write the main part of your application (e.g. Viaweb or ITA). Otherwise, it might be fun to use, but it's probably going to be less expressive than the likes of Ruby/Python/Scala, and maybe even than Java, as seen by the benchmarks you provide. Nevertheless, people who know CLOS and MOP well often claim that well-written LISP libraries are more easily and concisely extensible than those of any other language. I don't have enough experience to know if this is true. Even if it is, something in me says that the time it takes to write those libraries probably more than makes up for the time saved by using CLOS and MOP unless you have a very large team, but again I don't have enough experience to know what I'm talking about here.
The other main advantage of LISP is that it facilitates what Paul Graham calls "exploratory programming." Since most projects have unforeseen requirements or future feature requests, the fact that the LISP development cycle is more dynamic than that of any other language (I assume no one disputes this, but I could be wrong) allows you to write code (and test and debug it ridiculously quickly) that will be ultimately useful even before you know exactly where your program is going. This mentality is basically the polar opposite of Haskell, but both philosophies seem to work pretty well. :)