The Future of Applications

Thursday March 22nd 2007, 8:51 pm Printer Friendly Version
Filed under:Software Development, Firefox, World Wide Web, Software Industry
Posted By: Matt

Everyone agrees that software applications are changing in a fundamental way, but no one seems to know exactly how. The massively hyped Web 2.0 phenomenon is all about moving applications to the web and using equally hyped AJAX techniques to simulate the experience of using a desktop app. One of the earliest examples was web mail, which has been followed by online calendars, web processors and even spreadsheets. But soon people were arguing that moving everything to the web was overkill; instead we should “webify” desktop apps, giving them the connectivity and mobility of web apps but with the slickness and responsiveness of traditional software.

And then there are those who contend that any app you have to download and install is doomed to failure. Certainly there’s something to this: witness Grouper and iMeem, both of which started out as rich clients but ended up repositioning as more traditional web portals. On the other hand, there are many counterexamples, the most prominent of which is Skype. Maybe the answer is adding offline capabilities to web apps, so you can use them even when you’re not hooked up to the net and synch to a server when you reconnect. Or Firefox extensions, which combine many of the advantages of desktop and web applications and might take the world by storm if they weren’t restricted to a specific brand of browser.

Existing Approaches Compared

Here, roughly, are the strengths and weaknesses of each approach:

Strengths Weaknesses
Desktop apps Fast, responsive
Total control over the computer
Data resides on the local disk
Don’t require internet connectivity
Must be pre-installed or downloaded
Might conceal spyware and viruses
Hard to use on someone else’s computer
Generally don’t run on all operating systems
Web apps No need to download or manage
Run everywhere
Data is always accessible
Less control over your data
Slower and fiddlier to use
Webified desktop apps All the strengths of desktop apps
Connectivy/ubiquitous data access
All the weaknesses of desktop apps
Offline-enabled web apps All the strengths of web apps
Don’t require internet connectivity
Potentially more control of data
Same fiddly web interface
Still tend to rely on centralized data storage
Firefox extensions Run on all major operating systems
Can modify whole browsing experience
Total control over local machine
User interface as good or better than web apps
Easier to download/install than full apps
Only work on Firefox
Still require download and management
Can render browser unstable

Clearly the last three categories trump the first two and can be considered genuine improvements, not alternatives. In other words, old-school desktop and web apps are on their way out. The newer approaches offer incremental progress but are all lacking in certain areas. And with clear trade-offs involved (can you have ubiquitious data access without yielding control over your data to some third party?), it’s probably impossible to gain all the advantages without suffering some of the drawbacks. Some people feel that the ability to run everywhere makes up for the shortcomings of web user interfaces, but not everyone agrees. Extensions are superior in many ways but lack ubiquity and have the major (some would say fatal) flaw of running in an environment (the browser) that is less robust and battle-tested than a full-blown operating system.

Naturally the right way to develop and deploy an application depends to some degree on what it does. The first apps to exploit the web model were straightforward information storage, management and retrieval tools. Companies don’t hesitate to develop these ad hoc to solve specific tasks like digitizing a product catalog or customer database, so the ease of developing web apps for data entry (forms) and presentation (dynamic web pages) is a big plus. Sophisticated editing or design apps with a highly dynamic user interface are a different story. Nonetheless, there is clearly convergence going on, and even the slickest most sophisticated UIs are starting to move online.

Meet the Contestants

What would the ideal application look like? Drawing from the above table, it would:

  • Be fast and responsive
  • Install invisibly and go away when you don’t need it
  • Run on any computer (or device)
  • Have enough control over the local machine to provide the best possible user experience
  • Entail minimal risk of exposing the user to viruses and spyware
  • Make your data and applications available no matter where you are
  • Give users total control over the privacy, security and perennity of their data

A pretty tall order, but perhaps not unattainable. The only real candidates to provide a platform that will support this type of application are Microsoft, Google, Adobe, Apple and Mozilla (a conclusion similar to the one reached by another intriguing Read/Write Web article). Until recently, Sun would have made this list as well, but Java has completely lost its momentum in the last couple of years, and it doesn’t seem like most people see it as a serious contender anymore. (Some insiders have told me that this view is starting to become prevalent even inside Sun itself.)

On the surface, Microsoft would seem to have the strongest hand. I can say from experience that it’s a hell of a lot easier to program a sophisticated app using .NET than with a nuts-and-bolts language like C++. Its class library is extensive and elegant. In fact, .NET is very much like Java with a slightly better programming language (C#) and better user interface facilities. There are even efforts to turn .NET into a multiplatform environment. Nonetheless, .NET seems to suffer from the same fundamental problem as Java: it’s what the Germans would call a “Warmduscher” (literally someone who takes warm showers). C# doesn’t give you the same control and performance as C++, but it’s a lot heavier to code in than an interpreted scripting language like JavaScript or Python. As with Java, deployment is also a big issue. Installing .NET is a time-consuming and clunky experience.

The bottom line is that both C# and Java serve software developers better than end users. They don’t fulfill many (if any) of the criteria listed above, they just make software development a whole lot easier. As a result, users have little incentive to install the requisite platform, so software written for it struggles to achieve critical mass. It’s quite likely that any platform this heavy simply has to be pre-installed to have a real chance. (Why this isn’t the case with .NET is a mystery to me, seeing as the vast majority of personal computers are shipped with Windows, but whenever I want to use a .NET application, it always seems to require a newer, better version of .NET than the one that I already have.) This is why, for all their respective merits, Java failed to take off and .NET looks to be on the same dead-end path.

Google is the heavyweight primate of the web world, but it’s actually the weakest contestant in the application architecture stakes. I wasn’t even going to include them here until I stumbled recently onto Google Desktop. The latter has long been one of those applications that I’m planning to try out but never get around to. What pushed me over the edge was the desire to check out their new widget infrastructure. My initial impression is that, while I find the widget approach very appealing (more on this later), Google’s offering still needs a lot of work if it is to compete in the big leagues.

Installation pain is a lot better than .NET but still far from the instant availability of web apps. In fact, it’s probably quicker and easier to install Firefox, which is runs practically everywhere (Google Desktop is Windows-only). Google is using their excellent local search technology as a trojan to get their operating environment onto people’s computers. But the two don’t have much to do with each other inherently, and there are no killer apps among the widgets I saw. To top it off, their sidebar runs only on Windows and feels a bit leaden. Perhaps Google can become a real contender in this space, but if so they’re going to have to pull off some real Google magic: widgets that install instantly (no bulky runtime, please), respond smoothly and run everywhere, for starters.

The real frontrunner is arguably Adobe. Flash is the most widely deployed runtime on the planet, reaching 98% of all desktops. This gives Adobe the most important asset of all: ubiquity. Meanwhile, one of the biggest drawbacks of Flash, its closed nature, has been tempered recently with Flex (a markup-based UI language that compiles down to Flash) and the open sourcing of ActionScript. And yesterday (as I write this) they released the first alpha version of their killer platform play, Apollo, which frees Flash applications from the confines of the browser and gives them access to the file system and other local resources normally reserved for desktop programs. It’s certainly easy to imagine software vendors opting for Apollo with the assurance that their apps will run on any platform, inside or outside the web browser and have that sexy Flash look.

Meanwhile folks are rapidly waking up to the fact that Adobe’s main competition is actually not Google or Microsoft, but Mozilla. Firefox is far from ubiquitous, of course, but Mozilla has an ace up its sleeve as well: XULRunner. The latter (hopefully with a spiffier name) is slated to become the underlying runtime for Firefox 3.0 as well as a standalone platform for developing cross-platform apps. It’s already being used by such high-profile companies as Joost, the new TV-on-the-internet play from the makers of Skype. One cool thing about XULRunner is that inherits all of Firefox’s fanatical devotion to web standards. Another cool thing is that the runtime will be shared across apps, so if I install a XULRunner app, I’m secretly getting the runtime as well. A few killer apps like Firefox, Joost, Songbird, AllPeers (and whatever revolutionary new software is quietly brewing in someone’s basement in Bangladesh or Bucharest), and Mozilla will be as widely deployed as Flash. And while Mozilla’s user interface language, XUL, looks drab in comparison to Flash, they also support SVG, which is a true standard that enables the development of very slick, dynamic user interfaces.

The future of applications might thus be XULRunner extensions that function much like Firefox extensions, but don’t require that you use a specific web browser. (Provided we get a solution to the annoying requirement that Firefox be restarted whenever a new extension is installed.) The advantage, when compared to pure web apps, is that extensions have much more (in fact, total) control over the local machine. They are also good at providing features that layer on top of every website visited, like blocking scripts or ads. Web apps, in contrast, tend to work as isolated silos.

The biggest weakness of both Adobe’s and Mozilla’s new platforms is that they require manual installation of apps. This is because they need to make sure that their runtime is on the target machine. (Though unlike Microsoft or Sun, they are lean enough to package it with each app without causing unacceptable bloat.) Whoever gets onto a critical mass of desktops first will be able to start shipping apps without the runtime, which could lead to click-and-run deployment, just like web apps. At that point we’ll be very close to the software utopia I described earlier.

Through the Crystal Ball

In the long run, I think that obviating the need to install software will have the most revolutionary effect on the application landscape. As geeks, we tend to forget that the vast majority of users are terrified by the prospect of downloading new applications, for both technical and security reasons. And even the tech savvy among us spend an inordinate amount of time troubleshooting problems stemming from some new software goodies we’ve inflicted on our computer. And (highly efficient) slobs like myself end up with a hard disk full of crap since we don’t take the time to remove applications until our disk starts getting dangerously full.

The solution is simple: preinstall anything that might cause problems, with extensive testing to ensure that there are no conflicts or other unpleasant surprises. And limit downloading to web applications, which do their thing in a restrictive sandbox and go away when you’re done with them. Interestingly, this seems to be exactly the path that Apple is taking. Power users may bitch and moan about the lack of openness and extensibility on Apple’s devices, but the reality is that there’s less and less that isn’t covered by the combination of Apple’s excellent operating system and iLife suite, normal web apps and desktop widgets. The only problem is that the tight control that Apple maintains over its hardware and software, the very strategy that makes its applications so appealing, is a huge barrier to achieving critical mass across the entire personal computing landscape.

The common thread that unites these scenarios is the notion of apps as widgets that download and install automatically, like web apps. Innovations like Mozilla’s offline storage and WHAT WG’s client-side storage will give these widgets more of the capabilities of desktop apps and Firefox extensions, but without the total control over the local machine that makes the latter potentially dangerous. Despite the early lead of Google, Yahoo and NetVibes in the widget space, Adobe and Mozilla are in the strongest position to drive this approach into the mainstream. Apple is something of a dark horse and could trump the competition if its slick combination of hardware, software and auxiliary devices (combined with the lackluster reception of Vista) finally drive its market share out of the single-digit doldrums. Despite the perception that Microsoft, Google and Yahoo are battling for supremacy on the web, none of them has a compelling offering for software developers who want to create cross-platform apps of this type. Unless they have something up their sleeve, we may be about to witness a radical changing of the guard.


13 Comments »

  1. The part about Java on the client side is interesting because I’ve seen a bit of the opposite lately. While Applets were on decline for a long time I’ve now come along quite a few new applets and WebStart programs lately and they feel much snappier than a few years ago and still have many advantages over other solutions, not to speak of all the projects that use the Eclipse RCP and are somewhat “webyfied”. It will be interesting to see where this all leads.

    Comment by tr — 3/22/2007 @ 10:22 pm

  2. I’ve been spamming this on a couple of blogs so sorry, but I like XULRunner and think it stinks that its looking like Mozilla has changed their strategy about shipping Firefox 3 on XULRunner.

    From the roadmap it gets a P3 priority, and the comments read:
    “In Progress; we can ship without it”
    http://wiki.mozilla.org/Firefox3/Gecko_Feature_List

    And Brendan Eich’s comments here on that:
    “We anticipate versionitis and under-use of any standard XULRunner shipped under Firefox 3. I’m not sure where that plan sits, but to me it looks like a malinvestment.”
    (http://www.webstandards.org/2007/03/12/which-is-better-for-the-web-single-vendor-homogeneity-or-ossweb-20-style-innovation/)

    Comment by enefekt — 3/22/2007 @ 11:18 pm

  3. Hi,
    I am Javier, the founder of Trendirama.com, a community of online amateur writers. We write about the future of everything, and I would like to invite you guys to write an article on the Trendirama.com website, perhaps “The future of applications” there or on whatever you are passionate about? It is up to you, you choose the subject.

    You would get a link back when you link to your own article, if you wish.
    You can even re-use some of what you have here, in the last part of the article, “your views and comments”. That would save you time and still be interesting for readers.
    Don’t underestimate this opportunity!

    Failing that, if you like the project and you can help me to promote it -even if you don’t write- it would be great.
    By making this valuable information available online for free, I truly believe we are helping to make the world a better place.

    And you could do your bit for the world too.
    Your help is appreciated, and if you let me know your contribution, you’ll be rewarded appropriately in due time. If you link to us or mention us, we can link you back too.
    You can even use our valuable articles on your websites, provided that you link back. Any better offer than that?!

    Look forward to hearing from you or read your article in Trendirama! Join us!

    Best regards
    Javier Marti
    http://www.trendirama.com

    Comment by Javier Marti — 3/23/2007 @ 3:41 am

  4. I would agree, XULRunner looks like an ace up the sleeve. Why more work isn’t put into it I don’t understand. Songbird, Joost, Komodo, lots of “XUL Darkmatter”, should make it clear that a small, cross-platform, web-standards-powered, client-based platform is what app developers want to build on.

    Firefox can be that platform, but XULRunner seems like a better approach. I mean, you can build Firefox extensions that don’t require you to open “Firefox the Browser”, though a firefox.exe will show up in a listing of the processes running on your computer. I suppose that XULRunner will eventually come to fruition, it just seems like everyone else in the market, except maybe Adobe, is fumbling around in the dark with their pants down, so NOW would be a good time to get ahead of the other horses.

    Who else has support for XHTML, SVG, Javascript + JSLib features, XForms, CSS, XBL, and XUL, with built-in facilities like automatic app updates and spell-checking? Its a rapid application development platform a la mode.

    Comment by mawrya — 3/23/2007 @ 3:58 am

  5. I’m so glad you posted this article. I’ve had the same thoughts or feelings for a couple years. It just looks like each one of these big tech companies is looking to the same thing, but they are all coming from different angles.

    I got excited when I first found out about XULRunner and just dreamed of the possibilities. That’s why I came to find out about AllPeers, even before your private beta, because I knew you were on to something.

    I have never been able to see in words what seems to be happening with the “future of applications” and it seems you nailed it down well. I believe the answer is there, but it’s just waiting to be found.

    Comment by Dan — 3/24/2007 @ 12:44 am

  6. A terrific article. I am teaching a class that is based on the foundations of this - in terms of emerging paradigms - in New York City. This is excellent food for thought.

    Comment by Sanford — 3/24/2007 @ 4:13 pm

  7. This is an awe inspiring article and for which I have been waiting to read for a long time. I agree with the context and the content of the article. More so because it rhymes with our own efforts at NetAlter, where we plan to develop applications that offer rich/thin/smart client features and platform independent. In addition, we aim to provide the SOA infrastructure for fostering applications as web services rather than standalone solutions. NetAlter also plans to form a grid using advanced P2P technology which will enable developers to develop grid enabled applications and deploy them over the netalter network.

    I am personally really excited because, regardless of who succeeds, the future is in distributed computing.

    Comment by Gurudatt Shenoy — 3/27/2007 @ 2:11 pm

  8. Hi Matthew,

    You have a very cool blog here…loved the content.
    U know there is an awesome opportunity for people like you who have ur own blogs n sites…I came across this site called Myndnet.com…it’s a platform for people to buy and sell IT related information. and everytime you sell some information you get paid for it…Good money for people like us in the IT domain. Here the link http://www.myndnet.com/login.jsp?referral=alpa83&channel=UZ

    Sign up is free…check it out…
    You can contact me at my id here for more questions : barot.alpa@gmail.com

    Cheers
    Alpa

    Comment by Alpa — 3/29/2007 @ 10:56 am

  9. Loved your insights. We actually came to a similar conclusion betting on webified apps, and on the Flash player and have developed G.ho.st (the Global hosted operating system - ) to provide a Web operating system for such apps. This brings the same conveniences of an offline operating system - a single desktop, single file system, single sign-in. Also we too chose the Flash environment for G.ho.st although we might move to Ajax if that environment matures enough…

    Zvi

    Zvi

    Comment by Zvi Schreiber — 3/30/2007 @ 4:25 pm

  10. Wow. A variation of this article on applications should be featured in our website!
    I am Javier, the founder of Trendirama.com, the fastest growing community of amateur writers writing about The Future of everything. I would like to invite you and your readers to join us and write an article there.
    It’ll give you more visibility, and since you wrote most of it already, it’ll be easy for you. You only have to answer a few questions within the article, that will make it even more powerful and interesting. This questions give readers concentrated information to readers, and make the articles more valuable.
    Join us!

    Best regards
    Javier Marti
    http://trendirama.com

    Comment by Javier Marti — 4/9/2007 @ 5:48 am

  11. The blessing/curse of Firefox is that enables all five kinds of apps, and Mozilla has little information explaining any of it except for Firefox extensions.

    I’m still confused whether someone running Firefox 3 will be able to do a 1-click download of a XULRunner “Webified desktop app”. All the XULRunner-based apps ship their own runtime instead of relying on Firefox 3, and I agree with Matt’s post that any .exe install is a big negative.

    Comment by skierpage — 3/23/2008 @ 8:09 am

  12. Skierpage, there’s a good chance we’ll see more of this in Firefox 3 thanks to the new -app switch (see http://browsing.justdiscourse.com/2008/01/29/the-runtime-wars-aka-xulrunners-exaggerated-demise/).

    Comment by Matt — 3/23/2008 @ 6:41 pm

  13. You write very well.

    Comment by Nysa — 10/28/2008 @ 12:36 pm

Trackback URL RSS feed for comments on this post.

Leave a comment

Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

(required)

(required)