← Back to context

Comment by mtraven

15 years ago

As someone who has programmed Lisp commercially for a long time, I have to agree with this essay. I've had much the same thoughts over the years.

At one point I was one of five Lisp engineers in a 10-person company. I think we had no fewer than five hairy macros for creating complex UI layouts, because everybody wanted to do it their own way, and you could hack something like that out in an afternoon.

You'd never get the same kind of phenomenon in a Java-based project, because creating something like that in Java is a major undertaking, so you'd have people settle on one that probably came from outside, and a whole ecosystem of sponsors, books and whatnot.

Just very different worlds. But Lisp programmers can't reinvent the wheel all the time, so I'm very glad of things like Cliki, asdf, and Quicklisp that are promoting sharing and standardized libraries.

I would like to ask you about this:

    I think we had no fewer than five hairy macros for
    creating complex UI layouts, because everybody wanted
    to do it their own way, and you could hack something
    like that out in an afternoon.

Even though I have worked in commercial environment other than Lisp (never Lisp so far), there are lots of things that can be hacked out in an afternoon. Yet having five hairy sets of duplicated functionality is something I'd never let stand for long. It seems to be a culture thing rather than a language thing. Is that right?

  • I don't think you can separate language and culture so cleanly.

    Oone of the attractions of Lisp is that you can mold the language so its just the way you like it. That makes it harder, sometimes, to have a group come to a consensus about the way things should be. It's just a tradeoff.

    As somebody else pointed out recently, highly empowered individuals can be a downside from a management perspective, and that perspective is not entirely wrong, although it's maybe not the way hackers think.

    • It's just a tradeoff.

      But it's a tradeoff that has left Lisp with one major app in 40 years (Emacs)? A handful of notable apps... and that's it.

      And why, in a space like phones, where one dev can produce an app in a week to months, are there no incredible Lisp applications? This seems like the perfect domain where one to three devs is all it takes to make a world-class app, and theoretically with the awesomeness discussed in the story we would expect at least one Lisp app that was just mind blowing. Of course that hasn't happened.

      IMO, what I think happens are those people who are attracted to Lisp are those who like language purity/elegance and bask in it. They tend to be those that over-attribute the power of a language to the productivity of a developer. They have a great language, and are bright people, yet the result is nothing beyond the normal range of expected output. So they then try to create a rationale that combines their belief that they have a super language, with some odd external force that keeps that language from showing its true power to the outside world. Missing perhaps the most obvious thing which is that in terms of expressability/productivity, language is probably a 1.5x multiplier at best. But if they concede that the multiplier on productivity isn't at least 10x, they may have to admit that the beauty of the language is mostly a form of self-gratification.

      2 replies →

    • So if I were to learn and use a Lisp and then lure some other non-Lispers I know into a start-up using Lisp, then we would fall into the same problematic cultural patterns? I can see the temptations, but I don't think it would be a forgone conclusion. At least I hope not.

      Thanks for your thoughts, and if you reply again I'll be interested to read it.

Thank you. It's stories like this that inspired my essay. I wish that I had saved links to all of those other instances.

Whenever I've read of people complaining about the dearth of code libraries for Lisp, sooner or later, some commenter points out that they would rather roll their own functionality into whatever project they're currently doing. It happens too often to be a coincidence.

  • > sooner or later, some commenter points out that they would rather roll their own functionality into whatever project they're currently doing. It happens too often to be a coincidence.

    I suspect a lot of this has to do with the fact that it took the CL community over two decades to create QuickLisp. It boggles my mind why this wasn't created sooner--perhaps sharing libraries wasn't a high priority because the libraries tended to be spotty to begin with? So you may have had a chicken/egg problem.