How does programming taste?

Bonz

Which software projects taste well? Or when do they feel like microwave-ready food?... There's not a universal answer to that of course, as everybody has areas that tickle him more than others.

But here is my own attempt to answer: if you start a software project because it tastes well, it will always taste well as long as you don't take too big a portion. Ever been at a wedding? As you periodically take a lot at the cake at the other end of the dining room, it progressively degrades from invitating to decidedly nauseating, as your stomach gets fuller and fuller, trying in vain to keep the pace of digestion as more and more dishes are served...

I have had similar experiences while programming. I have been working for almost three years on an environment for the Smalltalk programming language, which I am distributing through the GNU project. That's a single-man project involving 150.000 lines of code: not small stuff, but I'm still working on it with a good deal of enthusiasm.

Reflecting on it, the most likely reason why I am not bored of it is that a) I have no deadlines, and b) the project has many facets: there are half a dozen different class libraries in it, each weighing from 5.000 to 40.000 lines of Smalltalk code, plus a 50.000 lines VM mostly written in C.

I found myself working on different parts of it, sometimes conceiving a new one as I read an article on an area that tickled my interest: for example that's how I decided to write a networking library and a just-in-time compiler.

In these years there were of course moments where I found myself bored and could not think at anything interesting to do on GNU Smalltalk. I shortly found out that it was the time to switch to something else, such as ensuring my assembly language skills were awake, or contributing to another GNU program. And after I took some rest aborted projects spontaneously resuscitated, more energetic than ever.

So I think this is the lesson I learnt: never exaggerate. If you are full of ideas, think you couldn't be more productive, and feel like doing a 10-hour programming session, go. But if you don't... well, relax!


                                   --
                                   |_  _  _ __
                                   |_)(_)| ) ,'
                                   -------- '-._