Cooking with Lisp

Another blog about Lisp, the world's greatest programming language.

Wednesday, June 16, 2004

Joel on Software Thinks the Major Advantage of Lisp is Garbage Collection (??!?)

Via James Robertson, Joel thinks that the primary advantage of Lisp is its garbage collection:
The real significant productivity advance we've had in programming has been from languages which manage memory for you automatically. It can be with reference counting or garbage collection; it can be Java, Lisp, Visual Basic (even 1.0), Smalltalk, or any of a number of scripting languages.
Incredibly, there's more:
Whenever you hear someone bragging about how productive their language is, they're probably getting most of that productivity from the automated memory management, even if they misattribute it.
Wow! I haven't been in the mainstream developer community since, well, never, so I've always just kind of put up with the fact that I'm different; I don't understand them, they don't understand me, but, wow!, the chasm just seems to be getting wider and deeper.


At 4:56 PM, Anonymous Anonymous said...

I think he's right, really. If you compare any garbage-collected language to any non-garbage-collected language, it's immediately clear that any other difference is overwhelmed. Java is more like Lisp than it is like C++, in a very significant way.

Now, once you're comparing garbage-collected languages to each other, then other factors can come into play...

Mike Kozlowski

At 5:26 PM, Blogger Glenn Ehrlich said...

I'm not so sure that I agree that GC is the biggest win. Personally, I think that s-expressions, code==data, first class functions, lexical closures and ANSI Common Lisp standard are bigger wins for me. If I had the above in a Lisp-like language without GC, it would still be a useful language for me, however, I wouldn't find the inverse (a GC language, but without my laundry list above) as useful.

For practical comparison, compare Common Lisp to Perl, Python, Ruby, and of the functional languages (Haskell, ML, OCaml, etc). They all have GC, but fare pretty poorly on the list of features I list above. (Note that's a pretty broad brush I'm using -- higher order functions can often be used instead of syntactic extension, for example. I don't want to leave the impression that any of the FP languages aren't doing any heavy lifting. If Lisp wasn't around, but there were still the FPs, I'd be using one of them). I'm just trying to make the point that I find the other features more powerful than GC. However, we're very fortunate that we have them all in CL!

At 6:10 PM, Blogger Myron Wu said...

His previous comments on lisp were worse, I think.... I don't know why he bothered commenting on something he clearly didn't understand all that well. The closest reason I can find is some kind of inferiority complex that arises out of using VB or an over-inflated ego.

At 6:17 PM, Anonymous Anonymous said...

For practical comparison, compare Common Lisp to Perl, Python, Ruby, and of the functional languages (Haskell, ML, OCaml, etc).I am. The productivity leap going from C++ to Perl was enormous; going from Perl to Lisp isn't nearly as compelling for me so far.

At 11:01 PM, Blogger Glenn Ehrlich said...

Myron -

I can't read Joel's mind, so I don't know what his experiences with Lisp were, or why he has the opinions on them that he does. When I've heard similar comments from others and have been able to query the source of their opinions, its either been a poor experience seeing Lisp in some sort of Principles of Programming Languages or similar survey class or they had to do programming in Scheme and never fully grokked it (or it was presented clumsily (for examples of this, just read the reviews of SICP on Amazon)). I don't think Joel's an idiot, he's clearly pretty successful, having his own company and all. That's more than I've ever done. So kudos to Joel on that. I just don't think he's ever given Lisp a fair shake, even though he claims to know it. His other comments about Lisp in his forumn lead me to think his only experience with Lisp is in basic list processing and recursive programming; certainly the roots of Lisp, but no one seriously programs like that except students forced to in some Scheme classes.

Nice site, btw. Like the (identity 'myron) bit, too.

Anonymous -

Perl is certainly very, very powerful in its niche. I've written some pretty amazing programs in Perl, too. But it lacks the kind of powerful macro capability that Lisp has. A lot of it can be faked with Perl, since it has some of the same kind of powerful features that Lisp has, but none of them are as fluid or as well integrated into the language itself as they are in Lisp. For a specific example, the object-oriented facillities in Perl are very clumsy compared to CLOS, even when using something like Class::MethodMaker or similar.

Every language has a brick wall that hurts pretty bad when you run into it. My experience is that the wall in Common Lisp is much further away than any other language.

At 9:59 AM, Blogger Myron Wu said...

Thanks. :)

You're probably right. It just gets a little frustrating to see someone talk as though they're closing the door to a language, Lisp or not Lisp.... Not that everyone should drop everything and learn ten languages, but at least it helps to keep an open mind. He has a lot of readers too, after all.

At 10:03 PM, Anonymous Anonymous said...

So I think I'm going to agree with Anonymous, I think that the biggest single productivity gain you get with lisp is garbage collection.

I'll agree lisp has a huge number of productivity gains that other languages simply lack, but I think the largest gain is garbage collection. Macros, CLOS, any number of wonderful things push that brick wall further and further away, but GC was the biggest single push.

On a perhaps equally important note, it is probably the easiest (or at least most obvious) of the gains to replicate when you create a new language, which is why after all these years, lisp is still so far ahead of the field.

Nathan McFarland

At 2:08 PM, Blogger Myron Wu said...

This comment has been removed by a blog administrator.

At 2:10 PM, Blogger Myron Wu said...

I've been thinking about it a little more, and maybe GC is a bigger deal than I thought. It's just easy to take it for granted because it's so integral to a language like Lisp. Without it, even minor features like closures would be difficult to do.

At the same time, Joel's phrasing still leaves something to be desired because it implies that for all the innovations of each language like Smalltalk, Lisp and Java, the only major thing they managed to achieve was GC. Thinking this way, it would be possible to bring the productivity of say, C, to the level of Smalltalk just by the addition of GC.

Another minor point is that he refers to garbage collection and reference counting as achieving the same level of productivity. In reality, they don't, since reference counting usually requires at least a minor amount of bookkeeping for dealing with circular references or delayed memory freeing as with the autorelease pool in Cocoa/Objective-C.

On a more general note, languages just shouldn't be compared feature-by-feature. It's the unique combination of features present in each language and how they work together that makes languages what they are. Singling out GC or any other feature for comparison is really just missing the forest for the trees.

At 11:41 AM, Anonymous Anonymous said...

I like Joel on Software. I am a regular poster. But, I don't think he is really looking at the geek technical side as much. He is about users. The core application is written ASP. I don't think he is getting into s-expressions and other such things.

At 6:23 AM, Blogger abigail said...

Your blog is great! It's hard to find blogs with good content and people talking about Bookkeeping these days! I have a secret Bookkeeping Exposed if you want to come check it out

At 8:24 PM, Blogger blaze said...

I really enjoyed you convection cooking oven website. I also have a site about convection cooking oven Please take a look. I hope you will find it interesting

At 3:11 PM, Blogger Paul said...

I like your blog. I hope you take a second to check out my niche marketing site, niche marketing It's pretty cool.

At 1:50 AM, Anonymous Anonymous said...

Hello, I see a great blog here! I'm going to bookmark you!

I have a movie script write site/blog. It pretty much covers movie script writerelated stuff.

Come and check it out if you get time :-)

At 9:55 PM, Anonymous Anonymous said...

This easy to use software will automatically monitor all your websites notifying you immediately of any problems.faster download softwarefaster download software

At 2:28 PM, Blogger Goodman441 said...

I would like to say this is a great blog about real estate software. I think alot of you might be interested in my site too. Click the Link below to visit my site.
Click Here


At 1:33 AM, Blogger Editor said...

hey great blog, you're interested in cooking tip right? I have the best website about cooking tip

At 7:32 PM, Anonymous Anonymous said...

Check out Internet Marketing Christmas, this special ends on 12/21/2005

At 2:03 PM, Blogger Stan said...

The software industry is one of the world's fastest growing industries
with a net worth of hundreds of billions of dollars.

A lot of people have already made their personal fortunes from this
rapidly growing industry.

All this means that it's now the perfect time for you to start your
own software business.

You've just discovered the secret source for a complete range of
ready-made software tools, all of which can be private labeled with
your own details and then sold to generate a lucrative income.

Best Of Success
Stan Morse

At 1:03 PM, Anonymous Anonymous said...

voip phoneThis must have taken you ages to set up, keep up the great workf. If you are looking for info on voip phone then you may think about this site.

At 3:30 AM, Anonymous Anonymous said...

Great web service you have mr moderator, I will definitely be back some day. I have a website that might be of interest to you but i not sure. It has products at wholesale prices, great place to hang out.

Playing online variants ? Receive free. You ill be happy. starting profits without any deposit or purchase need !


Post a Comment

<< Home