Sun Microsystems Talks With Li Moore of Google

By Robert Eckstein, September 27, 2005    
Articles Index

Banner Graphic: Sun Microsystems Talks With Li Moore of Google Thinking of migrating to the Java 2 Platform, Standard Edition (J2SE) 5.0, code-named Tiger? You're not alone. Thousands of companies all over the world are giving J2SE 5.0 a try, and they like what they see. New language features, enhanced class libraries, better tool support, and desktop enhancements are just some of the reasons why many companies are making the switch.

In this article, we talk with Li Moore, software engineer at Google, Inc., about his company's switch from J2SE version 1.4 to 5.0.

question Thanks for talking with me today, Li. Google is, of course, the worldwide search engine of choice. How does Google use Java technology?

answer Google makes extensive use of the Java platform. Large parts of popular Google products are written in Java. We also use Java in many internal systems and products under development.

About Google
Google's mission is to organize the world's information and make it universally accessible and useful. As a first step to fulfilling that mission, Google's founders, Larry Page and Sergey Brin, developed a new approach to online searching that took root in a Stanford University dorm room and quickly spread to information seekers around the globe. Google is now widely recognized as the world's largest search engine -- an easy-to-use, free service that usually returns relevant results in a fraction of a second.

question Which core and enterprise APIs or technologies are critical to your work?

answer We make heavy use of core Java APIs including the Collections API, java.util.concurrent, and java.nio. We also make heavy use of the Servlet API.

question Did you expect that any changes with the 5.0 version of the JDK might be detrimental to your Java applications at Google?

answer Nope. Everyone was excited about the new language features, the new concurrency libraries, and the new monitoring and management facilities.

question Were there any Tiger features that made you say, "Oh, this is great! We needed this a while ago"?

answer We've wanted enums and generics at Google for years. Like everyone else, we wrote our own thread pool and work queue classes years ago.

question Tell us about the migration process. What sort of issues and surprises did you encounter?

answer I learned about Tiger in the fall of 2004. I liked what I saw and took it upon myself to convert all of our Java development to JDK 5.0. I worked on the migration as a 20 percent project: Google lets its engineers devote 20 percent of their time to any project that they think is cool and in the company's interest.

We migrated to Tiger in stages. First, we tried it on existing code without using any of the new features. Of course, we ran into the same problem that everyone does -- enum is now a reserved word. That's an easy, if tedious, one to fix. Then we tested the performance of some key applications. We were pleasantly surprised when they ran significantly faster on the new release.

"When it came time to make the actual switch, we had no problems. We were pleasantly surprised by how easy it was. Developers were enthusiastic about the transition and quickly followed ... with changes that upgraded existing code to use the new language features."
Li Moore
Software Engineer
Google, Inc.

I met with key people from various projects and got buy-in for the transition. We came up with a schedule that culminated in a flag day, when everyone felt comfortable switching. I mapped out a transition plan for each project and created documentation to help people with the transition. We had a little difficulty getting all the tests to pass. We discovered a few minor compatibility issues with the new release, which we reported back to Sun, which has since fixed them.

When it came time to make the actual switch, we had no problems. We were pleasantly surprised by how easy it was. Developers were enthusiastic about the transition and quickly followed flag day with changes that upgraded existing code to use the new language features.

question If you could make one change to the Java core or enterprise APIs right now, what would it be? If you could add one feature, what would it be?

answer It would be nice to add a clone() method to Cloneable, but unfortunately that's not possible at this point. Also, it would be nice to make the byte type unsigned. More realistically, I'd like to see a pluggable file system API like the one that Sun proposed in JSR 203.

question Have you tested your applications against the prerelease of Java SE 6?

answer No, but we have started using some of the forthcoming concurrency utilities that are already available for use on the JSR 166 interest site.

question Is there anything you would like to add?

answer Our developers were already excited about J2SE 5.0 several weeks before the transition. As soon as we switched, use of the new features just took off. Even something as simple as the new for-each loop makes it so much more fun to write Java programs.

This release is purely an improvement, in terms of language features, libraries, stability, performance, and tools. I can't imagine why anyone would use the 1.4 release at this point.

For More Information's Web Crawler: A Massively Scaled Java Technology Application
J2SE 5.0 (Tiger) Adoption home page
Java Platform, Standard Edition 6.0 (code name Java SE 6)
JSR 166 interest site
JSR 203
Reasons to Migrate to Tiger
Rate and Review
Tell us what you think of the content of this page.
Excellent   Good   Fair   Poor  
Your email address (no reply is possible without an address):
Sun Privacy Policy

Note: We are not able to respond to all submitted comments.