[Haskell-cafe] IDE?

Andrew Coppin 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
> programmer. 

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 
similar picture...

>  > 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 [1] so that you have your feet
> on solid ground, then jump to the Emacs tour [2] 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 mailing list