[Haskell-cafe] Wow Monads!

Joachim Durchholz jo at durchholz.org
Thu Apr 20 08:21:35 UTC 2017

Am 20.04.2017 um 02:51 schrieb Richard A. O'Keefe:
>> On 20/04/2017, at 1:52 AM, Joachim Durchholz <jo at durchholz.org> wrote:
>> Common Lisp and Scheme were, in their first years.
>> They both managed to transition from "fad" to "production-ready" AFAICT, probably after a stabilization period (I dimly recall having read versioned standardization documents).
>> Lisp as such... probably. Whenever people with enough raw horsepower to use Lisp in practice met people who didn't, because then it would be a fad from the latter ones. Which pretty much meant everybody who didn't have access to abundant corporate-sponsored or state-sponsored hardware.
> Truly strange.  You really did not need "horsepower" to use Lisp in practice.
> There were several Lisp implementations for CP/M, and CP/M machines
> were hardly "raw horsepower" by any stretch of the imagination.

If that had been universally true, nobody would have bothered to think 
about, let alone buy those Lisp machines.

> OK, a University lab of cheap 8086 PCs does technically count as
> state-sponsored, but hardly "raw horsepower".  I suppose the price
> of TI PC-Scheme (USD95) would have put it out of reach of hobbyists
> /sarc.

Nah, it simply wasn't available unless you knew it existed.
(I certainly didn't know.)

> The problem with Lisp was never garbage collection, or speed, or availability.
> It was *unfamiliarity*.

Actually, the first actual project I ever built was a (primitive) Lisp 
interpreter. I would have liked to work with it, but I lost access to 
the machine (that was in the pre-PC era), plus I didn't know enough to 
devise a way to integrate it into the surrounding operating system.

 > As soon as things like TCL and Python became available,
> they were adopted gladly by many programmers, despite being less efficient than
> typical Lisps.

I don't know what motivated anybody to ever use TCL. It's an abomination.
Python doesn't count, it wasn't even thought about in the IBM PC days.

> I'm very sad to see FUD about Lisp surviving this long.

Enough of this kind of slur.
I'm not adhering to "FUD", I am reporting personal experience.
I have been refraining from responding in kind, because some unfriendly 
things could be said about your mindset.

> Much the same FUD was spread about Prolog, despite there being decent
> Prolog implementations for cheap 16-bit machines.

Sorry, Prolog simply didn't work. As soon as you tried to do anything 
that was prone to combinatoric explosion, you had to resort to cuts and 
essentially revert to a uselessly complicated imperative programming 
model just to keep that under control.
I am well aware that Prolog can be an excellent tool, but only for tasks 
that it fits. Unfortunately, most paid jobs are too simple to actually 
need Prolog, and of the complicated ones, only a small fraction can even 
be adequately captured using Horn clauses.

I'm not talking from theory here. I tried to adopt a simple distance 
calculation in a hexagonal lattice with it. I realized that to make it 
reversible I'd need have it do the inverse of finding the distance of 
two known points, namely find the list of distance-N points from a given 
centerpoint, which I liked because I needed that anyway; however, it 
turned out to be O(N^6) because it would explore ALL the paths inside 
the radius-N circle, and that was useless.
Making it avoid that involved cuts, which would make the ruleset 
non-reversible, and hence non-composable under standard Prolog semantics 
(you'd be unable to add rules that would e.g. exempt blockaded points 
from the pathfinding). In other words, the resulting code would be an 
imperative program, shoehorned into a Prolog ruleset, giving me the 
worst of both worlds.
No I'm fully aware that I might be able to find better solutions now, 
some three decades of experience later. But I don't think that Prolog's 
approach will scale to teams of average programmers, and I doubt you can 
find enough programmers to staff any project worth doing, unless your 
tasks are a natural fit to Prolog. (Of course there are people who do 
non-Horn-clause-ish things with Prolog, and successfully so. If all you 
have a hammer, then every problem starts looking like a nail.)

> It is *bitterly* ironic to see Java adopted by people critical of Lisp.

I was forced to. I'd really love to live off Haskell programming.
I'd even be happy doing Scala - it's far from perfect, but it integrates 
well with Java libraries, and that's a huge bonus that people without 
experience in a JVM language seem to be unable to appreciate; I suspect 
the Blub paradox at work here.

> It just goes to show that the old hardware saying, "you can make a
> brick fly if you strap on a big enough jet engine" is true of programming languages.


More information about the Haskell-Cafe mailing list