It’s a platform, not a product.
A few years back I was on a conference call discussing licensing options of a JVM with a large, now defunct, software vendor. As I recall it was rather boring, but at one point I had a surprising realization: Java should be treated (by everyone) as a platform, not a product. This realization came when I began thinking about the verbal language the sales guys were using on the call. To them, it was all about Feature X in Product Y. The idea of a pervasive and consistent runtime environment was as foreign to them as volume discount thresholds was to me.
From that time, I was always frustrated with this product-based focus for Java. The engineering side of Sun got it of course with the “write once blaa blaa” mantra that never really turned out in practice but was a noble idea. Now with the emergence of OpenJDK as the de facto JRE in the FOSS world with serious, substantial support from enterprises I wonder how this product vs platform will play out. No doubt about it, there was a lot of product-speak at JavaOne this year. But if one filtered out everything except for discussions about OpenJDK, things were refreshingly platform focused.
I have no proof, but I get the feeling that Oracle understands that pushing the JRE to be pervasive*, freely, and widely available benefits itself as much as anyone else. I also get the feeling IBM is on the same page. If the recent press regarding IBM’s new participation in the OpenJDK project results in more project diversity and better overall quality, then I think it’s a great thing.
Maybe some day in the near future OpenJDK will be running on all sorts of environments and operating systems. And not because your Java(TM) Task Tray icon just told you about some exciting new product update, but because it’s a platform, and it’s everywhere.
* Pervasive is the enemy of monolithic.