Sunday, May 19, 2013

Google I/O 2013 - What the Trade Press Missed

In many ways, the thing I found most interesting about Google I/O 2013 was how little the trade press understood what Google was doing. If one looks at the developer sessions, what was stressed, and the fact that the only announcement we should expect "later this year" would be about Chrome/Chromebooks, it is kind of clear where Google wanted developers to head.

Most of this post will be about Chrome. I'm sure Google also has Android plans, but those are not as central to the vision they were laying out at the conference. I guess the only thing that surprises me is that Google never really gave an overview, though if you listened carefully to Larry Page in the Q&A at the end of the keynote, you can see he talked a great deal about it, just not in straight forward manner. Google seems not to think in anything like a linear manner. They do indeed plan, it just isn't a plan that fits well on a schedule or chart. Larry Page's answer to this question in the keynote was particular interesting. Among other things he said: "...I'm sad that the web probably is not advancing as fast as it should be... in the very long term, I don't think you should have to think about, as a developer, am I developing for this platform or another... and the software you write should run everywhere, easily...". His answer was very much reflected in the Chrome sessions that made up Google I/O 2013. I will return to this vision presented in his answer in detail below.

First a brief word on what the conference contained about Android: new developer environment, important new map features, games, games, games. With new Android laptops expected out for the holidays, I was surprised no one said anything about getting your app's keyboard/mouse usage up to snuff. Then again, Google says you should have been doing this all along for Accessibility reasons, so maybe they think it wasn't necessary to say this. Speaking as someone who has used a fair number of Android Apps this way via Stick PCs, I can definitely say they should have emphasized this to developers... most apps [even some from Google] need work in this area.

This lack of emphasis on Android caused several in the trade press to believe Android was somehow being demoted or left behind. I do not believe that is true. There was lots of Android at the conference. Ignoring the piece of Google that does Play Store, I really believe that Android is just another platform to Google. Obviously it is somewhat special to Google, but it is just one of many platforms that act as clients to Google's services. Android, Windows, MacOS, iOS, Linux, ChromeOS and any browser anywhere are all important platforms to Google. ChromeOS is special to Google only in that it is a way to their services without paying Apple/Microsoft tax. ChromeOS is important because it is a cheap and secure way to get Chrome to the users of Google's services.

The most important stuff at the conference was about Chrome.

Google fundamentally changed the meaning of a web app at this conference. Indeed, they renamed this new kind of app a Chrome App and are going to reorganize the Chrome Store around this concept. I have watched many of the sessions, and only once did I see a developer there actually get this tremendous change... he was concerned because his web-site based web app was going to be put into a different section on the Chrome Store. The presenter kind of made light of the problem, but I think the questioner was right to be concerned... there is a major shift underway. Just as many users prefer to use an Android app to access something like Pandora, Google is making the necessary tools available to do this from Chrome. Years ago Sun tried to make Java "write-once, run everywhere", they largely failed, but then Sun was never good at things like that. Google on the other hand already has Chrome working essentially the same on 4 different platforms (Windows, MacOS, Linux and ChromeOS). They intend to eventually deliver these apps on Android and iOS as well.

To be clear, Google showed how developers can write one app and deliver it on all of Google's supported platforms. The full vision won't be released to users until later this year, but it's potential is astounding. Imagine, Pandora could write one app in Chrome [being careful that is scalable for all the various sizes] and it would just work everywhere, from phone to huge screens. It will run as if it were a native app on each of these platforms. And don't think this just applies to just JavaScript apps... you can get native performance using native client. Google intends to hand us all the ability to write one app and have it run "everywhere".

If you are a developer, then you really need to take a look at the following sessions:

(If pressed for time, view the first two, they are the most important.)

The Chrome Packaged Apps State of the Nation (Added this, just became available... good demos!)

Upgrading to a Chrome Packaged App  (This one is more technical.)

Introduction to Portable Native Client (PNaCl)

Point, Click, Tap, Touch - Building Multi-Device Web Interfaces

Mobile HTML: The Future of Your Sites

So, when can we expect this to be real? It is well known that Google is porting QuickOffice to Native Client. It was said at the keynote that there would be important Chrome news later this year. We know that a large number of new Chromebook models are on their way. Intel says a large number of Android notebooks will be here for the holidays. All of the features above, either exist, have polyfills available, or are in or about to enter the "dev" channel for Chrome. Theoretically, this could be ready for the holidays. Imagine if you will if in November, you can buy a Chromebook... and have an Office Suite and several important Google Apps (Gmail for example) run as "native" apps there... with full offline support. Further, you can run these same apps on any other system you have available! It seems a tall order, but then most of these pieces have been in play for quite a while. Imagine if Android Chrome can run them too! Imagine an Android laptop that gives you Android and these new Chrome Apps too!

Regardless of whether or not the complete vision rolls out this holiday season... surely it will within a year after. That I could write an app for my business that would work on whatever platform was handy is just an amazing thought! Imagine commercial desktops apps that do this too! My preferences and data would be synced on all my devices... the thought is simply mind-blowing!

Now imagine you are Microsoft or Apple.... AAAAAAAARGH!!!!!
Where would they even start to combat this? Sure, hard core users will complain that these Chrome Apps do not look native... but the integration with Google services [and other services] and the ability to have their data and settings synced up everywhere, will eventually win them over! Microsoft and Apple are both working on the syncing, but ONLY WITH THEIR OWN PRODUCTS -- they just don't get it -- people use multiple platforms. At first a trickle will leave, then a flood; it could mean the end of proprietary software platforms! Linux will finally get access to a significant number of mainstream apps! People will quit asking why I use a Chromebook! This is like Nerd Nirvana!

Ok, I'm taking a deep breath now... it's time to start coding!!!!

Other trade press neglected, important events:

The Dart programming language had a large presence at the conference. There is no doubt they believe this will eventually replace JavaScript in these apps. Dart is approaching Java levels of efficiency.

Another important topic covered at the conference is a new way of making web frameworks:

Web Components: A Tectonic Shift for Web Development

Web Components in Action
Google is in process of creating a project that lets you use these future HTML features NOW.

No comments:

Post a Comment

Now allowing anonymous comments (but they are moderated).