[Haskell-cafe] Channel9 Interview: Software Composability and theFu ture of Languages

Frederick Ross madhadron at gmail.com
Sat Jan 27 22:27:04 EST 2007


On 1/26/07, Collin Winter <collinw at gmail.com> wrote:
> I find it incredibly insulting for you to assert that people who
> complain about Haskell's difficulty are too lazy and aren't really
> interested in a better solution. Maybe they just don't want to have to
> take graduate-level classes in category theory to get their job done.
> Maybe they want a solution that meets them half-way, one that doesn't
> require that they understand how to build their own resistors and
> capacitors in order to make their TV work again (to use your analogy).
> That's what Meijer means when he says that Haskell is too hard.

I have an odd background in programming (never took a compsci class,
did take a graduate computational physics course in my first year of
undergrad, taught by an old nuclear physicist, who used nothing but
Forth...beat that for bizarre), but since physicists represent an
interesting conglomeration of snapshots of the mainstream of
programming through the ages, I do have a bit of an archaeological
perspective on how people think about "hard."  In case the following
seems far fetched, let me assure you that four years ago I worked in a
high energy physics group on a codebase of a few hundred thousand
lines of FORTRAN 77, with no documentation.  It had GOTOs.  The folks
working on this regarded C as a newfangled, difficult language, and
some of them were still writing FORTRAN IV or RATFOR.

So here's my completely anecdotal view of the history of "hard" in
programming: In the beginning there was GOTO.  Well, actually there
was machine language, then assembler, but we'll skip that.  GOTO was
king.  And then there was this movement among the ivory tower computer
scientists called "structured programming."  It was considered
difficult and complicated, with lots of hard concepts.  And then the
compsci departments made a concerted effort, taught a generation of
students in the new style with no reference whatsoever to what came
before.  Structured programming suddenly became blasé.  How else would
you program?

And then similar, though smaller and often partial repetitions of this
break happened: designing nicer data structures when the Wirth
languages came to their height; object oriented programming (which I
regard as one of the great intellectual failures of programming).

So when the kids are presented with exercises on functors, ADTs, and
monads in intro compsci, and the professors pretend that it was always
this way, there was never any other way, then they will grow up, they
will go forth, and these will be the everyday things.  Until then, I
will continue to hear people say that map is a scary, unfamiliar
object that makes the meaning of code obscure.

-- 
Frederick Ross
Graduate Fellow, (|Siggia> + |McKinney>)/sqrt(2) Lab
The Rockefeller University


More information about the Haskell-Cafe mailing list