Whither Web-Apps

icloud_hero

The web changed things. It’s dictated the path of Android, iOS and Chrome OS. All three are operating systems that approach menial computer tasks in an entirely different way:

  • they store things in the cloud
  • they hide the filesystem from you
  • they’ve shed the shackles of the traditional desktop and windowing metaphor

We no longer have to discuss whether it was actually Xerox PARC that invented the “Recycle Bin” concept, we can instead discuss whether we even need one (( The answer is yes, but not for files. Could be for closed tabs, or it could hold an “Undo” history perhaps. )). It’s exciting. A computer no longer has to have a floppy or a disc drive. In fact, often times you don’t even need a keyboard. In the future, we might not need a physical interface at all, controlling everything with voice and gestures. It’s as if the new way has uprooted us from the rut of putting application links in a dock and discussing whether the window close button should be in the top left or the top right corner. Everything is different, and we can thank Apple first and Google second, for finally bringing us this much needed paradigm shift. In one key area of this exciting new future, however, Google and Apple differ in their approaches.

The Apple approach

Apple has had astounding success with their app store ecosystem. While they used to tout that “the web is the SDK”, they eventually did release an SDK for native apps, an SDK that is now making Apple and a bunch of developers rich of of $2.99 downloads. Sure enough, native apps can do things web-apps can’t do currently: they can sink their teeth deep into the hardware of the iPhone and do wonders with files, storage, GPS, gyroscopes, cameras etc. The biggest weakness with native apps may also be the biggest strength: developers have to go through Apple and sell through Apple. This, incidentally, screens out the malware that’s possible when working with native code.

Most recently, Apple has unveiled the iCloud North Carolina data-center which’ll store your digital life and make sure it pops up on your various digital devices connected. This includes documents and spreadsheets (as well as third party apps using the API). Apps are still native, but the documents are in the cloud. Naturally you’ll need an iOS or Mac device to actually use these apps.

The Google approach

In the other side of the ring stands Google, and they’re putting a bunch of eggs in the basket known as web-apps. To Google, native apps are quaint. Native apps are a necessary evil in what they see as a transitional phase towards the cloud. Android is the transition, Chrome OS is the destination. In Chrome OS, there are no native applications (( Okay there will be the Chrome browser itself, a media player and a nerfed file manager. )), there will be only web-apps. Chromebooks will sport the Google web-apps you’re already used to: Gmail, Calendar, YouTube and so on; web-apps that may seem simplistic compared to native apps. After all, they’re only HTML, CSS and JavaScript. In fact, most web-apps consist of the website and a glorified bookmark. But this bookmark is synced to the cloud, specifically to your account. So wherever you are, if you have access to the Chrome browser, there  you are.

But how could JavaScript and HTML rival a native app? It can’t, at the moment. But that doesn’t mean it won’t, in the not too distant future.

Google is definitely working on it. They’re working to simplify local data storage for when you need to use your apps offline, or for example “Pin” your Google Music so it plays from the cache rather than stream over WiFi or 3G. They’ll be giving web-app developers access to both the GPU and CPU through Native Client (NaCl), and through HTML5 they’re opening up access to rich animation, audio and video playback. Add to that package their O3D technology, which aims to bring real 3D to the web. These are all the bricks and mortar Google believes are necessary to create web-apps that rival native apps. They believe this so much, that they’re gambling a fair bit of their own future on this.

It’s a risky business. It’s quite evident that Apples app store has its share in this paradigm shift we’re experiencing. Apple has proven that if you do it right, you can not only sell music, but you can even sell TV episodes, movies, apps and books. All the while, without rampant piracy; because Apple sells these things at rather fair prices. $2.99 is a price-point that’s so low, most people see no reason to jump through hoops to pirate an application. Meanwhile, Apple takes 30% and developers are still happy, because they’ve never sold so many apps.

Web-apps are a harder sell, mostly because it’s an untested ecosystem. Google are dipping their feet in the water with the Chrome store these days, but with no success worth mentioning. If you can’t sell web-apps, why should you build them? Developers, like in any other business, need money to live. If the App Store will do that for them, then that’s where they’ll go.

Google’s web-app gamble

So if native apps outperform web-apps in operating system integration, performance, features and even revenue, why even bother with web-apps? That’s the million dollar question. Here’s an excerpt from In The Plex by Stephen Levy — “the Google book”:

At the time [2008], Google was about to launch a project it had been developing for more than a year, a free cloud-based storage service called GDrive. But Sundar [Pichai] had concluded that it was an artifact of the style of computing that Google was about to usher out the door. He went to Bradley Horowitz, the executive in charge of the project, and said, “I don’t think we need GDrive anymore.” Horowitz asked why not. “Files are so 1990,” said Pichai. “I don’t think we need files anymore.”

Horowitz was stunned. “Not need files anymore?”

“Think about it,” said Pichai. “You just want to get information into the cloud. When people use our Google Docs, there are no more files. You just start editing in the cloud, and there’s never a file.”

When Pichai first proposed this concept to Google’s top executives at a GPS—no files!—the reaction was, he says, “skeptical.” [Linus] Upson had another characterization: “It was a withering assault.” But eventually they won people over by a logical argument—that it could be done, that it was the cloudlike thing to do, that it was the Google thing to do. That was the end of GDrive: shuttered as a relic of antiquated thinking even before Google released it. The engineers working on it went to the Chrome team.

Zap Brannigan, the illustrious captain from Futurama said it best: “In a game of chess, you can never let your opponent see your pieces”. Well Google’s playing the long chess game, and they firmly believe that the future is web-based. They believe it so firmly that all of their apps are web-apps first, Android apps second. Changes trickle from the cloud and to the apps, not the other way around. Google believes the web will be the operating system, that the new-tab-page will be your homescreen, that URLs are on their way out and that bookmarks are your cloud-synced homescreen app shortcuts. Everything will be updated automatically, and it’ll all be tied to your login.

Opponents argue that you can never get a platform feel with such a diluted SDK; that for the truck apps you’ll always need access to the lowest machine-level code of the system (an access even Google’s Native Client can’t grant due to its sandboxing). I will argue that consistency can be achieved without having your hands held by the operating system developer. Sure, with great power comes great responsibility, and you can bet that there’s going to be a period of web-apps that do the same things in wildly different ways. But if Mac expert John Gruber is to be believed, that doesn’t matter in this day and age. To quote Yogi Berra: if the app is good, the app is good.

It’s a high stakes game Google is playing. But they’re the first player in the game, and if The Google Hunch turns out to be right — that web-apps are indeed the future — Google will have built a new pie for themselves. They’ll own the ecosystem and they’ll be giving it away for free so anyone that tries to go proprietary will have an uphill battle. Web-apps will work in a cross-platform way as yet unseen; once you’ve bought access to Plants Vs. Zombies in a cloud app-store, you’ll be able to play it on your Nexus Three, your television, your home computer, your library, in your car… you’ll even be able to play it on your urban-hipster-friends iPad 2. Native apps will be the new “compatability mode” and “rewritten as a web-app” will be the changelog item you’re waiting for.

4 thoughts on “Whither Web-Apps”

  1. Opponents argue that you can never get a platform feel with such a diluted SDK; that for the truck apps you’ll always need access to the lowest machine-level code of the system (an access even Google’s Native Client can’t grant due to its sandboxing). I will argue that consistency can be achieved without having your hands held by the operating system developer.

    Let’s just be clear that I’m not an opponent of webapps (obviously, given where I choose to work). But in terms of giving a platform a cohesive end-user experience, webapps as we know them today, living separate lives in the browser, with no UX carry-over to speak of? No, that won’t be able to compete. And I think if Apple’s success in recent years have shown anything, it is that the end-user experience matters. A lot.

    once you’ve bought access to Plants Vs. Zombies in a cloud app-store, you’ll be able to play it on your Nexus Three, your television, your home computer, your library, in your car… you’ll even be able to play it on your urban-hipster-friends iPad 2.

    True, if a) you believe it’ll be sold as a one-off for all devices or b) all devices can play the same game without it being specifically built for that platform. Neither of which I think will be true.

    Google will have built a new pie for themselves. They’ll own the ecosystem and they’ll be giving it away for free so anyone that tries to go proprietary will have an uphill battle.

    Google will certainly have the most expertise, which is already the case, but how will they own the ecosystem? The Chrome store has largely no traction (as far as I can tell anyway), and beyond that, the web is… open. And not Android ‘open’, but open. Is providing valuable services and API’s for free enough for them to have leverage?

    You know me; I used to believe the web was where it would be at, but today I just don’t see it going that way anymore, at least for a long long time. The end-user experience simply isn’t there. It may be a hurdle Google can help overcome somehow, I don’t know, but today I fail to see how they’ll do it (but then I come at it from a hawt-UI-centric perspective, and Google has always been somewhat challenged in that department).

    Regardless, it’s interesting times to live in.

    1. Joen says:

      But in terms of giving a platform a cohesive end-user experience, webapps as we know them today, living separate lives in the browser, with no UX carry-over to speak of?

      But why would web-apps stay in such a state for ever and ever? If there’s one thing that’s the point of this rant (and I apologize for the length), it is that web-apps are set to change in their look and feel. The gist of what I’m arguing is that web-apps are headed in the direction of more and better UI and integration.

      Yes, Apple has an excellent user experience which ties app UI and integration together in a nice bundle. But what makes you think they can’t do the same for web-apps? Heck, with homescreen bookmarks with dedicated favicons and a hidden mobile Safari toolbar, web-apps on iOS arguably have the best OS integration of the bunch at the moment.

      What I’m arguing is that web-apps are the direction things are going, and you all need to look past the boundaries of what it is we do today.

      True, if a) you believe it’ll be sold as a one-off for all devices or b) all devices can play the same game without it being specifically built for that platform. Neither of which I think will be true.

      Of course you’re right in both these points. But as an ex game developer, you also know that the bulk of the work in making a game cross-platform compatible, is the engine. And if the engine is essentially the same for every platform, connecting the wires to individual devices is way less work than we’re used to.

      Google will certainly have the most expertise, which is already the case, but how will they own the ecosystem? The Chrome store has largely no traction (as far as I can tell anyway), and beyond that, the web is… open. And not Android ‘open’, but open. Is providing valuable services and API’s for free enough for them to have leverage?

      Excellent point. You’re right. They won’t own the ecosystem in the way Apple owns the iOS platform. But they will have a head start, in that they’ll have a suite of very popular apps that dominate the platform.

      at least for a long long time

      Well that’s the kicker isn’t it? Maybe we do agree after all. It’s not like we’re going to wake up one day and everything is webbased. But what’s going on now will continue; slowly, web-apps will get more and more useful. Operating systems will accomodate them more. Native apps will get web-features and web-sync. Lines will blur. At some point, so much of an app is web-based, one might as well take that last part of the app that’s written in C and put it in Native Client so the app doesn’t have to keep that legacy native app update code. And that’ll be it.

  2. What I’m arguing is that web-apps are the direction things are going, and you all need to look past the boundaries of what it is we do today.

    I don’t necessarily disagree (though I don’t necessarily agree either, I believe in the internet, not just the web), but if Apple wins the hearts and minds of the consumer market now, and they have the backend infrastructure in place going forward, how does that put Google in a better position?

    But as an ex game developer, you also know that the bulk of the work in making a game cross-platform compatible, is the engine. And if the engine is essentially the same for every platform, connecting the wires to individual devices is way less work than we’re used to.

    That’s true only as long as the platforms are essentially on par. Porting a game between a console and a phone would be wildly different, if not impossible in many cases, because of different interface paradigms. And even when it’s possible, it’s not necessarily a good idea. Just take first person shooters on phones. They suck.

    Operating systems will accomodate them more. Native apps will get web-features and web-sync. Lines will blur. At some point, so much of an app is web-based, one might as well take that last part of the app that’s written in C and put it in Native Client so the app doesn’t have to keep that legacy native app update code.

    Except (I belive that) you’ll never be able to build (cheaply) cross-platform webapps that feel native to each platform. You may be able to build a solid backend and then a series of frontends that each feel like iOS, Windows 8 and Android, but how is that different from what we’re doing today, except that it’d be on web tech (which many apps on iOS are, and they usually suffer from it, but that may be an implementation problem).

    I used to be a hardcore decentralization fan. “No one man should have all that power”, as Kanye so rightly sung, except when it works. It’s like a benevolent dictatorship; for coherence and unity, it just works better. The difference is that you can’t leave North Korea, but you can leave Apple 🙂

    1. Joen says:

      Michael Heilemann,

      The consistency and platform integration argument. It’s a really good one. I used to be all about that, and didn’t think I’d ever change my mind. I haven’t yet, but I think I might soon enough…

      Gruber really spells it out, actually, in this video from Webstock. He argues that the Yogi Berra argument — if an app is good, an app is good — trumps the nativity argument.

      He’s not entirely right, of course, and the honest to goodness truth is that it remains to be seen how web-apps evolve, whether they will indeed rival and subsume native apps. Another beer and burgers bet?

Comments are closed.