[FoRK] But seriously... then there's Haskell.
<jbone at place.org> on
Sat Feb 24 12:42:23 PST 2007
As you may have surmised from my fanciful little narrative about
Haskell, it's a long-term fascination / vexation of mine. In fact,
I've been a fan of the whole functional languages thing since
undergrad days, indeed since before I ever wrote a substantial piece
of C. Dick Pountain is probably to thank / blame for my programming
language fetish generally and my love of exotic languages
specifically. Through Byte magazine back in the early 80s, he turned
me on to Lisps (Bet's XLisp, specifically) as well as Occam (and
transputers, and parallel programming) and the whole pre-Haskell
family of FP-derived languages (Hope, Miranda being the notable
exceptions.) It was through that channel that I came to buy a bound
copy of the first (20? 25? can't recall) years of Turing Award
lectures, specifically to read Jim Backus' lecture in which he
introduced FP. My first attempt at programming language design was a
thought experiment amusingly called FLAP, for "Functional Language
for Application Programming." (It was basically Hope with a few
additional wacky, and thoroughly broken, ideas thrown in. And yes,
sullied by my already tainted experience programming imperatively.
Russel may remember some of this...)
Over the years I left the whole typed-functional language family
behind as an interesting but impractical academic experiment. After
school I never wrote any "for-real" Lisp, either --- though I proved
Greenspun's 10th over and over again. At Sun we had *two* different
Lispy derivatives in the system I hacked on: EVIL, which was
relationship to Lisp as that language; and WICKED, which was a
mostly-declarative, structure-oriented subset of Scheme used for
migrating computational agents between hosts via e-mail. (Think JSON
as sexprs, with first-class function values.) SIOD embedded in
UnterVERSE. ETI was Lisp in XMLish angle brackets (thought that
decision was before I got there; that was later replaced in part
through my encouragement with another Lisp-in-sheep's-clothing,
Tcl.) Etc., etc., etc.
Picked the whole Haskell thing back up again a decade ago, and it's
been haunting me ever since. For all the overly-academic, recursive
navel-gazing and dissertation-one-upsmanship that goes on in the
community, occasionally there are these real, practical, interesting
little gems. There are just these tantalizing little hints about how
productive and powerful and practical it can *really* be... Just
these superhuman feats of programming heroism that fly out of
(usually) lone wolf programmers at unexpected times --- and in
domains all over the map. Hell, the darcs guy's a *physicist* ---
and we all know about physicists and programming, right? A whole
distributed revision control system in around 8k LoC --- and it would
be a 10th of that if it were more idiomatic, done by a real Haskell
guru. By which I mean, either Simon, Simon, or Phil. ;-)
To wit, some Wonderful Things:
Fran, and the whole School of Expression multimedia thing.
Frag - a Quake-style FPS in Haskell.
Darcs. (Already described.)
Zipper. Filesystems smaller than anywhere except FUSE and Plan 9.
Djinn. ("The compiler. It's thinking...!")
Near-complete R5RS Scheme(s) in under 500 LoC. (And a good tutorial,
And oh yes, on the language front: a working, small, tight Perl6 ---
PFP for probabilistic stuff. Also Dazzle for graphical Bayesian
Metamath hacking of all kinds, and a good maths book. Using Haskell.
Symbolic math and theorem proving stuff, notably DoCon and Dumatel.
Haskore, for musical composition.
Haskell for the UNIX shell --- the h4sh tools.
Intelligent Internet TV stuff, with classification / etc. (downNova)
Etc. etc. etc.
Some of this stuff is just magical. (As in: "Any sufficiently
advanced technology...") All of it is mind-blowing.
So I just keep coming back for more...
Stay away. For your own sanity's sake. This is not a good addiction
You were warned.
More information about the FoRK