The Web App/Smart Client Discussion Continues

Since posting my response to Rob's blog in the wee hours this morning I've gotten some pretty good feedback including a response from Rob himself asking me to "Show Him The Money" pointing out that nobody is doing smart clients, at least for consumers.  Before I get into that though, let me try to dispell another web application myth.

4.  Web Applications Don't Require Installation
What exactly do you consider an installation?  If an installation means copying files down from a server to your local hard drive and then executing them, web development definitely requires installation just check your temporary internet files folder.  If you mean registering an application in the Registry and on the Start menu, then web applications still require installation only rather than being specific for your application you have the browser application already installed.  So how do you get a zero installation?  You don't.  Instead you download scripts in the form of Javascript and/or HTML and you execute them on your machine in your browser, hoping and praying that the browser application will save you from letting that code wreak havoc on your computer.  As we all know, browsers can't be trusted to catch everything.  Since zero installation doesn't actually exist, I would definitely prefer my downloaded scripts to run in the .NET CAS sandbox instead of an application written before most current hackers learned their ABCs. 

Okay, on to Rob's reply.  He starts with a quote from PC Magazine, the premiere source of relevant information ads on the computer industry.  Industry "journalists" see trends wherever that month's issue says they should be.  Very few of them looked into Windows Live Services beyond the mesmerizing affects of an AJAX portal to see that the really useful services all involved smart clients.  So I wouldn't put too much stock in what they consider a trend.

As for showing you the money, I'll list out the smart client applications that consumers can use but you are right that there aren't many to be had.  The question is "Why not?"  The anser is Time.  Rome wasn't built in a day and it's going to take a long time for people to get over the pain they felt distributing old installed applications to see that new technology has enabled them to build something better than a browser application.  AJAX is just a Band-Aid, while it might help in the interim only time will actually heal the wound.

So here are some Whiz-Bang Smart Client Applications you can download now based mostly on what I have installed on this computer.  If there's any confusion as to why I consider them smart client apps, I'll address it.  Anybody reading this should feel free to point out the ones that I've missed as I'm sure there will be some.

  • Trillian (my favorite IM tool)
  • RSS Readers (Any of them that cache the entries to read later will do, I'm currently using Pluck)
  • Multiplayer Games (America's Army being one of my favorites)
  • Visual Studio
  • Media Center (Guide updates are downloaded and stored locally)
  • Microsoft Antispyware (Beta)
  • BitTorrent
  • Folding@Home/SETI@Home
  • Remote Desktop Connection
  • Any FTP Client Software
  • My wife's MLS System
  • DriverGuide Toolkit
  • Adobe Products (Photoshop, Acrobat, etc.)
  • Quicken/Quickbooks

So Rob, I'll take that bet.  1 year from today we'll blog about the best consumer applications and then I'll let you take me to lunch.  I'm thinking Del Frisco's!

 

11 Comments

  • Any of these written completely in .net?

    I still stand by the argument that winform apps are too slow for the average computer.

  • I don't think any of these are .NET applicaitons but Smart Client apps don't have to be written in .NET. As for WinForms being too slow, surely you don't think web apps are faster.

  • What is the definition of Smart Client then?

  • Smart Clients is actually a pretty vague concept so let me tell you *my* definition.



    A Smart Client application is one that:

    1. Uses local resources (CPU, Disk, Peripherals, etc.) to do it's work.

    2. Provides the user with a very interactive interface in which they do not have to drive every action.

    3. Is network enabled to extend its functionality or for centralized deployment.

    4. Can function when the network is not present (offline mode).

  • Lots of online games are smart clients. Halo 2, Half-Life 2, F.E.A.R. (which I recently beat). They all have single player modes but can also be used to play online.



    Some FTP clients keep copies of files cached locally. Those would qualify as smart clients, but you're correct that I should have been more specific.

  • The list of applications you have are great candidates to be non-web apps. These will continue to exist because they make sense as non web apps.



    The difficult question, and the one I think Rob is talking about when he says show me the money, is on what is today done as a traditional web app: e-commerce web sites.



    Will it ever make better business sense for e-commerce sites like Amazon, Dell, newegg.com, etc.. to stop building on their web application and just focus on building smart client apps.



    I sense the answer is a big fat NO.



    They may build a smart client application, but it will be an additional nich service for the handful of users that want it.. not their bread and butter.

  • Paul,



    I wasn't trying to be confrontational, but are those games really smart clients? Maybe it is the fact that I have seen the progression from primarily single player games evolve into multiplayer games that had better damn well offer a single player also in case my network goes down. Grats on beating F.E.A.R. btw.



    Thank you for redefining my idea of what a Smart Client is though, it is true what they say, you learn "something" every day. =)

  • Paul,



    Surely Rob's point was for you to come up with a list of Smart Client apps that could've potentially been developed as a web app.



    Glancing over your list, I don't think first person shooters, BitTorrent clients, FTP clients, Media Player and AntiSpyware belong in that category.

  • What about WPF/Avalon Web Browser Applications? They satisfy 1,2 and 3 from the Paul's Smart Client definition list, but not 4 - there is no offline mode.

    In my opinion, the still should be considered Smart Client applications.

  • Paul,



    Just a great topic to discuss. Here is another important Smart Client attribute that I'm not sure how many of those listed applications meet.



    <b>Distributing Application Updates</b>



    I'm sure there are some applications (sort of Smart-Client) that informs you of any latest versions that are available. But they are not real Smart-Client applications in the sense to update themselves without the user downloading and installing the apps. Real Smart Client apps should just get an acknowledgement from the user to upgrade the app and once the user acknowledges then the Smart-Client attribute of the app should update itself with minimal or zero user interaction.

  • A smart client is simply a client that is (in the context of a given application) responsible for a portion of the application logic.



    No more. No less. The defination is not a difficult one.



    In the context of a Web application, if application logic is being performed in the browser then the browser is being used as a smart client.



    A dumb terminal is a client that is merely responsible for I/O. A browser rendering Web pages with no dynamic client-side element is acting as a dumb terminal.



    Now....



    Everquest is a smart client because the application is a client-server one with significant portions of the application running on the server.



    Programs like Half-Life 2 etc pose and interesting view. They are full applications that are peering with other applications. They're not servering to their peers. To view them as clients one has to view the peered relationship as a client-server one... I'm not saying such a view has no validity, merely that it's not one I find helpful most of the time.

Comments have been disabled for this content.