Re: Reddit Guys on the Pros and Cons of Lisp
- From: Peter Herth <p.herth@xxxxxxxxxxx>
- Date: Wed, 30 Nov 2005 11:14:20 +0100
Pisin Bootvong wrote:
Regarding availability of implementations, the problem is not that there are few implementation. But that there are few free implementations that always works. (I think most people are not going to pay for ACL or LispWorks while they can download Ruby, Python or Java for free and can also use it for commercial)
Choices are: CLISP, CMUCL and SBCL.
If I need to work on Windows then I have to choose CLISP. If I need to use multithread then I need to use SBCL, and only work on x86 Linux. If I need to use FFI-Callback, I need to sue CMUCL or CLISP, SBCL callback only work on x86 Linux. If I need to use Unicode then I have to choose SBCL or CLISP.
Can you tell me what should I choose if I need multithread Lisp on Windows?
You can always name a feature set that is not provided by any implementation - for Lisp as easy as for Java or Python. The only difference is, that individual Lisp implementations *may* have that featureset, even if it isn't standard.
Please don't tell me to choose an implementation based on each project. I never have to do that with Java. The benefit of never need to change the lisp implementation is that I can be proficient in it. No implementation is going to be perfect. So instead of learning to work around only one implementation's bug, with multiple implementation I have to be aware of that implementation's different behavior and workaround. That's not nice.
Most of the time, nobody has such problem when they are working with Ruby or Java. They either have the feature or they don't. And if they don't, the chances are that a feature added by 3 people working on one implementation will be more robust/well-designed/well-maintained than a feature added by 3 people, each works on separate lisp implementation.
What you underestimate is, that there is a very explicit and well documentated Ansi Common Lisp standard. So this lays a clear set of features which is highly portable across the different Lisp implementations. If you look at the Ltk source, there are about 20 lines of code which go beyond Ansi Common Lisp so it is currently running on every Common Lisp I know of. But changing the Lisp implementation dependant on the project is also a non-issue in my experience. It is even so much a non-issue that depending on the phase of the project I tend to use different Lisps. So for example for development I use the Lisp that has the faster compiler, but deploy on another Lisp without any problems.
-----
Regarding the availability of libraries, most open-source library comes from the need of the original author to solve their problem at hands.
If I were the author of some good library, how much effort am I going to spend to make sure that my libraries works on CLISP or CMUCL when my environment was Lispworks with Multithread and Unicode support? Someone might like my library and helping porting parts to CMUCL, another guy to CLISP. But isn't that waste of effort? If they don't have to do that, they can put effort on adding features to the library instead.
My experience with Ltk was, that I added support for 3 Lisp implementations I had available - that was no big effort as due to the standardisation of Common Lisp only a few lines had to be changed. Soon after I published Ltk I got mails with patches to enable Ltk on other Lisps. And after about 2 months all known Lisps were fully supported.
And often, the effort is even more wasted. Some people saw a library that do what they like but not on the supported implementation. But the library may be to hard to port, too much must be done to make it work on their platform. So instead of porting, they decide to write a new library, only little variant from the original library, only with less feature, rarely maintained, but it works for their cases. Just take a look at http://www.cliki.net/database. Many of them works only on a specific implementation. And to port them all to CFFI would require lots of effort. If only lisp define standard FFI interface, all of those library would be automatically ported.
Well if a library contains lots of useful stuff, it gets ported. If the porting is too much work, the library may not have been that useful in the first place. There is ofcourse one notable exception, that are libraries which depend heavily on the FFI. But in the last months a lot of progress was made towards a portable FFI so I expect that problem to be reduced much in the future.
Again, typically there is no more such thing as "three different" libraries in the Lisp world than with other languages. Even with single-implementation languages, there are different aproaches to solving a problem creating several libraries which try to solve the same thing - and you have to pick from them.If someone writes a library that works on Java or Ruby, it works for others that download them, that's because they all are on the same implementation. At most, they will be dealing with OS-dependent work-around. But those are still less of the issue than both implementation dependent and OS dependent issue.
From what I observes, library that are not much diversed are librarieswhich only do calculation. CL-PPCRE, ITERATE, etc. are portable and cool. It draws lots of user.
But very small amount of user goes for something that is specific to SBCL, CMUCL, etc. For example, Araneida/UCW doesn't even have Unicode and File upload support. How long has Python came out? Lisp is way older but yet we don't even have an application server as good as Zope yet? Please tell me why.
No software in the world is bug-free, even those made in Lisp. So for anyone wanting to get their work done, picking the library that has more user base is often safe bet. Having three different library only do job of dividing user base.
Peter
-- Ltk, the easy lisp gui http://www.peter-herth.de/ltk/ .
- References:
- Reddit Guys on the Pros and Cons of Lisp
- From: Adam Connor
- Re: Reddit Guys on the Pros and Cons of Lisp
- From: Bill Atkins
- Re: Reddit Guys on the Pros and Cons of Lisp
- From: Pisin Bootvong
- Reddit Guys on the Pros and Cons of Lisp
- Prev by Date: Re: I'm working on yet another license
- Next by Date: Re: Hints on recursion
- Previous by thread: Re: Reddit Guys on the Pros and Cons of Lisp
- Next by thread: Another conversion to C or Java...
- Index(es):
Relevant Pages
|