

Ask HN:  Lisp, Haskell, and the Blub Paradox - AnimalMuppet

Lisp is the classic &quot;top of the power curve&quot; language for the Blub Paradox.  Lisp people look down on basically every other language, and ask &quot;How can you get anything done in those languages?  They don&#x27;t even have macros.&quot;  (That&#x27;s Lisp macros, not C-style macros, which are a much different thing.)<p>But Haskell programmers look down on Lisp (and everything else), and ask &quot;How can you get anything done in those languages?  They don&#x27;t even have a decent type system.&quot;  (And no, C&#x2F;C++&#x2F;Java types are not what a Haskell programmer calls &quot;decent&quot;.)<p>It seems, then, that we have two different languages, each looking down on the other, <i>and sure that it knows why it is looking down</i>, that is, sure that it knows why the other is less powerful.<p>My question:  Is the Blub Paradox wrong?<p>The Blub Paradox assumes that all languages can be ranked on a one-dimensional axis labeled &quot;power&quot;.  But power is the power to do something.  What if the &quot;something&quot; determines (at least to some degree) what &quot;power&quot; looks like?  Maybe a better view is that programming languages look like a tree, and your problem looks like a vector.  Pick the language that gets you the furthest in the direction of your problem vector.  (This view means that you cannot meaningfully compare the power of different languages without specifying the problem domain, unless the languages are on the same branch of the tree.)<p>Here&#x27;s an even stranger question:  Is it possible that Haskell&#x27;s type system and Lisp macros are doing somewhat equivalent things?<p>Responsible, thoughtful answers are welcome.  Flames are firmly discouraged.
======
yzzxy
IIRC "Beating The Averages" made allowances for domain specific languages.
However, the core of almost any language can be applied to almost any other,
and domain-specific tools layered on top. Lisp's syntax is especially good for
this because it is so extendable and simple, I'm not sure about Haskell having
not used it myself.

As for Haskell types vs. Lisp macros, my impression is that macros are, at
least semantically, more correct for the common process of "apply this action
with some changes to multiple situations" that I believe you're referring to
when you talk about these properties being equivalent. However, I'm not
completely familiar with how a "proper" type system actually works and what
the capabilities of languages designed around such a system are, so maybe
somebody more experienced could shed some light.

------
peterashford
The Blub concept is completely misguided and arrogant. It assumes that those
who use more powerful tools are clever and superiour and those who use simpler
tools are idiots too stupid to understand their betters programming away in
Lisp.

It ignores the fact that an enlightened software engineer can make the
decision NOT to use the most powerful language and find value in simplicity,
ubiquity or community.

