Beating Google on search is hard. The latest entrant is Cuil, which recently launched amid much fanfare. Predictably, they’ve been lambasted by the techno blogs. Google is so good that you get a sense of whether a competitor has a chance within about 20 seconds. Cuil doesn’t smell like a winner.
But but but. Whereas most Google clones copy Google’s interface pixel-by-pixel, Cuil’s interface is better, in some respects. For one thing, they cram more search results into the page, without making it look crowded. The category widgets work quite well, too: pretty yet functional. And it is surely a useful innovation to keep the links to the other results pages visible at the bottom of the window. My guess is that Google would be doing some of these things if they weren’t scared to death about messing up their famously simple and usable interface.
Admittedly, Cuil’s results are a little strange. When I Google, er.. Cuil myself, the picture above is one of the first results. Thanks!
Microsoft PowerPoint has been around for a few years. I’m sure that Microsoft borrowed the GUI from some other program, but I’ve always liked it. It’s super-simple and immediately intuitive. “Click here to edit title” is very difficult to get wrong. In a way, the GUI philosophy is similar to Google’s, in that users aren’t really expected to learn anything, they just click where it says “click”.Web building tools, though, have taken a while to get as simple and intuitive. In part, this is because drag-and-drop GUIs have been difficult to do robustly on the web. But as these problems are addressed by a number of tools and libraries, there is really no reason why editing a website could not be as simple as making a presentation. Or simpler.The startup hailstorm known as web 2.0 naturally includes a few dozen companies tackling the challenge of visual web building. ReadWriteWeb has an interesting rundown of some leading contenders. Weebly seems to be pulling ahead of the field. And their tool is impressive, if a little flaky. (Weebly is also the only tool on the list offering a live demo. That tells me they believe in their product. More importantly, people will actually bother to try it.)Now the market needs to get more clumpy. Even with the latest web 2.0 toolkits, it is a lot of work to build these GUI-intensive tools, at least if you’re aiming for desktop-app robustness in most browsers. The testing alone can keep a small development team occupied for months. As bigger companies enter the market (as Lycos appears to have done with Webon), the products will get more mature, and we’ll start to see a new level of competition. And PowerPoint-style web building will truly have arrived.
“Do you want to save your changes?” How many times a day does your computer ask you that question? Most programs do when you close them. When you ask Windows XP to shut down, the process takes a good minute extra because of all the programs that bug you about this. And it’s all utterly pointless.
Back in the day when storage had a non-trivial cost, both in terms of the space and the time expended to store files, the question made sense. And it might still make sense in some cases. But for the majority of cases, there is a better option. That option is versioning. With versioning, every change is always saved, and the user moves easily between versions.
Some companies have seen the light long ago. When I started using IntelliJ a few years ago, I was initially baffled at the lack of a Save button. Then I discovered that it was all done in the background, and that version management meant I never had to worry about saving again. Similarly, most of Google‘s products (such as Gmail) take care of saving for you. To an extent, this is because they’re on the web, and Google wants to make sure that you never lose data in the fragile environment that is the Internet browser. But the same philosophy is at work in Picasa, their desktop application picture manager. There, the Undo button has basically taken over for the Save button. The result is a form of version management.
Full-blown versioning takes a little time and effort to incorporate into a program. However, the ability to maintain drafts goes a long way towards doing the job. When I close a program, I shouldn’t need to make decisions about saving. Instead, the program should maintain drafts of the files I have modified. When I reopen the program, the drafts should reappear.
Unobtrusive mechanisms for maintaining state is what it’s all about. Taken a little further, the principle can be applied to all our interactions with a computer. Booting up, opening and closing programs and files is still done in much the same way as it was 20 years ago. And the way these processes were designed was heavily influenced by constraints that no longer apply. With the increased speed and reduced storage costs of today, software makers have the luxury of designing programs based on how the user naturally thinks. That means never asking the question “Would you like to save your changes?”