Version 2 of IDE: from cathedral to patchwork bazaar

Updated 2006-01-18 22:00:00 by suchenwi

Richard Suchenwirth 2006-01-18 - IDE, "Integrated Development Environment", a lofty name. They often come as big monolithic software, with the corresponding complexity. Developers often use them, and not so rarely want to roll their own. "My cathedral is bigger than yours."

IDE and simple somehow don't go together: you're supposed to have many features, and add one here and another there. Bells and whistles (can be hazardous to your hearing).

On the other hand, Tcl is radically simple. Tcl users are often fond of using editors like emacs or vi, or even Wordpad, which are feature-poorer than full-fledged IDEs, and yet they achieve much with little. Edit here, test there, works smoothly even on a PocketPC. An interactive tclsh is good to test some details, and then you code confidently, and test successfully - one might even call that "intelligent design".

http://www.itworld.com/shared/images/2003/3/Unicode_editor.gif

And yet, I've also tried my hand at making a complex IDE ("sep", see screenshot above). This sandbox of mine has an entry, a listbox, a text, a canvas, and various connections between all of them. I started to write it in 1997, and for a few years it has just staid as it is, but I still use it every day. I work with it, but why don't I work on it? Maybe it's the cathedral effect: the thing is so big, like a dinosaur, that I'm afraid to change one place and run into errors in a remote other.

Years ago I boldly started out to make a 2.0 version, and it has stalled since long, because to change from one complex system to another even more complex system isn't inviting to be done as a weekend fun project. "sep" just has stagnated at version 1.7 for some five years now, but that doesn't make it worthless. It does its job every day, but I sometimes smile how naive I was years ago.

And with iPaq and then my current HTC Magician PocketPCs, I kept the traditional pattern: iFile: a little file system browser was, well, not a cathedral, but a chapel built on the palm of my hand. And the same effect came back: I like to use iFile, but I don't feel tempted to work on it.

Enter eTcl, a young single-file Tcl/Tk 8.4.12 distribution with many noticeable features. A good console, and ways to extend it from outside without unpacking and packing and all that jazz (and easy switching between toplevel windows). I played with it, configured this and that, and somehow my mind changed - seeing the console as a launch-pad for apps (like on Unix/Cygwin desktop boxes), I thought I'd like to call an editor, and so I wrote e: a tiny editor plugin for eTcl - small, self-contained, yet very useful (especially as it allows to edit files as well as procs, and save to file or eval.

Next step (today) was htext as eTcl plugin - tweaking a 5-year old code that I hardly ever looked at after, to run pretty nicely on the PocketPC. It's also stand-alone, but plugs into the existing infrastructure: hypertext pages are stored in a global ::docu array, so if you add something to that, htext will display it next time.

It dawned on me that I could delegate the editing of ::docu entries to e, so without one knowing about the other, they would cooperate. Add a simple function for serializing an array, and somehow three little components start to be something like a PocketWiki together...

I'm just in the middle of thinking about these new perspectives, but I'm slowly getting a concept of a set of little puzzle pieces (to come: generic canvas and listbox and ways to compose them on the fly, say for displaying an encoding), which can each be refined and polished without fear, but on demand compose into a bigger picture which looks like an IDE cathedral - and in fact is just a bazaar of software patchwork.

Maybe this is because on a PocketPC you just have 240x320 pixels, each window should best be a full-screen toplevel, so putting together an IDE is not really feasible.