Although Google is the most popular Web-based search engine used by everybody, not many know that it’s one of the biggest supporters of open source. For more on Google’s association with open source, here’s the story.
In January 1996, Larry Page and Sergey Brin, both students at Stanford University, began working on a search engine, which came to be called Google and took the world by storm. Initially, Page and Brin extensively used open source software such as Linux and GCC, internally. One of the reasons for using open source was, perhaps, the cost savings. However, the power that open source offered them—the ability to study and customise the source code to their preference—played a bigger role.
The creators of Google used free software wherever possible, even for corporate processes like accounting, record-keeping, etc. The use of free software for Google’s systems continues till date, with nearly all of its servers running on Linux. Page and Brin also used free software libraries such as OpenSSL, zlib, PCRE and MySQL. Since Google depended extensively on free software, its creators felt obliged to contribute to the various open source projects that had led to Google’s success.
If the software improves, everyone benefits, including Google. So, why keep the in-house fixes and improvements to the code a secret?
Helping open source projects
Google has always tried to maintain a good relationship with various open source projects. It hired Chris DiBona as the manager of its open source programs. DiBona oversees licence compliance and supports the open source developer community through programs like Google Summer of Code, and through the release of open source software projects and patches on Google Code.
Google has a separate blog on open source, the Google open source blog, which carries updates on all open source-related projects and programs that it is involved in. Open source summits and conferences like the Ubuntu Developer Summit (November 2006 and December 2008) have even been held at the Google campus. Several of its employees work on open source projects. Google has also hired many known free software developers like Bram Moolenaar (Vim), Jeremy Allison (Samba) and Andrew Morton (Linux kernel). These developers work on their pet software while Google pays them.
Google also financially supports a number of open source products. It is one of the main sponsors of Firefox.It is because of this that Firefox has Google as the first entry in its search and ‘awesome’ bars. Google employees have also made significant contributions to the Wine project. They played a major role in making Adobe PhotoShop CS2 work on Linux via Wine. This alone has resulted in many more people using Linux as their primary OS.
Google helped another open source project— Hunspell, which is used for spell checks in several applications including OpenOffice.org, Thunderbird, Firefox, and Mac OSX (10.6 onwards). The search giant subsequently decided to use Hunspell in its Chrome browser. When Google wanted to do something more, it scanned its huge database to find the 1,000 most commonly occurring words in different languages. It then compared this list with Hunspell’s list of words and added those that were missing. Certainly an innovative way of helping Hunspell, something that Google is famous for.
Google’s Linux software
Google releases Linux versions of its own software as much as possible and has released some very useful software for Linux—Picasa, Google Earth, etc. This allows its programs to be used by a wider base of more technically inclined users. It is unfortunate, though, that the latest version of Picasa has not been released for Linux. This, according to Picasa, is because the previous versions were not used by as many people as they had hoped.
Google has also open sourced its programs to gain users’ trust. Google Update, a program for Windows that keeps all the installed Google programs updated, became troublesome since it kept running in the background.To tackle the problem, Google decided to open source the software so that users could work without having to worry about a ‘suspicious’ program running in the background. Now, Google Update can be used by other projects as well to update software. It is because of such initiatives that the search giant continues to gain the trust of people all over the world.
In 2007, Google bought Jaiku, a social networking and microblogging site. After two years, it found that it could
not put much of its resources into the project. Instead of letting the project rot, Google decided to open source
most of its code. This way, those interested could develop it and use it in some other project.
Open source developer tools
Google Code provides APIs and developer tools for projects that Google is involved in, like Wave, Android, OpenSocial and many more. Google Code also provides a code-hosting service with features such as revision control, issue tracker and a wiki. All these features are free for open source projects, enabling developers to host their projects for free. The project details are linked to the developers’ Google accounts.
The Google Web Toolkit (GWT) is a set of open source tools that allow Web developers to create JavaScript front-end applications. A version of GWT 2.0, with significant improvements and enhanced features, was released recently. In just the last few months, Google has made a number of announcements, directly or indirectly affecting open source development. It has developed a programming language called Go, aiming to make application development easier and faster. It’s the TIOBE Programming Language of 2009 [www.tiobe.com/index.php/content/paperinfo/tpci/index.html]!
The SPDY protocol transports Web content faster, hence reducing the page load time. Google also open sourced many of its own JavaScript application development tools recently.
Encouraging student developers
Google organises and manages two very useful open source programmes to encourage students to contribute to open source. These are the Google Summer of Code (GsoC) for university students and the Google Highly Open Participation Contest for high-school students. The idea to launch these programmes came from the founders themselves. These programmes help and encourage students to work on an open source project for a few months. Apart from earning some pocket money from the summer job, the students gain from having worked with Google.
In 2009, India had the second highest number of GSoC participants—the proposals of 101 students were accepted.
Cloud computing benefit
Perhaps the best way that Google has supported open source is by helping people move to Web applications and cloud computing. With applications like Google Mail, Google Calendar, Google Docs around, it really doesn’t matter what operating system you use.
You may tell me that none of these are really open source. So what? If Linux does ever achieve a majority market share, do you think it won’t have popular proprietary applications? At least most of Google’s apps can be used via open source applications like Evolution, Thunderbird, Pidgin, etc. As these applications are all cross-platform, it makes switching from Windows to Linux a simple task. And since Google makes an effort to ensure all the data stored in its servers is easily accessible, there isn’t any fear of data lock-in.
On May 27, 2009, when Google Wave—described by the company as a ‘personal communication and collaboration tool’—was launched, everyone knew it was a potential game changer. The best thing about Google Wave is that Google plans to open source all the code. Hence, unlike Gmail, you can have your own Wave services on your own servers. So those who don’t like using Gmail because of either privacy issues or its nonfree nature, can use Wave without worries. Extensions can be easily developed to add new features to Wave.
Also, since Wave is a tool for real-time communication and collaboration, it will help open source developers communicate much better. And after the platform matures, developers can leave IRC channels and mailing lists, and switch to Wave. Some artists and documentation writers are already using Wave to collaborate better.
The Android revolution
Of all open source software developed by Google, the one that has interested companies and individuals alike is the Android operating system. When Apple launched iPhone, users began to understand that the magic ingredient of a successful phone is its software. The iPhone helped create a demand for smart phones, and this meant other cellphone manufacturers had to look for a really good operating system for their phones.
Among Linux-based smart phone operating systems, Android is clearly the most successful. Google involved hardware developers in the creation of the Android, which was a good strategy. The Android has showcased Linux’s scalability and adaptability in smaller formfactors. Android has also pushed the use of open source software in cellphones and helped put Linux in the hands of thousands who earlier depended on proprietary software.
Chrome and the Chrome OS
The Chrome browser has managed to gain more than 4.5 per cent of the market to become the No. 3 browser in the world. But the real change that Chrome engineered was that it forced its competitors to produce better products. Chrome also brought with it an innovative and completely unique interface. Firefox 4 plans to include some of the ideas from Chrome’s interface.
Google also developed a new algorithm called the Courgette, which helps provide faster and smaller updates for Chrome. Since this was also open sourced, many other projects considered using it for their update system. It is unfortunate, though, that Google was recently sued for patent infringement over Courgette, and its use is somewhat uncertain now. This brings us to the point of why Google is interested in creating its own open source operating system, namely, the Chrome OS.
Google’s primary revenue channel is online advertising. It accounts for over 90 per cent of Google’s income. For an organisation so heavily dependent on people clicking on Internet ads, it is natural for Google to try to get as many people online as possible. The two main factors that stand in the way are hardware and software. The hardware market is as competitive as it gets, with razor thin margins and products available to suit all kinds of budgets. But it is the software market which, because of the monopoly of a few players, becomes the bottleneck. One can easily see this reflected in the price of netbooks. If a netbook is available for Rs 12,000, then does it really make sense to pay a few more thousands for a copy of Windows?
This is precisely why Google decided to make its own OS and give it away for free. Many worry that this will only add to the problem of fragmentation in the open source ecosystem. But then, there are many reasons why they need not be afraid of the Chrome OS. The Chrome will be an OS on a secondary system. It will have only Web applications, mainly for netbooks. Another reason is that the features on the Chrome OS will be available through the Chrome browser. This means that whatever improvements Google makes in its Web applications or its OS, will be available to you. And even if a certain feature is not made available, you can easily port it, as it is all open source.
The Chrome OS brings with it some other advantages as well. OEMs like Dell and HP would feel more comfortable with an OS backed by Google, which can match Microsoft and Apple in popularity. Individuals, too,would rather try out an OS from Google than something not known to them. And in the end, since Chrome is all open source, and uses the Linux kernel, it will help improve other free operating systems as well.
I had no idea Google had such a background, but great that it is able to flex its corporate muscle to add to the open source dimensions freely available. I think fragmentation in OS is a good thing. It promotes the sharing of ideas and collaboration as well as competition. If Google advocates open source and Linux systems alike, it could bring a new popularity to the masses, and many Linux systems and programs are very good these days.