ThoughtStorms Wiki

Context: ProgrammingLanguages

PaulGraham wrote an essay promoting LispLanguage in which he compares it to a fake language called Blub.

In it he describes the "Blub Paradox" (not really very paradoxical). My QuoraAnswer below gives a response.

Quora Answer : What is the Blub Paradox in computer programming?

Aug 20, 2019

Dean Harrop has a beautiful rant. The first paragraph is a classic of a sly shanking of Graham's pomposity. (And as a Clojure lover, I'm very inclined to side with Graham, but Harrop properly skewers him there)

Nevertheless, take out the question of Lisp, and clearly the Blub Paradox is a real thing (even if its not very paradoxical).

Programming languages come with a variety of baked in concepts and ideas which need to be used to be understood. And people who don't understand those concepts are not going be able to make a particularly good evaluations of whether a language is "good" or not. (Where "good" is a combination of "elegant", "powerful", "expressive", "helps me get my work done" and other virtues.)

That doesn't mean we don't all try. You can't learn and use all languages so you are going to have to make a judgement which languages you are going to put your time into getting to grips with, and inevitably, that means you can miss out on languages with virtues you can't even begin to understand, from your Blubbier perspective.

Blub is a placeholder for all the languages you know and like, and which you genuinely know are better than some other languages that you know and don't like. But as a Blub programmer, you aren't in a position to really evaluate language X which has ideas you can't even imagine.

For example, like many people, I've sat down various times and tried grok what Monads are all about. And I still have a rather vague, nebulous understanding. Of course, the only way to really understand and to get a feel for how useful they are would be to use them in anger in Haskell or something similar. As a Clojure user, I'm Blub with respect to Haskell's type system. I've not liked it when I've dabbled with Haskell. But I haven't used it enough to really be able to judge its virtues.

As to whether Lisp is the top of the pile, my not so humble answer is on ExpressivityInProgrammingLanguages.

tl;dr : Lisp is at the top of the hierarchy for expressing computation. But today we have other requirements for languages, (eg. expressing constraints, data, "architecture") where other languages have improved on raw Lisp.

Backlinks (1 items)