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

    Published by Matias Woloski on November 4th, 2005 6:56 pm under Architecture, General

    No Comments

    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

  • Leave a comment

    Your email address will not be published.

Tags