Tuesday, September 16, 2008

Is There Any Reason for Desktop Apps Anymore?

Ok, I understand that today, you can’t do with an online app what you can do with Photoshop, or Word, or AutoCad. But think big picture for a minute. Imagine slightly faster computers, faster virtual machines, and the ability for web apps to, with appropriate permissions, access local resources like storage and notification services. Then imagine browser windows without all that browser chrome (buttons an such around the edges so the windows look like app windows). Yes I know it sounds a lot like Google Chrome.

Today, technically speaking, everything that Word or AutoCad does could be done with Flash 10 instead of the Win32 APIs. And less graphically demanding apps will work fine with just HTML and JavaScript.

It is true that *today* you can do more with desktop based APIs, but most apps don’t need that “more”, and within the next few years even that gap will totally disappear. At that point why would I ever want to download a desktop application?

This all brings me back to the whole, “is the browser an OS” argument, from last week.

The interesting thing is that back when windows was introduced it was *not* an OS. It was considered a kind of shell sitting on top of MS-DOS. Funny how things change. And then again not. I see the same thing happening with Web technologies on top of some Unix based OS underpinning, I don’t care whether you call that new thing an OS or not. It is the future.

The main point is that the top layer of the OS is about to change in the next few years. Soon no one will care about Win32, WPF or anything else at that level. And whatever you call it, that is a big deal.

25 comments:

Anthony said...

I think you still need the desktop for when you don't have a connection. A desktop version of your web app allows you to work offline and sync changes when you are back on.

Our company currently has a great new intranet built on Rails but when I don't have wifi, I can't get on, so, we are building an offline version with Slingshot https://dev.joyent.com/projects/slingshot/wiki/Slingshot

I'm all for web apps but I think for 100% availability there needs to be offline functionality no matter what platform it is coded in.

Alex said...

If only there was a Web distributable VM with an endless proliferation of open source libraries that could handle everything from Web Services to low level audio manipulation. *cough* Java.

Sun really dropped the ball in terms of distribution and browser integration. I doubt they'll every catch up. But Java Desktop, yes Swing, kicks the snot out of Flash any day. Starting with multi-threading, continuing on with proper language syntax like generics, and moving on to multimedia APIs.

But, as a biased Java Swing developer, I don't really feel that threatened by Flash, though maybe I should be, since the more people venture into RIA, especially non-consumer oriented businesses, the faster they may outgrow Flash and move on to a more robust architecture.

Scott Wheeler said...

I disagree. At which point web apps can freely access local resources there's no real benefit of not just installing local apps since the security barrier disappears. The presumption here is that web apps are fundamentally better than local apps, but while there are a lot of domains where I prefer web apps, the technology for web apps to have the flexibility and workflow of desktop apps still isn't there.

Mark Evans said...

You'll probably need a desktop-based browser to access all those wonderful online applications, right?

Hank Williams said...

Mark,

The point here really is that that functionality isnt really an app anymore, but really part of the OS. Obviously software has to come with the device, but displaying html will really become part of the platform, whatever you call it.

Anonymous said...

Interesting take, Hank.

Keep up with the insights!

@Alex:

The "war" of java coders and Flash coders is gonna end with the Flash side Winning. Apparently, Adobe will continue to innovate where Java will lay still, and even surpass Java if they're careless. RIA will be the domain of Flash...but would Chrome be the browser?

Anonymous said...

Or would it be Chrome the next OS?

Anonymous said...

I don't think so I can work when I'm offline is a good enough reason to have a client app. Intenet connectivity is going to be everywhere soon. It's like saying I need a battery back on my refrigerator in case the power goes out. or a rechargeable vaccuum for so I can clean during an outage. Digital life is moving forward. There no reason to support legacy offline thinking.

Alex said...

@Scott

No, I don't think there is such a clear winner. There will be different needs for different people and different toolsets. Flash will take a certain chunk. Functionally, Flash is still catching up to Java and whether it ever does remains to be seen. The war isn't between the coders, but between the CTOs.

Brent Miller said...

Depending on browser wars to deliver your product is absurd.

Hank Williams said...

Brent,

Absurd? You mean like Google, Salesforce.com, Adobe, and the myriad other companies that deliver products through the browser?

Jauco said...

If only I were old enough to remember the days when everyone was excited about moving from the server to the desktop...

Anonymous said...

Agreed!

It's not absurd at all! Look at Adobe's Kuler. Has a Desktop App and the RIA. They are already delivering products via Browser. I personally believe that this is just a matter of time and Internet speed. (Above 3mbps at least)

What I don't get is why bother helping Mozilla and Firefox, if Google was planning to launch their own Browser. It just doesn't make sense.

Chris Noble said...

It's an interesting question, but I think that there's the danger in conflating a number of issues in trying to answer the question, and it's worth separating them out.

So let's turn the question around and ask: "What's so great about Web apps? Why would anyone really want them?".

Web apps have a number of disparate benefits.

1. Cross-platform. OK, so this has actually nothing to do with the Internet, but is a function of using the browser and HTML, Javascript and Flash etc. as a framework to abstract out OS functions. It's similar in scope to what Java tried and what Silverlight/AIR are trying to do now.

So, you mention Flash as an alternative to Win32, but in my opinion that's nothing to with a Web app, it's just a different API. You could write a Flash app or an Ajax app which is actually desktop app - and that's what AIR attempts. In my opinion the result is a desktop app using technologies derived from Web experimentation.

2. Instant deployment. No installation, immediately available, immediately updateable. Yes those are clearly advantages of the pure Web app.

3. Quick, cheap, rough and ready development. All you need is a copy of Apache, and a text editor and you have have your app up and running and available to a global audience in minutes.

Anything else? I think those are the main ones.

So where do desktop apps score:

1. Access to the 'real' OS. Browser access should be sandboxed and controlled. You say in your piece that most apps don't need more than the browser can offer, and yet that may discount the degree of tight integration that a good OS can offer between apps. It may seem trivial, but the user experience is important, and I like the ability to (on a Mac, for example) to drag a file on top of Mail.app's icon in the Dock and have it create a new mail message with that file as an attachment.

2. Control of the app code. If your Web-app supplier disapears, do you want to lose the app? If you Web-app supplier changes the functionality, or terms of use in ways you dislike, are you happy with that? A desktop app gives you the ability to choose when to upgrade.

3. Control of cost. If you want to pay once and have the app at your disposal when you want, the desktop app is the way to go. Some people like the subscription model, of course. But if you don't...

4. Control of data. It's good to be able to work offline. Now things like Google Gears help out there enormously, but the desktop app still has the edge.

I've probably rambled on long enough and to be honest, it's difficult to make a coherent argument in this little comment box, but I hope you get the gist. I think there's scope for both and I don't see the desktop app disapearing soon.

As a little aside. Steve Jobs decided initially that native apps weren;t required on the iPhone/iPod Touch. Web apps were enough for everyone. The business going through the app store tells a different story.

Anonymous said...

Problems with your suggestion:

1. You will need a lot faster Internet access than exists today for this to be viable.

2. You won't be able to control the cost. The app providers will charge $ to access their products, with no end in sight. At least with your own PC, you know your app cost up front. It would be like paying for cell phone time by the minute all over again.

Regards, Mike

Jean-Philippe Martin said...

I think you explain exactly what the change of paradigm is : from the desktop to the cloud! Since Mozilla have created a fast javascript engine and Chrome immediately after that issued their Chrome browser, it's clear that a barrier for the transition of the current applications we use from desktop to the web has been lifted. And I think that many applications we use in the entreprise has to adapt to this if they want to keep existing.
The one who has the most to lose from this is evidently Microsoft and the one who will gain the most is evidently Google.

neovive said...

This clearly seems to be the trend going forward -- with the ongoing developments in cloud computing, javascript/html engines, and cross-platform RIA technologies. However, advanced users will likely always want to leverage the CPU power available on the desktop.

@Chris: If the iPhone released a built-in Flash player (very unlikely), I wonder how much that would impact the App Store.

Jay Cuthrell said...

As long as you understand that a large part of the world still operates via TN3270 access to mainframes...

No.
:)

Chui said...

Here are some remnant issues not properly solved by web today.

1. Clipboard integration. Copy and pasting files? Images? Drag and drop across apps?

2. Application integration. OLE is more secure than mashups, plus it offers (surprisingly) better application isolation and stability.

3. Device support matters. I still need a way to get photos off my digital camera before I can push it to my Facebook account.

Arnon Rotem-Gal-Oz said...

I agree that is a direction that the industry is taking (either defensively like MS or offensively like Adobe, Google). I also agree that's the direction Google is pushing with Chrome (see a post I wrote on the subject http://www.rgoarchitects.com/nblog/2008/09/02/GoogleChromeTheBrowserIsTheNewDesktop.aspx)

Anonymous said...

Its interesting to note that everybody has overlooked two fundamental problems.

First that you are at the mercy of your service provider. For example look at the recent outcry from Facebook users about site redesign, and similarly with LastFM. Now consider the same problem with MS's ribbon interface on Office 2007 that most people chose not to upgrade to because of... people don't always want the bleeding edge and if you have no power to control what version you are using you could be forced in to doing things you didn't want... imagine if Java only provided the current version, you'd have to continously refactor you old apps to keep them working.

Secondly it seems assumed that your services are accessible whevever you are. There are a small fraction of countries in the world with either full internet coverage and/or decent speeds. If you require access to your data and applications as a fundamental part of your life (business users for example) then you NEED a desktop application with local storage
because the risk of being without application or data due to lack of connectivity is too great.

Anonymous said...

I agree. For the majority of users desktop apps are no longer needed. I consider myself to be a power user, but for all of my personal word processing and presentations I use Zoho. It is sufficiently powerful to do what I need.

For students the arguments are even more compelling. Web applications don't get "erased" accidentally or suffer hardware failures. Also you can access your work from anywhere in the case that you forgot to print something out.

dOgBOi said...

There are plenty of industries where security is their major issue (think human services and hospitals that have to meet HIPPA requirements) and plenty of companies that deal in IP and other sufficiently private properties that they would be unwilling to use an online solution. Desktop apps are here to stay.

Rob R said...

As someone who ahs written and sold web apps, I disagree. There is a fundamental social, not technical, change in the shift in focus to hosted applications: someone else controls them.

There are a lot of people who don't control their own desktops, they use Windows or Mac and pretty much click OK on everything and enter their credit card number as the computer instructs them. A web-app hosted type system may be a more reliable way to exploit those people.

But if you are doing anything real, you need to be in control. Think about it this way -- the developers themselves will have control over their own servers, and often test things by running a web server on their local machine. As a general trend, more and more people will be their own part-time developers, either through highly configurable solutions, dumbed down scripting languages, or other things we haven't thought of.

Anonymous said...

Reply to the first comment, Anthony.

Soon Online apps could work offline so then we won't need desktop apps anymore. Look at googles gmail. They added an offline mode for their mail where you can still access your mail online in the web browser. Desktop apps will start to disappear as online apps such as google docs, zoho, calenders, would start appearing more online instead of desktops. We already have great online apps but its going to get even better once internet advances more and online apps start working flawlessly such as desktop apps. Everything you need online in a web browser, simple to think about. No more downloads and applications would be URLs (sites) that you go to. All you have to do to use them is sign in with username and password. Simple as that. And its saved in the cloud for you.

One more example. iTunes. iTunes is now a desktop application and to save music you have to have a external drive, usb drive, or even ONLINE drive (which I use) *ADrive.com* to save all your music. If iTunes goes online into the web browser and become a web app then all our music is saved via the cloud. So next time we buy music on iTunes its saved automatically for us on the cloud.

Reason they aren't doing this now is because internet needs to get better and once it does web apps will start to rise more.

If any questions or want to reply to what I've said email me at LouieSamman@gmail.com

Post a Comment