Ilan: +1 on the "move a dumb TTY interface to a dumb GUI interface and it's still a dumb interface" sentiment. As for telling everyone to fuck off while going off on your own, it's tough. I say that having some experience doing so :)
The toughest part about it isn't building the house, it's finding a place to live while you're growing the trees. (uh, metaphorically speaking :) ). What I mean by that is this: while we're off in the hills, writing the code which will be the basis of truly great systems, life goes on. Meaning bills demand payment, code begs writing, and so on. All of that ultimately means that things need doing, and people like us are extremely likely to want to do those things on the machine. In fact, to do them otherwise would be silly, and probably piss us off.
The catch, of course, is that the whole reason we're off in the hills, growing trees for our new house, is that we don't like the accomodations we have. Not only that, but we can't find a supplier of quality timber products that meet our aesthetic, structural, and environmental impact standards. Meaning that we generally don't like the software that's out there, and don't even like the tools we'd have to use to build "better" software :)
So we can choose amongst these options (in no particular order):
- Do things manually (like, paper and pencil manual) (Incidentally, this is what Ted Nelson does (did?) for a long while.)
- Do things manually (like, electronic manual) in hopes of eventually harvesting the data.
- Do things with the software we don't like, both to "get it done faster" (though not as fast as it would be with our tools), and in hopes of eventually harvesting the data).
- Take the time to write "just enough" of the software we need to do it "close enough" to the way we would do it once the trees had grown to maturity.
- Convince someone else to do things for us in whichever way suits them (ie: delegate).
- Convince someone else to do things for us in whichever way suits our ultimate needs (ie: delegate but with guidelines).
Case in point: I've been working on selfish off and on since about 1997. Before the insights that lead me to the particular fusion of ideas in that, from about 1993 on, I was working on something called ev, which was basically just a semantic network (though I didn't know it at the outset). All of the pies into which I dip my fingers are ultimately connected to a unified vision of information being both everywhere and in one place (conceptually speaking). That is, I'm tired of entering data many times :) I want everything I touch to be a part of a seamless, holistic system.
My stubborn insistence on this vision has lead me to a place where I'm about two and a half years behind on basic financial paperwork (both for the tax man and for "proper" management of my business). Needless to say, that's a very bad place to be. So, with enough pressure from people around me, I finally sat down and forced myself to take a hard look at the problem space, and figure out the shortest path to my immediate goal (note: not to fulfillment of my vision, but to the intermediary goal of avoiding imprisonment).
Armed with a ruthless disregard for the purity of my vision, I decided to use GnuCash. It has a "good enough" balance of strengths and weaknesses (note: according to my vision and the standards that vision defines). Since it's GPL'ed, I know that I'll be able to harvest my data one way or another, if I even care about that when the time comes.
And so, here I am, entering reams of data from poorly managed paper files, trying to make sense of it all, and wondering exactly where I'm going to come out. Ultimately, though, I know that, no matter how painful it is, this process is getting me closer to the goal. Persevere is my mantra. Every step I take toward getting things in order is ten steps I'll have free tomorrow to put towards my real work.
I just keep reminding myself that the really great thing about the house I'm building is that it can house as many people as want to live there.