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.)

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to