[Haskell-cafe] Wow Monads!
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
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