andrewcoppin at btinternet.com
Sat Jun 16 12:10:51 EDT 2007
David House wrote:
> Andrew Coppin writes:
> > > Why not contribute an afternoon's hacking?
> > 1. I'm not good enough.
> How do you intend to remedy that, apart from by writing Haskell code? Start
> small, fix small typos or bugs, and build it up from there. Seriously, just give
> it a go, I doubt any of your patches will be rejected out of hand. Rather,
> you'll get comments on your coding style which will help you become a better
I used to have these delusions that "open source" would mean that one
day I would be helping people develop actual software, rather than just
tinkering on my own.
Of course, back then the problem was that all "real world" software is
written in C or C++ (or both), and these are amoung the tiny number of
computer languages that I have repeatedly *failed* to learn. (Typially
it takes me a day or two to learn a new language. There are very few
that I actually *failed* to learn.)
And then I discovered Haskell. If programming languages were weapons of
war, programming in BASIC would be equivilent to telling somebody they
look fat, C would be like throwing pebbles at them, Java would be like
throwing a grenade, Eiffel would be like using an AK-47, and Haskell
would be a large thermonuclear warhead. (!) Quite simply, all lesser
languages pale into insignificance before the almighty power of Haskell.
Finally I thought I would be able to do great things. After all, in
Haskell, every concievable problem can be solved in 3 lines of code or
less. (Sometimes A LOT less.)
And then I had a look at the source code for GHC, and I was shocked. The
program is *thousands* of lines long - despite being written in Haskell,
the most powerful programming language that has ever existed. Now
considering that even the hardest problems that mortal minds can
comprehend can be solved in a page of code or less, it instantly follows
that any problem that requires *more* than 1 page of Haskell code must
be complex beyond the powers of mortal comprehension. And by induction,
any task that requires *hundreds* let alone *thousands* of lines of code
must be comprehensible only by the greatest minds in all of humanity.
Obviously, I am not such a mind. It's nice to think that one day I will
be... but let's be real here. It's not going to happen.
I realised then that trying to do anything with the GHC source code was
a hopeless endevour. Indeed, most Haskell programs I look at are a
> > Personally, I really hate text-mode editors. (I won't even go into how
> > many times I've had to reboot Linux just to get *out* of Vi!)
> 'Z Z' is the command to quit vi, right?
Sometimes. Sometimes it just types "zz" in the document. It depends on
the alignment of the planets.
(Of course, now I know about "virtual terminals", I've learned how to
switch to another terminal so I can look up the PID for Vi, and then I
can kill it that way. None of which helps me edit files in any way... I
really hate it when Vi is the only editor I have access to!)
> > What I would *really* like is a nice big IDE... but it seems there isn't
> > one for Haskell. :-(
> This was my attitude, too, for a long time when I started to learn Haskell. I'd
> only heard that Emacs was hard to get used to, hard to use, and somewhat
> old-fashioned. Seeing as there was nothing better, I decided to spend a weekend
> learning Emacs and count it as a life skill, as my productivity was sure to
> increase. What did I find out? Well, the first of those complaints is true,
> there's no doubting that, but the second isn't really and the third most
> certainly not. It might not be the most conformist of editors but that doesn't
> make it old-fashioned, nor arcane, nor irrelevant.
> Give it a go. Start out with the Emacs tutorial  so that you have your feet
> on solid ground, then jump to the Emacs tour  to whet your appetite to the
> breadths of features that Emacs provides.
It's a text-mode editor. quod erat demonstrandum.
Since it only operates in text-mode, it cannot possibly provide things
like clickable fold points, or a side-bar containing a bunch of icons
representing the objects in the current file, or a spell checker, or an
interactive debugger, or any of those other features that require a GUI.
(I am *really* not a fan of ASCII art "graphical" user interfaces.)
More information about the Haskell-Cafe