Hacker News new | past | comments | ask | show | jobs | submit login

That makes lisp a popular IDEA but it completely ignores the GP's point of economics of a language. Specifically with a dozen implementations each you end up with a bunch of libraries that are subtly (some times not so) incompatible with other implementations so while the community as a whole might be large you don't get the advantages in terms of available code that the size should bring.

At least that was my experience with Scheme, I don't know (but suspect from all the whinging) about the CL side of it.

Which is one of the big advantages of Clojure of course, it comes with a lot of batteries.




Common Lisp defines a mildly large language with a standard of 1000+ pages.

Implementations use both non-portable and portable libraries. There are also several libraries that span several implementations.

Also the implementations serve different purposes and may use widely different implementation strategies - so not all libraries might apply to a certain implementation.

The choice is there for a reason. Some libraries might start on some implementation. If it is good, then it will likely be ported (if necessary) to other implementations.


I would highly recommend the book "The Paradox of Choice".

Here's something I wrote about the concept a while back:

http://journal.dedasys.com/2006/02/18/maximizers-satisficers...

As Steve's article suggests, I don't think lots of more or less equal implementations is that great in the long term. IMO, having one main one and some experiments floating around works better.


Why do you want to take away my ability to choose a suitable implementation?

I let you have your freedom to choose a scripting language.

Lisp is a family of different languages and implementations. Like 'scripting languages': python, rebol, ruby, javascript, vbscript, ... - similar problem there: why not have one main language? why these all these scripting languages which share almost NO code?

In Common Lisp I have a core language and can share lots of code between different implementations. ECL compiles to C and byte code and can be embedded. SBCL uses an optimizing compiler to machine code. CLISP uses a byte code engine written in C. ABCL is compiles to the JVM. LispWorks and Allegro CL define very large languages with lots of bells and whistles. Each of these implementations have been developed for different usages scenarios. CLISP is fine for scripting, LispWorks is better for the development of portable applications with a GUI.

There are Common Lisp implementations that are more popular than others. For free implementations SBCL is the most popular. But there is competition. CCL is also very good. Some implementations are less popular, but they survive because they use different implementation technologies. The commercial implementations like Allegro CL and LispWorks are also widely used, and provide features that the other implementations don't provide or don't provide as complete. LispWorks for example has a cross platform GUI toolkit that is used to implement its cross platform development environment. One can develop sophisticated GUI applications that can be compiled for Windows, Unix, Linux, FreeBSD and Mac OS X without changes.

Dan Weinreb gives an overview: http://common-lisp.net/~dlw/LispSurvey.html .

Ruby for example does not give me these choices. The main implementation is widely used, but lacks much of what the advanced Lisp implementations offer - which enables me to write a different class of applications in Lisp.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: