On Wednesday morning, Vick Gundotra, Engineering VP at Google opened the Google I/O developer's conference in San Francisco. I jotted down a few (ok, a lot of) notes for this and other sessions that I'd like to share with you. This is not quite a transcript, but rather a paraphrasing of the main points from Gundotra and other speakers.
Advancing the web is critical to the entire Internet ecosystem. How are we going to do this? There are 3 primary areas of investment: Client, Connectivity, and Cloud. Some of the challenges are ones that all developers face. Some of the tensions of the past have re-occurred. We think we're at the cusp of solving some of those tensions.
In the beginning there was the Mainframe era. It was marked by powerful capability, not very accessible, easy deployment, less functionality. Next was the Personal Computer era - less powerful, more accessibility, harder deployment, more functional.
Then came the Internet era - same tensions again. The browser is the client that matters for the web. We were back to dumb terminals. Browsers limited us in what we were able to do. On the server there was massive capability: clouds. Clouds in many respects are just as inaccessible as mainframes were. Google spends millions investing in data centers, which is out of reach of most developers.
Is this where we are? At Google we believe we can solve these problems, by making the cloud more accessible, and making the client more powerful. It's like an "in-phase wave transition". Amplification not cancellation. And during all this, keep connectivity pervasive.
What are we doing? We're trying to 1) Make the cloud more accessible, 2) Keep connectivity pervasive, 3) Make the client (browser) more powerful.
Why are we doing this? Eric Schmidt says, "The industry is going to develop as a partnering industry; not as a monopoly industry... likewise, [Google's] culture is one of consensus."
Google was born in the era of the web. It's the only platform our company has ever known. The web was formed by consensus. All of us collectively agreed to a a few simple standards. Upon those simple standards emerged the platform we know bet on.
We owe a debt of gratitude to the web and open source community. We're committed to working with the open source community and giving back.
There's another reason - it benefits Google economically. As the web gets better, better web apps attract more users. This means more searches, which means more revenue. We're incentivized to move the web forward. We pour the money we make right back into the platform. Efforts like OpenSocial, Android, Gears, etc. are all open source. It's a virtuous circle.
How do we plan to do it? Most of us are developers. We're happy to share what we're doing. We're eager to learn from you as well.
One of the first steps to improve the platform was Google Gears. It's a plug-in that works in almost every browser. It extends the functionality but doesn't change the programming model. We're excited about how Gears affected the standards world. HTML5 adopted many ideas from Gears, like a database and localserver. That is the future direction. In some respects, Gears is a bleeding edge implementation of HTML5 where Google hardens the apis, then they get picked up and standardized.
[Allen Hurff, Engineering SVP MySpace, gave a live demo of what MySpace has done with Gears. It allows you to search and sort messages locally on your desktop. It's available now.]
The marketplace is very fragmented. To reach every device you have to target about 14 different platforms. Not every development team has the resources to build it for every platform. We believe over time the browser on mobile devices will be the entry point for many applications. But today the majority of mobile phones don't have the browser that can do it.
Android is an open source world class mobile stack. We hope the industry will adopt it. The WebKit browser comes with Android.
[Steve Horowitz, Engineering Director, Android took the stage]
Android is an open source mobile platform plus key applications. It includes WebKit, and raises the bar of baseline mobile functionality through components like the Web view, Maps view, etc..
[Steve gave a demo of a prototype phone running Android, running Pac Man and a Street view with compass mode.]
Gundotra acknowledged contributions of Amazon and asked for a round of applause for them for taking a leadership position.
[Kevin Gibbs, Tech lead for Google App Engine. took the stage.] It's a big technical challenge to set up the simplest web app. Apache, MySQL, etc.. Then you need machines, and pay someone to do that. Then you have to maintain it as it grows. Servers crash, hard disks fail. All of that is a lot of hassle for just creating a web app.
We had three design goals with App Engine: 1. Make it as easy as possible to create an app 2. Make it easy to scale 3. Make it easy to configure.
Steps to develop an App Engine program: Develop locally. Deploy to google (press button or run script). You're done and the app is running. If you thought ahead a little, it's ready to scale to millions of users with no extra work on your part.
Some examples of App Engine programs:
TweetWheel - Find out which of your Twitter friends know each other. Laterloop - browse web pages on your machine and save them to your mobile device to read later on. We use App Engine ourselves. For example an employee created an app over the weekend for earthquake relief.
We're also working with partners like Pixverse. Pix Chat social engine deployed in 3 hours.
We want to make it possible to: process large amounts of data, work with rich media, and access more infrastructure.
As it exists today it's still a preview release. We've gotten good feedback. In response, I'm announcing today we've created 2 new apis - memcache (industry standard) and Image manipulation apis (resize, crop, etc.).
Another announcement - expected pricing. It will be free for up to 5 million pageviews, 500mb. Another that another 5 mil might cost $40/mo.
Continue reading "Google bets future on improving Client, Connectivity, and Cloud"... Gundotra: For some of you, you already have an app. How can we make our cloud available to you? We have many services, and our cloud supports apps at tremendous scale. That's what our GData and Ajax APIs are for.
[Mark Lucovsky, Technical Director of Google data and AJAX APIs took the stage.]
GData apis: Read/write access to get data out of Google apps and project it onto your web site. Calendar, Docs, Spreaadsheets, YouTube, etc..., based on Atom Ajax apis: read only, Work against the open web. RSS, YouTube, News, Listings, search, etc. through REST.
Demo: Video strip. MediaRSS. NewsBar. Map (Glocalsearch), Translation api. Uses CSS, publicly documented controls to fit into your site's style.
Gundotra: There are two other initiatives that span client, connectivity, and cloud: GWT and OpenSocial.
The Google Web Toolkit (GWT) makes Ajax development easier. You program with a strongly typed language, and target Ajax on the client.
[Bruce Johnson, Engineering Manager, GWT]
Browsers are capable of better apps. We want to let you spend more time thinking about the coolness you're trying to achieve. Instead of coding directly to JS, you write in java, cross compile into JS. The browser market has become more fragmented. You can use GWT to target them.
In hosted mode, you run java code as byte code in the JVM. This lets you get help from your IDE such as navigation, code completion, refactoring, etc.
Demo: Lombardi Blueprint Google Health uses GWT, as does the next generation of Adwords.
Announcing GWT 1.5 release candidate. Features include:
- Finally - Java 5 language features (generics, autoboxing, enumerated types, etc.)
- Performance improvements. It's often faster than what you'd write by hand. Download, recompile, and you can get a 20-200% performance improvement without making any code changes.
Continue reading "Google bets future on improving Client, Connectivity, and Cloud"... [David Glazer, Engineering Director for OpenSocial took the stage]
Pillars of social networks:
- Identity - OpenID
- Authorization - OAuth
- Apps - OpenSocial
Apache Shindig is building the reference implementation of OpenSocial.
How does this matter to app developers? [Nat Brown, CTO iLike, demoed a social music discovery application. People don't like algorithms telling them what to play, they want their friends to do that. 3.5mil users in 6 months. We wanted to focus on music. There must be a better way to get people to the music. Social networks were really growing.]
OpenSocial now: 275M users can be reached, 20K developers, 50M app installs Containers include hi5, orkut, iGoogle, myspace, netlog, plaxo, etc. Implementations in progress: Oracle, yahoo, salesforce, six apart, friendster, AOL AOL is adding support for OpenSocial, announced today
What's next in openSocial?
- RESTful (v0.8)
- Template language
Google friend connect - is building on open standards. Copy and paste functionality, additional reach for OpenSocial containers and developers.