Tuesday, June 16, 2009

Google playing godfather

"Google it!" is a more popular term than "Just do it!". The search engine giants have had more success stories than anyone could have thought.
From Google search to Gmail, Youtube, Google code and what not, everyone loves Google, even guys at Microsoft. Their workplace, open culture, Phd employees, the whole network is cherished.

They have become the godfather of technology, controlling things they want to, the way they like. Taking high tech companies (e.g. Youtube) within their umbrella and blessing them with more fortune.

On the development end, Google has backed open source. Google Code has evolved into a healthy project repository (competing SourceForge), their developers contributing heartily to the open community, establishing open standards etc. All of this is great but at the same time it is just like Bill Gates running charity foundations or a corporate company going green, just to win the votes of their consumers.

Google promotes openness, yet it's search engine technology is proprietary, they have created Google App Engine (GAE), yet your applications have to run in Google's created JVM which abstains you from using Threads, some standard Java classes etc. They say that their JVM alleviates the need for threading by using their Cloud intelligently. This is SOC, which is good but if I want to deploy my project on GAE then my code will be restricted to their SDK only.

Another example is the upcoming Google Wave, where again the Robots can only be hosted on GAE. Robots seem to be the most useful component of the Wave, yet again we are constrained with GAE. In this case their move seems correct because after all Wave is their own platform yet at the same time they promised open source.

One example, that I encountered currently is the OAuth protocol which is an open protocol for secure API authorization. Google, Yahoo, AOL, Twitter etc. have been the active participants of the protocol and they are also implementing and supporting it on their systems as well. We have the open protocol available but why not have the open implementation as well from these vendors?
There are core implementations of the protocol on OAuth.net but we aren't sure if these vendors use the same in their production environments.
Google extends OAuth by defining it's own parameters for it's own services like 'scope' but it's not documented anywhere. Here the ideal case should've been a published OAuth extension that is inline with their own implementation.

This very blog is hosted on Google's Blogger/Blogspot, I use gmail everyday, I love Google services and maybe that love forces me to think critically of them. I maybe wrong in some points but in the end I've termed them the godfather. Let me know if I'm wrong.