Wednesday, August 23, 2006

Half A Cheer For Open Source!

From a discussion on open sourcing Java:
Jim: Where is Sun in the process of open sourcing the code for Sun's Java platform implementations? When can developers expect to see the code released?
Laurie: Sun will release several significant components of Java SE by the end of 2006... In addition, Sun plans to open source implementations of the Java ME platform (both CLDC and CDC). We intend to roll this out by the end of 2006.

So come 2007 we'll be looking at bug free J2ME right? Well, no. Two small problems.

1) The lead time on any bug fix becoming useful is the time it takes to fix the bug + the time it takes to get a handset to market with that bug fix + 3-12 months for that handset to achieve enough market penetration to matter. At that point you have the bug fix and the bug in the wild; the bug cannot be ignored for another 1-2 years when the handsets that feature it drop out of common use. That said, some people still use the Nokia 7650, so the bug may remain in circulation for longer.

2) Most of the serious bugs are in the interface between the low-level bits of the JVM and the proprietary handset OSs. It's possible Sun have broken implementations of Integer or Vector in CLDC, but I doubt it, so the most I think we can hope for is a fix of that PNG palette bug which is still in the WTK, where white is misread as transparent - but we'll still have to keep using the workaround for older phones.

This is hardly an argument not to pursue greater openness - we have to hope that things can get better in the future - but the lead times are so long I can't find myself getting at all excited.

The key advantage that I can see from an open source ME implementation is the ability for manufacturers who use it to more easily integrate the LCDUI APIs with their own phone native look & feel, so we don't have the jarring difference you find on eg. Samsungs when you switch out of a nice colourful phone UI into an ugly mono LCDUI interface with totally different widgets, etc. Though call me a cynic, but I suspect they could do that under their old licencing agreements - and just didn't bother.