Filthy Rich Clients

Starting to hear more about filthy rich clients, which I guess came from this presentation at JavaOne, by Christopher Campbell, Romain Guy, Chet Haase, and Kenneth Russell.

Animation and whizzy graphical effects can be totally gratuitous, but they can also be used to make applications more effective and users more productive. This session examines fundamentals of timing and animation and shows techniques for implementing cool effects on Swing components. It also discusses recent advances in combining 2-D and 3-D effects in the Javaâ„¢ Platform, Special Edition (Java SE) 6 (“Mustang”) release.

Richer desktop clients is one likely, positive, consequence of Ajax going mainstream.

If you’re the leader in desktop apps, think even harder. Regarding Office vs Writely and others, MS’s best bet is to fully embrace Ajax and at the same time exploit the full power of the desktop for the standard version. That’s costly maintaining both versions, but if they don’t follow a dual strategy, they really have no case over a decent Ajax offering.

The same could be said of Sun wrt Swing, and anyone else with a stake in the desktop. What sort of things should Filthy Rich Clients do? Clearly, they need to attack Ajax and the web where they are weakest, which comes back to the What Ajax Can’t Do post. The post was interpreted by some as saying “What we still need to implement in browsers”, but that’s only part of the story. It’s also about deciding where and how to deploy applications.

Clearly, the desktop hasn’t changed much over the past couple of decades. In particular, the hardware setup is virtually identical. A now-commonplace joke in HCI is that the average public urinal/toilet/basin knows more about your location than your PC (leading to some interesting usability issues). Most people carry phones, IPods, and other gadgets, but only the geekerati bother to hook them up. So in aiming for filthy rich clients, the whole hardware setup needs to be examined. Hopefully the Nintendo Wii, with its commercialisation of Revolutionary input devices that track location and angle, will inspire. There are clearly some fun, and still very practical, applications of such devices. Minority Report data mining!

How about the software? What could desktop software do that Ajax can’t? Clearly, rich graphics has a long way to go. Even Flash can’t come close to what you see in the latest 3D games. I hope mainstream software will (continue to) take inspiration from gaming paradigms, since that’s where a lot of the innovation happens. The whole idea of “Second Life” and friends as a platform, rather than a “game”, offers a lot of potential. I’m seeing it as a higher-bandwidth way to express yourself, especially for non-programmers to articulate fairly complex software concepts. And it will be interesting once combined with VR-like hardware devices. In more immediate terms, the best innovation for most software right now would be to act as a faithful sidekick. That is, to shut up, sit in the background, watch what’s going on, and quietly gather information, ready to be called upon at any time. To take on Ajax and the flight to the web, now is the time for the desktop to embrace intelligent agents.