Everyone loves Google, or so it often seems. For a long time, it has been my favorite search engine for finding general information on the Internet. Also, the sheer “coolness” of its work environment is legendary; I can remember when the company was looking to hire a gourmet chef for its cafeteria, not to mention an in-house masseuse. In a way, that very cool work environment substantially contributed to one of Google’s most recent moves. In mid-March, Google launched a website (Google Code) at which it provides the source code for some of its software tools for free.
Yes, you read that correctly. Google teamed up with Sourceforge to release several of its projects to the open source community. The four initial projects are named Perftools, sparsehashtable, coredumper and goopy/functional. These projects are in active use and development at Google, and being released under the BSD 2.0 new license.
Keep in mind that these are actual software tools. They aren’t applications per se, or environments in which to develop. They aren’t interfaces to use Google search, either; Google has a separate site specifically devoted to its APIs. They are tools for creating software -– in other words, tools to help programmers develop new software.
The projects initially released will be most interesting to C++ and Python programmers. Below is a list with descriptions of the tools, taken from the Google Code website:
- Perftools: libraries and tools that help programmers tune and debug multi-threaded C++ programs.
- Coredumper: gives programmers the ability to dump cores from programs when it was previous not possible.
- Sparsehashtable: an assortment of new hash tables for C++ developers.
- Goopy/functional: a library that brings functional language attributes to Python.
Granted, this is a fairly modest start, but then Google has a history of starting small and then building up momentum. This is really not bad for something that was six months in the making. Indeed, if you poke around the Google Code site, you’ll find a number of useful links, including ones to other open source projects and organizations, Google APIs, a frequently asked questions list, and the discussions mailing list. As with most areas on the Google website, you’ll be greeted with a clean, easy-to-use interface that makes it a snap to find everything you’re looking for.
So how is this exciting development a result of Google’s work environment? Well, the search engine allows and encourages its software engineers to spend one day per week –- that’s right, twenty percent of their work time –- working on their own personal projects. Many of the engineers at Google are interested in open source projects, so this website came about as part of a natural evolution process. Indeed, Chris DiBona, Google’s open source program manager, said that one of the reasons he was hired by the company was to help it interact more closely with open source developers than it has done so far.
In short, the folks at Google believe in open source. They believe that releasing the code to these software tools will benefit both themselves and the greater open source community. To back up that point, Google emphasizes in its FAQ that the programs it is releasing are not simply in active use; they are in active development. “These first projects are all current, actively maintained code straight out of our repositories, and as we improve them, those improvements will be merged into the free code base.”
Another cause for the open source community to rejoice over this site launch is that Google has no intention of stopping with these four projects. Again, according to its FAQ on the subject, “We’ve got a long list of software we want to release,” and those who are interested can subscribe to the company’s updates feed or discussion list for more news. As I pointed out above, the current projects would be of most interest to C++ and Python programmers, but you can expect future projects to appeal to a wider range of software engineers.
Indeed, Google didn’t stop with those first four. As of this writing, Google has added more projects. On April 19, it added Google mMAIM, the MySQL Monitoring and Investigation Module. According to Google, its ”purpose is to make a it easy to monitor and analyze MySQL servers and to easily integrate itself into any environment.” On April 28, Google added three documents to the repository at Google Code that cover the Search Appliance. These documents are:
- Appliance Search Protocol: This allows customers to work with the search results from the appliance.
- Feeds Protocol: This allows customers to write a custom connector to feed data into the appliance.
- Authorization Protocol: This allows a customer web service to authorize users to access specific documents for searching in real-time, leveraging their existing security and access control environment.
You can also expect future projects to be released by Google under different forms of open source licenses. As mentioned, the first four projects are being released under the BSD 2.0 license. This is because the developers who dedicated their time to releasing the code are most comfortable with that license, particularly for these kinds of infrastructural development tools. But Google expects to also release projects under the Apache, MIT or GPL licenses.
This effort flies in the face of “conventional wisdom” that code must be kept closed, or proprietary, to deliver the best products and services. Nobody can doubt that Google delivers the best service in its field. The company has become so synonymous with search that whenever people talk about trying to find information about any particular topic on the Internet, instead of saying that they searched for it, they say that they “Googled” it. It is true that Google’s search algorithms are still proprietary (and likely to remain so for the foreseeable future), but sharing the tools used to build website infrastructure is still a very significant step.
Certainly, the open source community is taking this move very seriously. Eric Raymond, president emeritus and founder of the Open Source Initiative, and author of The Cathedral and the Bazaar, seemed quite impressed with the effort. “This looks great. It’s great news. I’m not surprised. Google has always been a class act and it has had close ties to the open source community,” he was quoted as saying in a recent PC World article discussing Google’s release of source code.
Many observers will be watching very closely to see how this latest venture affects Google’s efficiency in its core strength –- not to mention how it affects the company’s bottom line. It might also serve as an interesting model for other companies to emulate. For example, a firm that offers a commercial product or service, but is interested in getting involved in open source, might examine how Google is approaching this endeavor. This is particularly true if the company believes, as does Google, that it has something both to gain from, and to offer to, the open source community.
It will be some time before we can appreciate the results of this action. Remember, only a relatively small community of programmers will work on the tools that Google has just released. This was intentional on Google’s part; the company wants to work out any bugs in the system with a smaller group of developers before releasing projects of more general interest. No doubt many open source developers are already looking forward to seeing what Google will release next.
For search engine optimizers, the move signals that Google is widening the net it is casting to help it become the best search engine it can. While it is true that conventional wisdom insists that code must remain closed to deliver the best commercial products and services, many open source projects have been recognized as among the best in their fields by those who voted with their feet. One need only consider how many sites run the Apache Web server to see this. For those of you who are open source fans, it’s more than worth it to point your browser to http://code.google.com/ and check out just how cool a search engine company can be.