Let's get real timeNovember 19th, 2007
That was in 1990. In the seventeen years since that time, computers have doubled in power every two years. And yet today, it takes 30 seconds to open Photoshop on my desktop PC, a 3 GHz Pentium 4, which is as powerful as a 1990 supercomputer. So let's begin with the observation that it would take 30 seconds for the most powerful computer in the world in 1990 to open a modern day copy of Photoshop. That's got to be fertile ground for a blog post.
Consider the advanced field of Real Time Computing, which brings us computer systems for mission critical tasks like aircraft flight controllers and tournament chess programs. In such systems the total correctness of an operation depends not only upon its logical correctness, but also upon the time in which it is performed. Real time computers always act within the required timeframe, so if you hit an object at speed in a modern car, the onboard computer will stop what it's doing and inflate the appropriate airbags within 50 milliseconds, every time, even if it's the last thing it does (which it frequently is).
Let's reflect on how everything we do in our typical day fits this definition of "real time". If my decision to get out of the way of that bus takes too long to be implemented, it is the end of my day. If my withering response to your criticism is a few seconds late, no one is withered but me. And if I can't articulate my point in those few seconds when I have a meeting's attention, not only is my point lost, but I lose some credibility, so that I will find it a little harder to get the meeting's attention again. Yes, we live in a very real time world.
Before I start trying to weave all this together, consider the relationship between master craftsperson and their craft; I'm thinking a cabinetmaker or musician, someone who has spent a lifetime honing their skills. They will have a set of tools, in the broadest sense, and will seem to become one with them in the act of creation. It is a beautiful thing to behold, someone working in this way, and in the case of musicians, at least, we happily pay money to stand around and watch.
The thing is, all of us working at the digital library coalface are master craftspeople in some sense. Metadata becomes fluid in our hands and user interfaces shimmer before our eyes. We become one with the digital domain so as to harvest value from it. Well...you know what I mean. Take a leap of faith and say our PC is our toolset.
But I wasn't at a gig the other night where the guitarist struck a chord that took two seconds to come out, and I didn't notice the breathless pause while the audience waited for the snare drum to retrieve a soundfile from its hard disk. Because, see, musicians have real time tools, and every nuance of their craft is rendered instantly, fed back on itself, kept in the moment.
So Photoshop took 30 seconds to open on the fastest computer in the world, but it's now sitting there, ready to do my bidding. Seems like a reasonable first step to open a document, hard to imagine what else I might do at this juncture, but when I hit Ctrl-O the audience and I are going to stare at the screen for a full second or two while Windows summons up an "open file dialog box". If this was a severe frontal impact I would be well dead. Instead, I'm still alive, although slightly regretting it, and taking part in a day-long dance where I spend most of my time waiting, feeling like I'm there for the computer instead of the other way around. It's not just Photoshop and it's not just Windows, it's that, for some reason, my interaction with my PC is not considered a real time thing.
To say "what were you actually going to do during those seconds that you were waiting for your PC anyway?" is to miss the point altogether, because you simply can't dance with such a partner, if you will. See, my mind was racing ahead, balancing schemas on top of models while juggling programming languages and xsl transforms, when my PC didn't lay the track ahead of me fast enough to stop the freight train of thought plunging right off the end of the tracks. Disaster. There is to be no tangoing with this PC, because it takes two to tango and my PC's too busy, apparently, doing something else.
I have fond memories of dancing with that 40MHz 030. It was so fast that you could literally not out run it; the millisecond your finger released the mouse button, it was back, saying "Uh-huh, sure. What next". It was exhilarating, and we swept each other off our feet in a blur of productivity.
All I want, of this tool that I spend more time with than anything else in my life, is that it is built on the understanding that the total correctness of an operation depends not only upon its logical correctness, but also upon the time in which it is performed. I want a real time computer, one which completes all typical operations in a non-perceptible amount of time. Like 100ms, tops. If it's not a question of computing power - and the CPUs on our desktops are the supercomputers of yesterday - then it must be a question of philosophy.
Here's a philosophy I'd like to see embraced in a new generation PC: I want the click of my mouse to register in its brain like a ground proximity sensor on a modern aircraft. I want it to panic, I don't care how, but it must drop whatever unimportant dross it was amusing itself with in the billion cycles since I last asked it to do something, scramble to attention, and do what I just asked, right now. In return, I will give it space on my desk and keep it chock full of electricity.
So, how about it, you people who build desktop operating systems? Could you take a step back from the pseudo glossy finish and 3D window zooming effects for a minute and do something worthwhile? Let's see which of you can build the first mainstream desktop real time operating system.
As you might expect, I can't dance with slow websites either. Always blaming my partner, perhaps I just can't dance? Anyway, my obligatory Google reference is that google seems to understand that they're in the real time game - it's a strange day indeed when a search across 8 billion records takes more than 200ms. As quickly as you can ask the question, there will be an answer (of sorts). When library websites take 10 or 15 seconds to return the results of a non-federated search, I just stare at the screen in disbelief: what can you be doing all this time? Rummaging through the shelves? Even my lead-footed Pentium 4 can somehow manage a full text search across 100,000 records in 150 milliseconds. That's 100 times faster, and more or less where websites need to be if they're really going to dance.