Perhaps it’s because of my recent trip to China, but it is becoming increasingly clear that internationalization is a very big deal for everyone in the software world. The ability to fully enable products and applications for double-byte and bi-directional languages is key.
Enter ICU4J. One look at the JDK to ICU comparison chart reveals why this library exists and is used by so many ISV’s out there today (e.g. Adobe, Apple, BEA, Cognos, Debian Linux, Gentoo Linux, IBM to name just a few).
I haven’t seen a lot of fanfare about this, but I consider including ICU4J in the Eclipse Platform for 3.2 and Callisto to be one of the biggest things going on right now in Eclipse. With Eclipse 3.2, developers are going to have a much more powerful tool for internationalizing their applications. With significantly better functionality than what is supported in the JDK. Now Java applications can be competitive those written in other programming languages in countries such as China, Japan and India. This is especially important for Eclipse and Eclipse RCP compete with Microsoft’s Vista release, as they are clearly focusing energy on ensuring strong internationalization capabilities.
But isn’t the JDK enough? Unfortunately not. From one of the documents from the ICU4J team:
“…as a platform, Java provides support for only a small set of locales (only 21 locales are officially supported, another 73 are shipped by not tested). By comparison, Windows XP SP2 supports 159 locales. In the set of 94 Java locales there is support for only one of the 22 official languages of India, one of the fastest growing economies in the world…”
ICU4J supports and ships twice as many (over 230) locales as Java. And there are other important features as well, such as support for better/faster sorting, enhanced date formats, better calendaring options and the like.
So keep an eye on development with ICU4J. It’s just recently been included in the platform builds. Next is switching the 3.2 stream over to use it, and then for the rest of the Callisto projects to make the jump. The changes are minimal, so hopefully the switch will be relatively quick and painless.