Why Do People Hate Building Desktop Applications?

Why Do People Hate Building Desktop Applications?

Summary: Paul Graham lays into web applications as part of the reason Microsoft is "dead". During a discussion about that article, someone mentioned to me that they agreed, and they would never build desktop applications again except in Apollo because Apollo made it easy. So now that desktop applications are becoming easier to build, are we in for a "desktop renaissance"? I say yes.


After reading Paul Graham's inflammatory post about how Microsoft is dead, Simeon Bateman and I got into a little back and forth over IM about the merits of what he was saying. I tend to agree with Don Dodge, about both the title of the piece and the "real meaning" of the piece (his update response). But Simeon said something that I think a lot of people feel and is very relevant to the Rich Internet Application discussion:

Simeon: And I think paul is right on with the desktop thing. The only reason I would ever consider building an application for the desktop is because apollo lets me do it easily like a web application.

I would never NEVER build a desktop application.

The desktop thing he is referring to is when Paul says:

Gmail also showed how much you could do with web-based software, if you took advantage of what later came to be called "Ajax." And that was the second cause of Microsoft's death: everyone can see the desktop is over. It now seems inevitable that applications will live on the web—not just email, but everything, right up to Photoshop. Even Microsoft sees that now.

I'm not even going to address Paul's shortsightedness because I'll just get angry, but I wanted to put Simeon's comment in perspective. At least Simeon realizes there is some benefit to building desktop applications, he just doesn't see why its worth it to go through the effort. And he's right, building desktop applications has been hard. It's a pain; You have to create a version for each operating system, and most of them look ugly when you're finished.

As Simeon mentions, this is where Apollo comes in. Really for the first time ever, we can build good looking desktop applications that are cross platform and use rapid development technologies and techniques. Desktop applications are becoming as easy to build as web applications, and that's going to change a lot of things. One of the reasons the web took off is because it's really easy to build applications. It was also very easy to see what people were doing and hack away to create your own stuff.

Apollo may prove to be the catalyst in really getting people to use the best platform (web or desktop) for their requirements. Microsoft has also made it much easier to build good looking desktop applications with Blend and Windows Presentation Foundation. The XAML/C# tandem makes for some quick dev turnaround time, but cross platform is a big deal, and people coming from the web background aren't going to be keen on going to a windows only platform.

But I think RIAs help the entire software ecosystem, from web developers to desktop developers. In the end, with RIAs we can quickly create powerful, well-designed applications that focus on experience. The easier that is, the more developers we'll have chomping at the bit regardless of the medium or specific technology. Then we have more innovation, more competition, and better experiences for the users.

Topic: Apps

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.


Log in or register to join the discussion
  • Apollo: not so good looking

    I'm also a web developer and I agree - there are a lot of benefits to build desktop applications and I'd like to starting developing one, perhaps integrated with my web applications.

    Only speaking about the GUI, some of the goals are:
    a) usability and easier design - since the GUI is shared with the other applications and the whole operating system, building the interface is much simpler than in web applications. This is a benefit from the user's side too, since the GUI is coehrent and already known.
    b) fast: an OS-native desktop application reacts faster than a web application, where big HTML pages or scripts slow down very easly the whole browser (sorry, in my company we don't have enough money to pay JS-god-engineers as Google or Yahoo have)

    Speaking about Apollo, those two benefits are not achieved - how could you say that an application built on it is "good looking"? The GUI is far from a standard OS-GUI: a XUL application, for example, looks much better in Windows or MacOS, although not perfect. When you are developing a desktop application, the *first* requirement is the complete integration with the user interface. It should be similar, not to say the same, to the operating system's user interface: fonts, menu, widgets... As you can see in Adobe Labs, Apollo doesn't do this.
    The GUI is slow too, I've tried the example applications, and the response's times are not fast as I'm expecting from a desktop application.

    As Adobe will solve this big issues, perhaps I may be interested on Apollo. As now, since all my customers are using Windows, OS-compatibily isn't a big problem as you are tring to sell us, and I would follow the old, standard and well known way to develop on the desktop.
    • RE:Apollo: not so good looking

      I'll definitely give you the second point but I'm not sure I agree with the first one. I think you're mostly right, that applications benefit from a usability standpoint when they behave rougly the same, but I think Apollo is targeted at a different set of applications. Another thing that I've come to realize is that Microsoft pays a huge "tax" for things like accessibility, so if you build a desktop app using Windows Presentation Foundation, that accessibility is baked in. With Apollo, it isn't.

      But Apollo is still very much a 1.0 product, so we'll see where they take it. I don't think Apollo is the end all be all answer, but I do hope it shapes the conversation in a big way so that technologies can address your concerns while keeping the development model simple.

      Thanks for commenting bellavite.
      • RE:Apollo: not so good looking

        Thank you for your answer! As first I have to say my mother language is not english, perhaps I cannot explain me very well.

        The target is a different set of applications: well, I have to understand which needs should cover Apollo.
        From your post I understand: 1) cross-platform; 2) easier to build.

        From a developer point of view, it should allow us to use our (sometimes huge) knowledges in web applications (and related tools, languages and servers) to build on the desktop. This means re-using our well tested web approach rather than a "old" only-one-os-approach. From a user's point of view, it allows compatibility between multiple operating systems: if I'm a Mac user, I don't have to bother if the software is only for Windows. Right?

        As now we can already build mixed "web+desktop" applications: look at Firefox plug-ins, or client tools like last.fm or flickr uploader, or the pure-desktop FeedDemon, that is synchronized with the Newsgator on line service.
        All those applications are well integrated with the Web, and *they* look very well on Windows too.

        As you say, the problems here are:

        1) cross-platform compatibility, and related costs
        2) a web developer has to study books and manuals again to develop on the desktop, and to gain a good experience to build solid software

        Apollo focuses on that, but what about a *good* integration about the GUI? What about ready-to-use widgets, IDEs and tools? As now Apollo is only an approach with poor results and uncertain future: it's the first release, and in the meantime we have already more robust (as not easy to learn) approaches and os-side techologies.

        Why should we trust an immature and proprietary platform? What about the unknown Adobe's plans about the future of those techonologies? They are asking to trust their proposal, but - moment - I'm coming from the Macromedia World: I don't trust any Adobe-Macromedia techology until they are completed, and well supported, for years. Remember Central? And Home Site? And CFEclipse? There are here not only corporate needs to reach revenues: here we are speaking about the future of thousands developers, that should choose and embrace a techology for years.
        As first we cannot waste our time, when other more mature technologies are available to do the same things.

        Ok, it may be not easy to use them, but let's speak about what is "easy".
        You say that it's easy to build a web application. I don't agree: I'm a web developer since 12 years, I cannot say that it's easy. It's "easier" when you have reached a huge experience and knewledge about: HTML, CSS, Javascript, Web server, Application Servers, Database Design, Database Administration, Software Design, GUI Design, security, performance, privacy, usability and accessibility. Or when all your expertise is only in one or two of those fields.
        And once you are an expert, you have to solve a lot of other practical issues. Ok, that's our job :) but please, stop to speak about "how it easy to do that". It could be easy to learn, sure, but it's not the point here.

        In my humble opinion, the only big problem here is about the lack of integration between multiple platform; until Microsoft, Mozilla, W3C, Apple, the Open Source world, Adobe, Google, Yahoo etc. don't work together and dont't like to follow the real users' and developers's interests, we could only search a solution that sounds always like a patch. And it sounds very funny (or sad) that those patches are sold from the same worlds as the best solution.
      • Clarification

        "But Apollo is still very much a 1.0 product"

        uhh, maybe you should dig a little deeper. Apollo is an Alpha product. This current release is a preview release. The final release will integrate with OS chrome.

        MS product sucks for one glaring reason, it is not OS agnostic. Run it on Linux natively. Run it on OS X. Give Sparc a try... No luck? That is why MS is going to die. The OS layer is irrelevant.
        • RE: Clarification

          I'm talking about the 1.0 feature set, not what's out there right now. I hope no one is planning on building applications with an alpha product.
  • Web apps will always take a back seat

    Sorry, but untill the entire world is conencted 100% of the time EVERYWHERE then web apps are extremely limited.
    • RE: Web apps will always take a back seat

      Hey No_Ax_to_Grind,

      What do you mean by extremely limited? Do you mean they won't grow any more than they have? That they won't be used by the enterprise? I'm not arguing with you as much as looking for your definition of extremely limited. I tend to be more of a consumer web guy, so it's hard for me to classify them as extremely limited now.
      • Limited in adoption.

        Limited in feature sets.

        Limited in ability to work with large amounts of data.

        Limited by the connection speed.

        Limited in custimization.
        • Tell that to business

          So far web apps for the fortune 100 company I work is the core of the entire business. It has almost totally replaced HR, and streamlined every other business process; to be quite honest you really cant function in this company without their web applications.

          Web apps are the future, from an administration standpoint it is both easier and more efficient to maintain one server (or a cluster) than to maintain that app on a few thousand computers.

          From a business standpoint; if you develop the app yourself on OSS software you have no licensing headaches to deal with.

          On the client side all they need is a web browser loaded with whatever the web app is based on be it java, flash or proprietary.

          From my experience web apps have been: win:win:win

          I doubt we will ever see something like Photoshop in a web app but as far as ERP type software you are stupid if you don't create it as a web app.
          • yes there is some uptake

            but in the big pictue its a drop in the ocean.
  • Do People who use web browser's all the time really know what a desktop app

    This feels like one of those I think therefore I am type discussions and before anyone yells out "God is Dead" I am hear to set the record straight.. This is all chicken and egg theory.

    I would argue that when you use a Web Browser app, you are using the #1 most used desktop application today (Also known as the web browser itself). Before you say the desktop app is dead you should remember that the web browser you fired up in indeed a desktop application. I am sure you are using Microsoft office though too, or OpenOffice at least.

    People forget how rich and fullfeatured a desktop application can be because they are always in the web browser anymore (which I remind you might be the richest enabling desktop app of them all).

    Why don't people know that desktop applications rule, well there hasn't been a lot of them lately, and I don't blame the web for it. I would just suggest that with CPU power up people do things on the desktop we really don't generally consider a "desktop app" anymore.

    The last time I looked at a word processor it wasn't fully internet enabled, but next year we might see one with full library research capabilities (that access the net) automatically.

    The thing is back a few years ago internet aware desktop applications were started on inside of Windows, then someone cried foul, "you can't put the internet in the desktop applications, it's unfair competition.. We are just starting to embrace the Browser, this stinks to high heck of anti-trust.." That was about the time that IE 4 had integrated with the desktop and added XML channels.

    The browser was to many people an "Application", when in reality it was just another window that connected people thru things like HTTP FTP Telnet Gopher and other protocols. I remember a version of Windows beta (a DOS based one) a long time ago that if you opened a window you could make it an IE browser, and switch it to a Microsoft Word window and back and forth through. I also remember when you could open a web page in a regular Windows Explorer filesystem window without opening another window pane and wasting memory.

    All these concepts went by the wayside because someone cried "Anti-trust" which was as far from the truth as possible. So, things changed with the release XP and innovation was stifled.. Back then internet enabled applications had just started to blossom.

    So what's the problem with all that, well it put desktop applications back a few years and us all in the "iron age" for too long..Desktop Applications could be very internet connected etc, if the government hadn't listened to Netscape and company. So where are they at today? Well, ask AOL! They were swallowed up by exactly what they were against.

    Do we use Netscape Navigator today? No, most people use the open sourced "Mozilla" Firefox variant.. I would even argue that desktop applications could be so much more if these companies hadn't been allowed to make the anti-competitive complaint. Even with the government's response to anti-trust has anything changed with Microsoft? No not really.. and those that were complaining aren't even around in the same capacity that they were, mainly because we have evolved and the business cycle has changed, all having nothing to do with Microsoft.

    I don't hate building desktop applications, but most people have worked on web browser stuff for so long they have forgot how to and what really powerful things you can do with them beyond the word processor, spreadsheet, and web browser.
    • You really set the ecord straight!

      "before anyone yells out "God is Dead" I am hear to set the record straight.. "

      So you must be Jesus.

      "The browser is the #1 most used desktop app"
      So many words and that is all you really have to say?
  • Microsoft have sucked all the money and life out of the desktop market

    Simply put : Microsoft has sucked all the life out of the desktop market.

    Most organization have very little per desktop IT budget to spend after the purchase and/or upgrade of each piece of PC hardware, Windows OS, Microsoft Office plus mandatory antivirus and antispyware licenses that Microsoft's products require.

    Most internal desktop support cannot spare the time required to support extra desktop software because of all the regular crashes and malware intrusions that occurs so often with Microsoft's platforms and applications.

    Hosted or server side applications offer a more viable model in terms of both per seat price and effort to support.
    David Mohring
  • It's a joke right?

    No you don'y have to build them for each OS - there is only Windows if you want a market and the same app will work on Win NT4 and up. If you really want to go for the fringe markets you can, but who would want to.

    Desktop apps are ugly? Desktop apps look like Ferraris compared to the Model T ford UIs and look of most web apps. Yes MS does a good job with such things as MS small business server etc but overall Web based apps suck big time in terms of their looks and their interface - I mean how many deskop apps do I have to scroll around to get to buttons or learn a new UI just because the web designer thinks it looks great.

    Finally - its a BROWSER for god's sakes not a development environment. The desktop VIsual development tools make anything else look like toys.

    In the end we will reap what we sow and building apps with gaffer tape and string designed by script kiddies is going to give us some great catastrophes.
  • Desktop apps are anything but dead

    Actually all that has been done, is that some developers have shown a big disconnect between users and developers. Users dwell a lot in the browser because browser apps provide key functionality users want. E.g. interactive news, all kinds of data searches, online communities, online purchases. However many of these things can be done better in desktop apps plugged into web services. This is an important category of RIAs. Browser apps have not shown that the desktop is dead: but rather that people like working with live data. That is sall. That is why programs such as Windows Live Writer and Xbox live are so popular.

    People want sophisticated / desktop apps which cannot be done in the browser: and they want these apps coupled with live services. Users will continue to want trivial web apps. But don?t discount desktop apps. Users haven?t given up on them: they just want them to have relevance.
    P. Douglas
  • Apollo is Just another closed API

    Apollo is just another proprietary API, like Win32 or Cocoa. It's cross platform, yes, but it's under the control of a single company who can pull the plug on it any time they want.

    If you want to write portable cross-platform code that doesn't lock you in to any one vendor, then use an open source cross platform API or an open-systems API with multiple implementations.

    There's basically one open-systems API, and it doesn't support a GUI at all... and that's the traditional UNIX API codified in the core of POSIX... and if you stay clear of things like fork() you can write portable code that'll run anywhere.

    For a GUI app, the most portable toolkit is Tk. With a scripting language like Tcl or Perl in front of it, you can write portable desktop apps with ease... and they're *easier* than web apps.

    Since I already have this, why should I give a damn about Apollo?
  • Why develop for the Web?

    I'm not going to answer your question directly, but let me ask you this in return:

    "Why did we ever develop for the web in the first place?"

    We (as in, companies, commercial enterprises)must have had a reason to migrate away from the desktop in the first place. We're going back about 10 years now, but if memory serves me correct, we wanted to easily manage source code and version control. We didn't want to leave installations in the users hands. Time to production for bugs and enhancements were quicker, and we knew that all users would see them.

    We did this, even at the sacrifice of the "rich" interfaces and the processing power that the desktop could give us. Now, desktop apps haven't gone away - only last month I bought and installed TurboTax, for example.

    10 years after web based applications exploded onto the scene, we have a new arsenal of UI tools to make the experience better.

    Having said all that, why WOULD we migrate back to the desktop? I know you sometimes need to use the hardware resources - games are a good example, or a USB interface to a hardware device.

    It seems to me, and it hasn't been said in these exact words, that MS is saying "the desktop is where its at" - and I've yet to figure out why?

    I think alot of people are going through the same thought process, but I think they are being asked the wrong question.

    Just MHO,

  • Bla Bla Bla...

    Apollo is just another new plumbing environment that doesn't change a bit about the fundamental integration problems in the software world today. It will probably add more integration problems to the desktop environment.

    Let's see, what do I need to create a web application: HTML, XML, JavaScript or ActionScript, Sql plus some glue language like PHP, Python, Java, .Net or whatever? Who the heck thinks that is simple? Why do I need all this to add to my problems when developing a desktop application? Have any of you ever seen a web application capable of providing interaction and functionality just a little close to what a mediocre word processor can do? I never seen so much ugly code in over 20 years and now it's coming to the desktop packaged in an IDE.

    The reason Apollo has a market is obvious. 95% of all developers have inadequade software engineering skills and today most of them are web developers. Instead of re-schooling them its easier and cheaper to change the tools to fit their skill level. Managers also don't want well crafted software, they want shorter time to market and great looking apps that attracts customers.

    In many simple cases Apollo will probably do but its hard for me to see what it really does better or faster than other environments except for producing lots of animation very fast. My experience with Flash is that it fails when the software problem is just a little bit more sophisticated. I bet that will be the same with Apollo.
  • Servers are cheap and plentiful, desktops are expensive and scarce

    With 10MPixel photos (and counting) I really think building Photoshop app as thin client will rock. The servers are plentiful and cheap, server network bandwidth is almost free, servers have unlimited processor power and RAM and storage. Desktops are thin - no memory no cpu power no network bandwidth no disk space. Just imagine happy world of 100,000,000 users connected to Adobe Photoshop server farm trying to scale their last holiday photos (is it 1GB or 2 I brought down from my last weekend photo shooting session?). I build a lot of both desktop and Web applications - both are tough when done right. The "desktop is dead" or "web is dead" are extremes that are baseless. Creating complex application (desktop and web alike) is not an easy thing. AJAX is great but not new abbreviations and alphabet soup will solve the complexity problem on its own. The right way is the
    path of balance and statements like "I will never build another desktop application" usually mean "I did never build a complex application myself at all and have no idea what is involved"... :-(
    • truly you are as the buddah


      Life is learning to live with balance. Your thoughts on complex apps and "baseless extremes," are quite sage.

      We would all do well to remember that "early technology" can still be useful.