Simplicity and ubiquity matter (or, How reality mugged Joel Spolsky)
By David Walker (Google profile)
When a former Microsoft program manager, software entrepreneur and author of a much-admired book on user interface design backs down from one of his best-known ideas, then a few people notice. When he announces in the process that software has changed and Microsoft's best days are behind it, then heads start to turn.
Such has been the conversion of Joel Spolsky, the head of Fog Creek Software.
It began three years ago, when Spolsky spectacularly derided "lemming venture capitalists" who were funding people to build Web-server-based software that users controlled through a browser. "You can't do good UIs [user interfaces] in a web browser", he wrote back in 2001.
He made a pretty convincing argument, too:
There are too many things that are impossible to deliver properly in a web browser. First of all, there's the latency. Even if the web server is running on your own machine, round trips still take a certain amount of time, so all web applications feel somewhat sluggish. Second, there is no decent text editing widget for web browsers. With CityDesk as a Windows program, I can give you a feature where you can drag a picture from the desktop into an article. There is no way to create that kind of user interface through the web. I can keep a word count in the corner of the screen and update it in the background whenever you stop typing. You can use Ctrl+S to save without losing your place in the document -- something many writers have learned to do regularly. (Good luck creating a word processor inside a web browser that doesn't instantly lose everything, without prompting, if the user closes the browser). CityDesk has menus. Remember menus? And they work exactly like you expected them to, because the web browser doesn't have it's own menu, with a bunch of irrelevant commands, that wants to eat the Alt key. We don't have to waste any screen real estate on browser geegaws (like "back" buttons and spinning e-globes) that have no meaning for CityDesk. We get our own icon in the taskbar instead of looking like all the other web browsers you have open. I could go on for days about the nice UI things we can do in a Windows application that just can't be done with a web browser.
His comments gained new force when Fog Creek released CityDesk, a cheap native Windows program for managing Web sites which in several ways made its mostly browser-based competition seem amateurish.
I bought the story whole. I abandoned my own HTML-interface CMS for CityDesk, and have never looked back. CityDesk is my primary system for writing and for managing a bunch of Web-based systems where things like my calendar and task list live. My Citydesk data file is the single most important file I have.
But a funny thing happened to CityDesk. It wasn't that successful, despite the enthusiasm of a core group of loyal users like me. In two and a half years it has not taken the world by storm. Spolsky's firm, Fog Creek Software, is better known for its FogBugz problem-tracking software, a classic piece of Web-server-based software with - yes - a browser interface.
"CityDesk never really succeeded in selling to organisations with more than two or three people," Spolsky told me in July 2004. One reason: most Web sites are maintained by a group working from several locations. "If they're all on a LAN, fine," notes Spolsky. "But once someone wants to use it at home ... Web-based software is better."
As he was grimly reassessing the merits of Web-based software, Spolsky received another surprise: Microsoft was becoming less interested in keeping its new software compatible with the old, and instead concentrating on a bunch of new technologies in ways whih made life harder for developers - .Net, C#, XAML, Avalon.
In response, Spolsky issued a recantation - an all-out, I-was-completely-wrong repudiation of his previous views that has become among the most-referenced Web development essays this year: "How Microsoft Lost the API War".
Spolsky's essay argues that Microsoft, after years of keeping its developers happy, has finally managed to erode the relationship. Spolsky argues that this has happened just when the bulk of users have computers that will run what they really need (Word, Excel, email, Web browser) but won't run the very latest and greatest from Microsoft (.Net applications that require a 22MB .Net download). And he sees developers and users both doing the same thing: moving away from Microsoft like never before. Developers are writing programs that ran off Web servers, and users are using them in their browsers.
Unlike most people who write Microsoft-is-losing rants in their Weblogs, Spolsky doesn't like this turn of events. Like Microsoft, he has bet heavily that native Windows applications are the way of the future. And he still doesn't really understand why people like Web-based email, for instance, when they could just as easily use Outlook. But he realised one day that as a software developer, he needed to stop arguing and start learning from what he was seeing.
And he has also had to admit that the litle user interface touches he enjoys in Windows apps - like drag-and-drop - are touches the average user just doesn't miss.
As he writes in his latest essay:
Two new Web applications, Gmail and Oddpost, both email apps, do a really decent job of working around or completely solving some of these issues. And users don't seem to care about the little UI glitches and slowness of Web interfaces. Almost all the normal people I know are perfectly happy with Web-based email, for some reason, no matter how much I try to convince them that the rich client is, uh, richer.
So the Web user interface is about 80% there, and even without new Web browsers we can probably get 95% there. This is Good Enough for most people and it's certainly good enough for developers, who have voted to develop almost every significant new application as a Web application.
Which means, suddenly, Microsoft's API doesn't matter so much. Web applications don't require Windows.
There are a whole lot of reasons why HTML form-based Web applications work less than perfectly in many situations. But the Web browser interface also has a few advantages. A Web form's boxes and buttons limit what a programmer can ask a user to do. That's frustrating for the programmer - but it also means that the user has less new things to learn when they're using a Web application, and that they'll be introduced to them one by one.
Spolsky is not the first to see the advantages of the "unrich" browser interface. Sun's Tim Blair made the same points in mid-2003:
It‘s especially good for the customers to be on the Web platform. The notion of routing everything through the browser (with one significant exception, which I'll discuss below) is incredibly user-centric, user-friendly, and user-empowering. Because once they know how to use the “Back” button, to click on highlighted text, and to fill out a form, then they don’t need much training in how to use your application ...
Here’s an overgeneralization which I think works. Computer applications, excluding games, fall into one of three baskets: information retrieval, database interaction, and content creation. History shows that the Web browser, or something like it, is the right way to do the first two ...
Tim Bray's comment won support at the time from no less a notable than the brilliant Adam Bosworth, co-author of Quattro Pro and creator of Microsoft's Access Database:
Steve Jobs used to argue that a PC needed to be as easy to use as a radio or telephone (back when they were easy to use) and when the web came along I was surprised that Steve didn't notice that the future was here. Indeed I said so at Microsoft in 1996/7 when saying this there was a hugely unpopular thing to say. Personally I like the web. It is easy ...
What's fascinating about Spolsky's story is that he has fought separate commercial battles selling both Windows-based rich software and a browser-based program. He's been mugged by reality: simplicity and availability matter.