The Death of the Smart Client is Greatly Exaggerated
I was watching a great presentation recently from a Berkeley professor who came to speak to a bunch of senior people in my division. He threw out a lot of interesting sayings, but my favorite one may have been "the most dangerous three words in the investment community is 'This time, it's different!'" When I see a lot of what is going on in the industry, I get the same sense of deja vu. Advertising business models. The death of the PC. The idea that XML will change the world. And, of course, the network is the computer--where the offshoot is that the browser is more important than the OS. People, we've been here before. Now, don't get me wrong--I do think things are different this time and I do believe changes are afoot and I am bullish about those changes. However, the MVP Summit that took place a couple of weeks ago was a great reminder of the fact that the world is not 100% sold on browser apps and there's plenty of power in the "Smart Client".
It started when I met up with Billy Hollis for the first time in a couple of years. Billy and I spent a lot of time together during my days in patterns & practices, but hadn't seen one another lately. Billy, the King of the Smart Clients, still felt pretty good about the importance of client apps and the fact that ASP.NET did not need to be the lone choice for developers out there. It was nice to get the gospel (and those who know Billy realize that with that southern accent, gospel just seems like the right word) that didn't imply that everything needs to be intermediated through a browser--which, in my moments of frustration on the topic, make me think of being told all food needs to be fed through a straw. The next day, I met up with a host of MVPs for a breakfast that was organized by Alan Griver (aka Yag) from our team. We shared some of the social computing stuff that we're working on and integrating into the upcoming releases of Forums and Blogs. While the response on the new ideas was good, there were still many who loved NNTP and wanted it supported. It mostly wasn't about the technology, but rather about some of the things you just can't do with a browser app, such as successful off-line operation. I guess AJAX isn't that asynchronous.
No matter how wonderful AJAX becomes, it will never provide a richer customer experience than a smart client. I know--there are those out there who will disagree. Hey, I know I prefer poking around an AJAX site instead of downloading an EXE file, installing it, and then finding out it stinks. In many cases, I admit that I don't bother getting that far. But to rely on a browser as the sole means for access? I don't know if that's an ideal long-term strategy. Personally, I think it's the difference between the person you want to date and the person you want to marry. A browser app is easy, quick, no fuss, no deployment hassles, install files, etc. It is one URL away and, if you don't like it, you move on. No commitments, no strings attached. It's dinner and a movie. A smart client requires deployment, installation, OS compatibility (though browser apps have to now deal with browser compatibility), DLL installation (notice I didn't say "hell"--we don't have that any more, right?). etc. It's a much more committed relationship, in a sense.
Many of my single friends love the former, but (and I suppose I say this as a happily married guy) the browser app is fleeting in the long-term when compared to the benefits of the smart client once you know you're ready to commit. Once you are sold on the service, you have to be frustrated by the things you can & can't do in the browser. All this computing power and I am at the mercy of my network bandwidth. The sandbox nature of a browser is great when you don't trust a site, but when you do (as I do with Amazon, eBay, and several other established brands that have given me great customer service and earned my trust), it's incredibly limiting. As one example of someone who saw this and wouldn't compromise on the experience is Apple with iTunes. You would think Apple would rather create a browser-based application with a plug-in than have to support writing an application for (gasp!) Windows. But they continue to write and update it. Why? Because I don't think you can build that rich an experience through a browser. Will you ever? Perhaps, but by then, client capabilities will have increased as well and Apple will have done something new that the next versions of IE, Firefox, and Safari won't allow.
So what happens next? I have a belief that technological progress is often affected more by trends than by need or opportunity (not always, but often). If people believe AJAX-enabled browser applications are the future, the Smart Client becomes an after-thought and investors/large companies/etc don't want to go in that direction. I am hoping that is not the case here. I think the rise of APIs, which is thriving as a mash-up technology, could give way to an increased number of smart client applications. An example that has worked for me in Flickr. I like the web API, but I've started using some of the smart client apps to handle the heavy workload tasks (like batch uploads). The Flickr Uploadr is a great utility, but doesn't get the "ink" that any Flickr mashup gets. Personally, I think the ideal would be to do what Microsoft gives you in their messaging offering. To give Outlook & Exchange their due, you have two ways to access your e-mail. There is Outlook for richer processing of data, off-line usage, and access to the hard-drive for archives. Then, there is Outlook Web Access when you are on a kiosk or another person's PC or if you don't want to start up Outlook and just need a quick & dirty way to check if you have mail. Personally, I use both very liberally. I think you could make a really good Amazon application. Or eBay. Maybe they could happen. Maybe I could beg Billy to write them...