Rob Howard: Is "Smart Client" a "Dumb Idea"?

I've read this post from Rob Howard yesterday and found it very interesting.
.
Some background on Rob Howard: He worked on MS in the ASP.Net team on the 1.1 version. He always had a big focus on community. For the ones that knew aspfriends.com lists (now aspadvice.com) and the online ASP.Net forums he always participated actively on them. He left MS one year ago and founded Telligent which built the famous Community Server product. An engine to run blogs, forums, photo galleries and stuff related to community oriented sites. Indeed we at Southworks are running it as the blog engine.

In case that you don't want to press the link to go to the Rob post, I've paste it here and commented it below.

Back in April I did an interview with The Server Side where I made this statement in an interview:

"... the level of growth and the adoption [of ASP.NET] and the smart client market, or the smart client adoption in the community its definitely very different. So I think that there is actually a tremendous amount of opportunity [for Smart Clients], I think if Microsoft matures its technology, things like XAML and some of the new things that are coming out, I think there is going to be more and more opportunity for the smart client developers to do some very powerful things, because there is a lot of flexibility that exists on the client machines aren't being taken advantage of. People are buying these high-end, dual-processor one gig RAM machines and then using a web browses to run their application. When you look at that capability you think, gosh, how can I use that? How can I use that to make my experience for the end user that much better and so you're absolutely going to see more smart client applications"

I've been thinking about that statement a lot lately. At the time I made it the statement of "smart or rich" clients made a lot of sense, but the more I've thought about it - and then read about some of the new "web enabled" offerings coming out of Microsoft like live.com - and being part of a company building an ISV business around Community Server I've had a change of heart.

Why? Building web applications and more importantly supporting web applications is easier and costs less. It also comes from talking with and interacting with my non-tech savy friends: installing software is misery; most OS specific software is not consistent, i.e. the user interface is always different, and it's so incredibly challenging to support and upgrade. Watching someone like my wife use a computer makes me realize that she, as a pretty typical user, does about 95% of her computer usage through the browser: hotmail, amazon.com, ebay.com, wellsfargo.com, quicken.com, etc. The other 5% is spent in Word, but even those uses (printing cards, printing labels, etc.) could be easily replaced by a web interface. Case in point, if I bought my wife a Mac as long as it has a web browser she would be absolutely content.

Are there applications that should not be web applications? You bet:

1. Web browser - it's frustrating that Microsoft takes SOOOO long to ship software. And more frustrating that it took them this long to update Internet Explorer. There is still so much that needs to be done. Especially now that more and more people think of the web browser as the "host" for their software. But, web browsers (FireFox included) aren't quite there yet. Hopefully now that MSFT is back building web browsers we'll see some progress again (competition is good).

2. Office tools - Microsoft Office. Buy it, install it, use it, you won't find anything better. Enough said.

3. Developer tools - Tools for writing software. More specifically great tools like ASP.NET and Visual Studio 2005 for writing web applications.

4. Games - I just can't imagine CounterStrike running in the browser yet :)

Sure, there are lots of other little applications such as calculator, messenger, etc. that belong as desktop applications. Google gets this and I think pockets within Microsoft get this too. But remember, the fuel for Microsoft is license sales of Windows and Office. Anything that threatens that is taboo. And the problem is that the OS and Office tools are close to reaching the "yeah, so what" point. That's: "yeah, so what, there is another verison of [Office/Windows] available, why do I need it?"

Don't get me wrong. I'm looking forward to Vista and Office 12, but I'm also a big computer dork who thinks this new stuff is "cool". The actual end user benefits are incremental and definitely not the gigantic leap forward in stability or usability that were seen in the mid-90s. I'm going to have to pull teeth to get my non-techy friends or my wife to install a new OS or new version of Office -- put simply: they just don't care, it all works already.

A big selling point for "smart clients" is also the "what if I'm offline" problem. The only offline application I care about is email and that problem has already been solved in Outlook. Furthermore, the times I'm actually offline are few and far between and typically at times where being online, such as driving home, isn't exactly a good idea. Practically any urban center has some sort of wireless connection these days. Offline isn't really that big of a problem and is becoming less of a problem daily.

Which brings me around to my point. Why should you care about writing smart clients. You probably shouldn't. If you can write it as web application do it. It's easier to support, faster to author, easier to distribute, and everyone can run it without installing anything. For example, we update software that our customers use weekly (yes weekly). Every Thursday we update www.communityserver.org to the newest version of our software. We don't have to install anything on our customers machines and most importantly we can do this as often as we want.

Are there cases where you and I as developers will still author "smart client" applications? Absolutely, but only when it can't be a web application first :)

Now, my opinion...

Personally, I think that Rob has very good points. This is damn true ""I'm going to have to pull teeth to get my non-techy friends or my wife to install a new OS or new version of Office -- put simply: they just don't care, it all works already". When talking about these end-users all the points stated are more than valid. However developing software is not only aimed to these kind of end-users. There is a whole big world of corporations out there who are seeking to have better front-ends and better workflow solutions with Vista and Office 12 and they will invest in the migration. Nowadays write web applications with rich UIs and kick-ass user experience (ala gmail, google maps, etc) is not as easy as do it in smart-client apps, and the gap will be bigger when developing with WPF.

Mauricio Grimberg (where's Mauricio blog? :) from the MUG architecture maillist also makes a good point: we need to write applications well decoupled and independent from the front-end. That's why I'm putting emphasis in mastering WCF, WWF, DSL, [^UI]n,... but not master WPF. And here we can chain with another subject that Clemens Vasters clearly expose: Visual Studio Overload and the Specialization Gamble

Published: November 04 2005

blog comments powered by Disqus