Wednesday, June 21, 2006
How Google converted to Java SE 5
Google updated its software to use the features of JDK 1.5 from the older JDK 1.4 Java some time ago.
One of their software engineers, Li Moore, talked with Sun about that last year.
The results are interesting. For one thing, Google uses Java for a lot of stuff. Unlike Python (which has a .py suffix for its filenames), they do not really expose that fact on their website.
The one notable exception I can think of offhand is that Blogger.com appears to use Struts (a Java framework) for some of its web pages. The way you can tell is the
The other interesting thing is that Google does not have a diffident approach to using the language features at all. They use enums, concurrency (work queues, thread pools, etc.), the new iterating capability of the
Looks like they are pretty invested in Java!
Anyway, they took a phased approach that sounds pretty familiar.
Right at the beginning of the decade, I had to carry out the migration of a huge Java application comprised of about 1,500 classes.
I did it. And you had better believe I did it in a series of steps.
My migration went a bit farther than Google's. Mine consisted of converting those 1,500 classes from Microsoft's JDK 1.1 JVM - to Sun's JDK 1.3 JVM.
You better believe I was not going to throw all the classes up in the air at once, changing them in mid-flight, and see what still under the new interpreter!
I think that was the biggest number of classes I had sole responsibility for changing in my whole OOP life. A good strategy, and some hypotheses/experiments done up front, really saves your butt when you are dong one of these conversions.
Sun Microsystems Talks With Li Moore of Google:
One of their software engineers, Li Moore, talked with Sun about that last year.
The results are interesting. For one thing, Google uses Java for a lot of stuff. Unlike Python (which has a .py suffix for its filenames), they do not really expose that fact on their website.
The one notable exception I can think of offhand is that Blogger.com appears to use Struts (a Java framework) for some of its web pages. The way you can tell is the
.doat the end of a filename in a URI. That is what Struts applications use, by convention, for their filename suffix.
The other interesting thing is that Google does not have a diffident approach to using the language features at all. They use enums, concurrency (work queues, thread pools, etc.), the new iterating capability of the
forstatement, NIO, and servlets.
Looks like they are pretty invested in Java!
Anyway, they took a phased approach that sounds pretty familiar.
Right at the beginning of the decade, I had to carry out the migration of a huge Java application comprised of about 1,500 classes.
I did it. And you had better believe I did it in a series of steps.
My migration went a bit farther than Google's. Mine consisted of converting those 1,500 classes from Microsoft's JDK 1.1 JVM - to Sun's JDK 1.3 JVM.
You better believe I was not going to throw all the classes up in the air at once, changing them in mid-flight, and see what still under the new interpreter!
I think that was the biggest number of classes I had sole responsibility for changing in my whole OOP life. A good strategy, and some hypotheses/experiments done up front, really saves your butt when you are dong one of these conversions.
Sun Microsystems Talks With Li Moore of Google:
Li Moore, software engineer at Google, Inc., about his company's switch from J2SE version 1.4 to 5.0.
