Cue up the Buffalo Springfield:
There's something happening here.
What it is ain't exactly clear.
Well, enough of that. The rest of that classic, haunting tune is ominous and foreboding, when I'm really feeling just the opposite right now. And the reason why I'm in such an upbeat mood is the Tablet PC. And like the song says, there's something happening here, and what it is ain't exactly clear – yet. But it sure is exciting!
My excitement began before I ever touched a Tablet PC. Call me a victim of Microsoft marketing (or too many years of watching Star Trek); but from the moment I saw the demo announcement, two years before the first models were available for sale, I saw something new there, something different. And I knew I wanted to be a part of it. I just didn't know why.
And then I got my first Tablet PC. And it was a fun toy, but I still couldn't explain to people why I wanted it – indeed, why I put up with a two-month backlog to get it. "It's a laptop with a pen, but without as much memory or processor," they said. "Big deal." And these weren't just any people. These were fellow programmers, and even extreme gadget freaks; and yet, aside from the novelty, they didn't see what the big deal was. But I just knew they were wrong. Somehow, this was more than a laptop with a pen.
And then I started programming it. And for me, that was where the real fun began. I've always said that rather than play video games, I'd choose to write them. To me, programming of almost any sort is just a fun game. Problem solving isn't just my job, it's my passion. Given a computer, I would program even if nobody ever paid me a dime for it (don’t tell my clients!). And programming .NET is even more fun. And programming the Tablet PC using .NET is F-U-N.
But my excitement reached a whole new level when I noticed something: I kept accidentally building really cool Tablet PC programs.
Now we all know better than that, right? No one accidentally builds anything in software, at least not anything useful or successful. As a UML instructor, I spend much of my time teaching how purposeful design leads to successful systems. And yet here I was, Mr. UML Guy, accidentally building really cool Tablet PC programs. Unless we're in the Realm of Infinite Monkeys, code doesn't just happen. There has to be intent there. But I'm used to the process being: intent-thought-work-thought-work-thought-work-work-work-work... But these Tablet PC apps felt like accidents, like unexpected surprises out of nowhere, because the process was closer to intentthoughtworkdone! Developing these apps felt like an accident, like a discovery, like there were solutions lying around just waiting for me to find them and tie them together.
What makes the Tablet PC under .NET easier to program and more fun than other platforms (even easier and more fun than .NET alone) is that it adds one more namespace that's right up there with the core .NET namespaces in terms of power and flexibility. And that new namespace provides new and powerful user interface metaphors. Right now, our common user interface metaphors are Console (keyboard) and Forms (keyboard and mouse). Well, you can use Ink for the Forms metaphor; but Ink also adds an electronic paper metaphor, or as I like to call it, the Smart Cocktail Napkin metaphor. It's the ease of use of paper combined with the ease of editing of electronic documents, plus you can add the ease of interpretation that lets the computer parse meaning from the drawing.
There's a downloadable demo for the Tablet PC that's really impressive: the Tablet PC Composition Tool, which shows you musical staves and lets you write in notes, edit them, erase them, and so on. And then you can play those notes, with different digital instruments assigned to each part. It lacks some things for a production tool, from my perspective (it is a demo, after all). But even within its limitations, it's a compelling toy for people who know music: they just start using it, without instruction. You write like paper, you erase and edit like a word processor, and the computer interprets and plays based on what you write. And that last part is key. Without the interpretation, it's "only" electronic paper: easy to draw, easy to edit. That's pretty easy and fun by itself. (I keep having to steal my Tablet PC back from my nieces, because it's the most fun coloring book they've ever had!) But with interpretation added, it's the Smart Cocktail Napkin: you get a good idea, you jot it down, and the computer acts on it.
This really is something new. Mark my words: the Tablet PC is more than just a laptop with a pen. It's something new, something we haven't really grasped yet, some combination of the right technologies at the right time to change computing in ways we haven't really foreseen yet. And I think a big key to the change will be the Smart Cocktail Napkin metaphor, which, when combined with the power and ease of use of .NET programming, just keeps letting me do really complex, really powerful things in a way that is simultaneously:
- Easy for my user to use, because Microsoft wrote all the really hard pieces that go into a natural, intuitive user interface based around Ink;
- Easy for me to write, because the Tablet PC API and .NET provide a tremendously rich base functionality;
- And easy for me to reuse, so my repertoire of powerful programs keeps growing. .NET makes code reuse easier than I've ever experienced before. This was always the promise of OO (and then later of components); but for the first time, I feel like the promise is really delivered. .NET makes it just as easy to design for reuse as to design in the first place, and almost as easy to move something into the library after it's designed for one app.
And I haven't yet scratched the surface of the other two technologies that add power to the Tablet PC: ubiquitous WiFi and ubiquitous speech recognition. By spec, the Tablet PC has to have both of these technologies. And once you know you can take those for granted, you can envision new applications that weren't worth discussing before.
So that's the metaphysics part of this blog: in ways we haven't begun to grasp yet, the Tablet PC is not just a laptop with a pen. It's something new, something different, and something more. In a fundamental way, it's like Windows 3.0 and .NET before it: when you can take certain capabilities for granted and just not have to write them, it liberates you to solve new problems by building on top of those capabilities. Through this blog, I hope to convince you that The Tablet PC Changes Things.
So I'd like to close as I opened, with a little 60s protest music. This time, The Beatles:
You say you want a revolution...
It's here. Let me show you...
UPDATE AND SHAMELESS PLUG: And if I've inspired you to write the next great Tablet PC program, I should recommend our new Tablet PC BootCamp.



