[FoRK] Superhuman feats of programming expression
Jeff Bone
<jbone at place.org> on
Sun Feb 3 10:13:55 PST 2008
..was Re: The Arc Challenge: Tastes great! Less filling!
--
You know, I hate to keep beating up Paul Graham's attempts to enable
us all to write less code. I'm HUGELY in favor of that! But when I
look around at real, massive feats of terse programming machismo...
I hate to say it, but the hands-down winner seems to be Haskell! For
example, LoCs in:
xmonad: 3683 # an X-windows window manager
darcs: 8381 # a distributed revision control system
frag: 11223 # an OpenGL first-person shooter
pugs: 38972 # beat the official Perl 6 by... *years*
zipper: 1001 # a toy OS / file system
...and the list goes on.* For just about every major category of
software you can imagine, some lone Haskell hacker (or group of
hackers) has put together a Haskell version that, relative to a
similarly-full-featured implementation in any other language, *is
smaller.* I won't even add insult to injury by mentioning that a
popular late-night or long-weekend hack for Haskell dabblers is
throwing together a toy Lisp or Scheme. (Oh well, there I went and
did exactly that. Point being, you sure as hell don't see the
opposite happening!) Cf.
http://halogen.note.amherst.edu/~jdtang/scheme_in_48/tutorial/
parser.html
or
http://www.defmacro.org/ramblings/lisp-in-haskell.html
Note that I'm completely omitting from this list the usual crop of
web servers, template systems, wikis, blog engines, etc. There are
many of those available in Haskell, but hardly worth mentioning as
they tend to clock in at such a small amount of code. (Note too that
the fact that all of the above are clocking in at order 10k LoC in
the case of the largest may in fact reflect an upper limit beyond
which no human being can even *think* about a Haskell program! ;-)
(Actually I have an existence proof to the contrary: House, an
rather serious bootable bare-metal OS written in Haskell, clocks in
at about 370k LoC. Not sure how much of that's the kernel.
Lightweight serious kernels have historically started at around 100k
on the very low side, early Plan 9 being the LoC leader AFAIK.)
Now, don't get me wrong; I'm EXTREMELY vexed about this state of
affairs, as Haskell is a programming language that, no matter how
many runs I've made at that fence, I can never seem to get anything
useful *done* in. I'm fine in theory, but when it comes to actually
stitching together IO and exceptions and all that, I find that my
head explodes. And I'm tired of cleaning gray matter and blood
splatter off the walls of my home office!
I'd MUCH rather see people doing this sort of thing in Lisp! Why
aren't they?
That's a serious question!
jb
* Note that my incorrect recollection was that all of these came in
at around 4k LoC. Thus my previous humorous conjecture --- that
*any* program could be written in less than 4k LoC (or 5k, or
whatever) was clearly wrong. My bad. Made for a good joke, though.
More information about the FoRK
mailing list