Re: Reddit Guys on the Pros and Cons of Lisp
- From: Pascal Costanza <pc@xxxxxxxxx>
- Date: Wed, 30 Nov 2005 10:43:13 +0100
Pisin Bootvong wrote:
Please don't tell me to choose an implementation based on each project. I never have to do that with Java.
That's incorrect. With Java, you always have considerable periods of time in which you have to worry about the concrete version number of Java. It happened during the transition from 1.0 to 1.1, from 1.2 to 1.3, from 1.3 to 1.4, and now from 1.4 to Java 5. Only the transition from 1.1 to 1.2 was relatively smooth because they didn't add new language features, etc.
Just recently I tried to compile some large Java application that was developed for 1.4 but didn't compile anymore because some of the new keywords in Java 5 were used as variable names. That project is unlikely to be updated by the original developers, so there are definitely similar situations in the Java world like in the Lisp world. The only real difference is that there are lots more Java hackers than Lisp hackers out there which helps in some cases, but not when you are concerned about a niche Java library or Java application.
And I haven't yet talked about the differences between the various micro, standard and enterprise editions with their respective sub- and de-facto standards...
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.
....but doable. Many people do it.
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.
Again incorrect. The problem with those languages is that if they don't have a particular feature, they either announce it to have it in the future which stifles your progress and/or forces you to use ugly workarounds in the meantime, or they don't announce it which definitely forces you to use ugly workarounds. Those languages don't offer enough abstraction facilities to make your workarounds look like first-class citizens of the language, which is an important feature because it makes programming less error-prone. (However, Ruby is probably better in this regard than Java.)
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.
[...]
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.
In theory yes. In reality, there's also a lot of redundancy - many libraries doing almost the same - for those languages.
Pascal
-- My website: http://p-cos.net Closer to MOP & ContextL: http://common-lisp.net/project/closer/ .
- 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: sanity check (coding style)
- Next by Date: Re: I'm working on yet another license
- Previous by thread: Re: Reddit Guys on the Pros and Cons of Lisp
- Next by thread: Re: Reddit Guys on the Pros and Cons of Lisp
- Index(es):
Relevant Pages
|