A week ago I was invited to an “inside google” event: it’s hosted by google and supposed to teach you how to use google and adwords to make money. Since our team is primarily made out of devs and hackers that know not much about ads, selling and the things that get in the way of our coding time - this was really interesting.
Now that event was mostly what you’d expect it to be, sitting in fancy google offices, watching people talk about ads, conversions, funnels, those kind of things. In the middle of these talks however things took an unexpected turn: we started a hangout with a google engineer in munich that started showing off google docs but suddenly turned into a ten minute presentation on the future of the web according to google.
The room went silent in confusion while the dev showed off 3D drawing apps, games and other things from the chrome store, repeating the google mantra: this is the future.
All current desktop apps will be replaced by webapps - and google wants you to know this
Now for those living and breathing HTML5 this comes as no surprise, we see the rise of a new framework, an abstraction layer that allows for a great cross device, ubiquitous user experience.
Google is really pushing the envelope of what they want to see happening in the browser (check the video below) and eventually all that pushing will make the web a lot better. But while I was sitting there something occured to me:
The more important/relevant these browser-apps become the better they have to run offline
Imagine you’re writing some code in your browser based editor, maybe doing some refactoring and your input suddenly stops because of a tiny glitch in your connection (you switched cell towers, someones just stands in front of your AP, weakening your wireless connection or a spike in network traffic causes delays in your transfers). Your cursor stops moving, you lose the ability to write or save and this’ll probably be the last time you’ve used this specific piece of software.
The more you’ll try getting work done in these apps the less acceptable even a split second delay or interrupting glitch becomes. This effectively means that your apps will have to be mostly running within your browser independently of their internet connection, regardless of how good your internet connection is. This is a massive change vs. how webpages/webapps are currently run:
Better offline capabilities shift code from the server-side to the browser
To be truly competitive with the current breed of desktop apps, web-apps will have to provide a sufficiently useful offline experience, enriched by all those goodies a connected world provides: ubiquitous access to data, sharing and easy collaboration. To do this, a lot more needs to happen on the client side vs. server side.
Bringing your apps into the browser obviously means shifting code from your backend to your frontend, making your frontend act more like a full application instance. You can think of it as spawning application processes on a network of distributed clients rather than spawning them on your server.
The new server stack: storage, synching and collaborative controls
So what does it mean for the future of our server/client infrastructure? Put short: the server stack will shrink, and not just by a little. It will probably evolve to be more of a data store, a way to synchronize and distribute, then being the complex backend to a simpler frontend.
We’ll probably see a reemergence of the graceful degradation concept for browser-based apps, your normal work can be done without a connection (think editing spreadsheets, writing documents, working on images, saving your documents) and the heavy lifting or USP relevant interactions will happen on the server side. Once solved problems like remote storage, synching and conflict resolution will have a much higher reuse potential than what we’re currently building.
It is pretty clear to see that the future of the server stack has the potential to be much thinner than what it used to be, taking a lot of complexity out of it. Personally I’m hoping to see the emergence of a new breed of apps, completely written for the browser and with the ability to switch your backend for data and collaboration to your storage and synching provider (think dropbox, google drive etc.). Or even better: being your own provider (we build perfect hard- & software for that ;)).
If you want to know where google is pushing the web to, check out this google IO session:
This blogpost is based on a talk I held at the hackfwd build 0.10, a regular event for startups and hackers invited or funded by the hackfwd incubator in Hamburg/Berlin.