A better response: stop linking to John Cook. Every John Cook blog entry I have ever read turns out, upon inspection, to be an almost-content free restatement of an accepted consensus -- motherhood statements at best. Whereas Jeff Atwood at least gives credit to the books he reads and summarises, Cook merely regurgitates unsourced factoids and leavens with a few unimpressive anecdotes.
And yet, I never cease to be amazed at how many people need to be reminded of many of these accepted truisms.
Response to John Cook's "Myth of the Lisp Genius"
31–40 of 47 posts
Re: Response to John Cook's "Myth of the Lisp Genius"
#32Earlier quoted context omitted.
Lisp has this convenient nature that it is better than every language, yet under its own weight it has nothing to show for it. Maybe I can start a similar myth with Logo. It requires no proof. Simply one or two anecdotes, great hubris, and the ability to say with a straight face that the reason why everyone who uses it isn't productive is because we're geniuses. Anyone else in?
> yet under its own weight it has nothing to show for it. That's factually incorrect. There's plenty to show for it, you just have to scale to the size of humanity's computing concerns from four or five decades ago. Moreover, in no field of creative human endeavor have popularity and worthiness been correlated. You think all those billboard top 10 acts came from Juliard? Is this a troll?
It's not. Although I'll be the first to admit that it comes off as trollish. It's just I see these pronouncements about a language, which frankly, I don't think can be backed up. I like Lisp as a language. I really do. But to me that's not sufficient to annoint it a super language.
The evidence of its superiority is lacking. The one thing that languages generate is work product, programs/libraries/etc...
In contrast, look at something like VB. An oft-scorned language, but a language that you can walk into any Fortune 500 company and can probably find 10M LOC across the enterprise used for business critical purposes. And further, the interesting thing about VB is that you probably couldn't have replaced the language with any other language and had the same productivity.
Now of course this last assertion is hard to prove. But at least we have existence. At least we can say, "if there was a better solution than VB, no one used it". And it was rediscovered by every enterprise in the world.
Again, I'm not saying Lisp is a bad language. But to the best of my ability it seems to be about on par with other modern languages (and that in itself might be compliment enough for some, given its vintage). I see a couple of truly noteworthy Lisp projects, a lot of middling ones, and that's it. About what I'd expect for a language with a user base of its size.
Over the past 40 years there hasn't been any mind-blowing Lisp projects. And there's nothing wrong with that, I wouldn't necessarily expect it, except that its supposed to be a super language. Not only a super language, but a language practiced by the brightest amongst us. And by accounts of some evangelists, a toolchain that is magnitudes better than that available for other languages.
Yet as a result I typically get 3 projects noted to me when we talk about notable Lisp projects. Emacs, ViaWeb, and ITA. Three great projects. But if someone said that they were written in C and not Lisp, everyone would believe it. And when people go back and talk about important/influential software in history, Emacs is likely the only one to be mentioned. And of course there's been tons of other very important SW that has been written in languages other than Lisp, from Tex, to Mosaic, to Lotus 123, to gcc, to iOS, to Google, and so on.
The worse is better, Lisp super-loner, rationalization seems like a pity party. And what makes it sad is that it's simply not necessary. There's no shame in liking a language for characteristics you find appealing. But don't try to sell it as some super language. Because when you do people will say that the proof of the pudding is in the tasting. And the tasting are the programs. If you want to show that Lisp can do what others only dream of, show us the programs that make us drop our jaws. Show us the programs that make us rush to relearn Common Lisp. RoR didn't catch on because it had a sexy name. It caught on because the pudding was pretty tasty -- although a bit cloying for my taste.
Moreover, in no field of creative human endeavor have popularity and worthiness been correlated. You think all those billboard top 10 acts came from Juliard?
Are you arguing that for music that college serves little purpose? That we're entering some type of music education bubble. :-)
Re: Response to John Cook's "Myth of the Lisp Genius"
#33It's worth noting that he says (in the other article he links to): "In fact, in a number of cases I saw people whip things up in Perl in a couple of hours that would have taken me days or weeks to do in Lisp.". So therefore Perl > Lisp > everything? (I'm kidding for the humour impaired) What he gained from using Lisp was not worrying about memory management, and built-in data structures that made life easy. These day…
My guess is that you didn't seriously learn functional programming in any language. It is not just about memory management and data structures. It is about functions as first class objects, no side effects, lazy evaluation, closure, monads. The fact that you can basically write a compiler in an hour as a first year student (that was exercise 3 in my course). I'm not a programmer, I'm a DBA. The code I write is mostly…
I learned FP using Haskell, which is a pure functional language.
But I still stand by what I said. I code faster in Perl than I do in Haskell due to the availability of libraries. The "pure FP" features may make some things theoretically cleaner, but they don't honestly make things that much easier. Having access to FP features (map, grep, reduce, closures in particular) is significant, but access to built in data structures (hashes in particular) make life so much easier than C or C++ or Java.
Re: Response to John Cook's "Myth of the Lisp Genius"
#34I started seriously focusing on learning Lisp perhaps a year ago. My exposure to Perl had brought me to the point where I understood the idea of functions as first class in their own right. Lisp rolled forward my mind into new places of understanding how to program. It was like having lights flicked on all over the place. I've been able to conceptualize post-Lisp in ways I did not before. Perhaps Haskell would have d…
SML, OCaml, and/or Haskell will show you a new way of looking at types (and secondarily, expose you to unification on a level that is a little deeper than destructuring-bind). If your background is in perl and then some Lisp experimentation, I recommend checking these others out in order to fill in this other nice piece in the equation. Finally, once you have convinced yourself that type systems are the hotness, it will be good to expose yourself to Erlang, specifically with regard to error handling and the role of supervisors for process restarts.
Re: Response to John Cook's "Myth of the Lisp Genius"
#35Earlier quoted context omitted.
My guess is that you didn't seriously learn functional programming in any language. It is not just about memory management and data structures. It is about functions as first class objects, no side effects, lazy evaluation, closure, monads. The fact that you can basically write a compiler in an hour as a first year student (that was exercise 3 in my course). I'm not a programmer, I'm a DBA. The code I write is mostly…
That would be a bad guess. For a start, Lisp is not a functional language. It just has some functional features. It has side effects. I learned FP using Haskell, which is a pure functional language. But I still stand by what I said. I code faster in Perl than I do in Haskell due to the availability of libraries. The "pure FP" features may make some things theoretically cleaner, but they don't honestly make things tha…
Re: Response to John Cook's "Myth of the Lisp Genius"
#36Earlier quoted context omitted.
Have you ever found it difficult to understand someone else's lisp project, because they have customized the language so much? (or vice versa, has a fellow lisper found your code hard to understand) I wonder if the flexibility and power of lisp might work against co-operation in this way too. I've witnessed confusion caused by operator-overloading in C++ (I heard that that's common); lisp is more customizable.
> Have you ever found it difficult to understand someone else's lisp project, because they have customized the language so much? Yes. But that is not a problem unique to Lisp. It's possible to write unreadable code in any language. And in general Lisp's introspection capabilities and macroexpand make it easier to reverse-engineer things that in other languages.
Have you found that hard to understand, when it was heavily customized? I agree that tracing through complex code is taxing in any language; and it probably becomes much more important what concepts the author has chosen (and things like coupling/cohesion), than the language.
i.e. That the problem wasn't that the code was badly written, but it was because they had "customized the language so much". Extensive customization i how you're supposed to use lisp; it's an important source of its power. (The C++ example I mentioned was well-written.)
I can imagine it going either way (e.g. that lisp's customizations often aid clarity, by reducing code size); so I'm interested to hear someone's experience of how it actually goes in practice.
Re: Response to John Cook's "Myth of the Lisp Genius"
#37Earlier quoted context omitted.
That would be a bad guess. For a start, Lisp is not a functional language. It just has some functional features. It has side effects. I learned FP using Haskell, which is a pure functional language. But I still stand by what I said. I code faster in Perl than I do in Haskell due to the availability of libraries. The "pure FP" features may make some things theoretically cleaner, but they don't honestly make things tha…
I'm sure baudehlo knows, but some other readers may not: map, grep, and closures are all native in Perl 5, and reduce is easily available. (All are native in Perl 6.)
Re: Response to John Cook's "Myth of the Lisp Genius"
#38Earlier quoted context omitted.
> yet under its own weight it has nothing to show for it. That's factually incorrect. There's plenty to show for it, you just have to scale to the size of humanity's computing concerns from four or five decades ago. Moreover, in no field of creative human endeavor have popularity and worthiness been correlated. You think all those billboard top 10 acts came from Juliard? Is this a troll?
Is this a troll? It's not. Although I'll be the first to admit that it comes off as trollish. It's just I see these pronouncements about a language, which frankly, I don't think can be backed up. I like Lisp as a language. I really do. But to me that's not sufficient to annoint it a super language. The evidence of its superiority is lacking. The one thing that languages generate is work product, programs/libraries/et…
The post we are commenting on was by a person who was not making a claim, but relaying an experience. I will paraphrase three arguments: the parent post blog link was saying "look, I'm not an amazing programmer, but in my experience, armed with Common Lisp, I can approximate what I see ur-programmers do with other languages at Google." He in turn was replying to a person saying "I don't think Lisp makes you more productive." The "Lisp is not really a super language, it has nothing to show for itself, and I could make similar claims about logo." thing got interjected by you, I think.
"Moreover, in no field of creative human endeavor have popularity and worthiness been correlated. You think all those billboard top 10 acts came from Juliard?"
"Are you arguing that for music that college serves little purpose? That we're entering some type of music education bubble. :-)"
No, I think that's what you're arguing. I'm saying Lisp is worthy, and should not be judged by its popularity, because the worthiness is what reallly matters. You're arguing it has "nothing to show for itself". I'm sure with a Sun Java marketing budget and the right people we could make Lisp as popular as we wanted. We could have whitepapers and case studies to "show" as much as you like. I'm only concerned with popularity when people dismiss my arguments about worthiness the minute they assess the popularity. I have the same problem when I try to tell them about Sun Ra or the Residents.
So all that being said, to address your actual point (however disjoint from the OP it might be), nobody's claiming it's a "super language", just often better for the people who commit to using it despite it's unpopularity. I can back up my claims of betterness with arguments about worthiness, but not about popularity, but then I don't think the later kind of argument matters in the first place.
Re: Response to John Cook's "Myth of the Lisp Genius"
#39I like and agree with the article, but: an attempt was made to port part of that code (the planner) from Lisp to C++. After a year that effort had to be abandoned because the planner team just couldn't make it work. I'm sure they'd struggle just as much if the planner was written in assembly, and not because assembly is a far more elegant language...
Re: Response to John Cook's "Myth of the Lisp Genius"
#40Earlier quoted context omitted.
Is this a troll? It's not. Although I'll be the first to admit that it comes off as trollish. It's just I see these pronouncements about a language, which frankly, I don't think can be backed up. I like Lisp as a language. I really do. But to me that's not sufficient to annoint it a super language. The evidence of its superiority is lacking. The one thing that languages generate is work product, programs/libraries/et…
"I'll be the first to admit that it comes off as trollish. It's just I see these pronouncements about a language that make claims, which frankly I don't think can be backed up. I like Lisp as a language. I really do. But to me that's not sufficient to annoint it a super language." The post we are commenting on was by a person who was not making a claim, but relaying an experience. I will paraphrase three arguments: t…
He was not only relaying an experience, as he cites the Lisp Curse. See:
"I do believe in the Lisp curse that the power of the language is in some respects self-undermining because it empowers the individual and so tends to attract people who don't work well in teams."
And I'm sure you've read the Lisp Curse.
His essay argues that he's really not a great programmer, but Lisp gets him to principal engineer! He further implies that Lisp really is something beyond other languages with his statement about the planner code (of code, he never considers that porting often fails even within the same language family for a variety of reasons).
I'm sure with a Sun Java marketing budget and the right pepole we could make Lisp as popular as we wanted.
How do you explain C, C++, Python, Ruby, Perl, Javascript, and PHP? None had very extensive marketing budgets.
So all that being said, to address your actual point (however disjoint from the OP it might be), nobody's claiming it's a "super language", just often better for the people who commit to using it despite it's unpopularity. I can back up my claims of betterness with arguments about worthiness, but not about popularity, but then I don't think the later kind of argument matters in the first place.
I don't know what your metric of worthiness is. Maybe its the existence of some esoteric feature. You say I talk about popularity, but I only do so to ask for an example of the "worthiness" you speak of. As I said before the proof of the pudding is in the tasting. If you tell me you have some great pudding, but it tastes like cow dung, I won't be impressed regardless of how many fine ingredients you use and advanced cooking methods employed. It still tastes like cow dung. And I'm not saying that Lisp is cow dung, but I am saying that fancy ingredients and world class ovens don't impress me if you're making the same McDonald's sandwich as everyone else.
And when you start creating great pudding, you won't need the marketing budget.