[Isolate-interest] JSR 121 status?

Pete Soper psoper@pjs.East.Sun.COM
Fri, 26 Mar 2004 16:56:34 -0500


Hello Jesper,

I guess I dreamed I'd sent a (very detailed) status report last December but 
couldn't find it in the archive and see now that it went to an individual and 
the EG but never made it to the interest list. And I just dug through my mail
and see I owed you a reply from last month, my apologies. You had expressed
unhappiness with the long period of no news about JSR-121 and I can more
keenly appreciate your irritation now!!

> Pete, this is really disturbing news. Perhaps you could be a bit more specific
> one the reason behind this situation. Is it just a result of Tiger being
> given all focus or has there been an internal decision to put the project
> on hold? 

Yes, Tiger overtook the JSR work and the effort to refactor and prepare Miles
Sabin's 1:1 style RI code with an updated spec for publication was suspended. 
However it is also the case that the last increment of management support may
have been been exhausted and resumption is not a given.  If ever there was a 
recipe for learning that deepest depression is pure pain, this is it.

(Note well the "1:1" mention above, as despite terrible misunderstandings to
the contrary, no miracle of memory or cpu time improvement was robbed from
Tiger last year: the RI code is very nice but does not deliver lightweight 
isolates.)

With hindsight one could wonder if it would have been better to have done a 
simpler move to javax and publication of everything available soonest after 
JavaOne/SF last year (i.e. what we said we wanted to do at the J1 BOF but 
ignoring the basic issue with CLDC). An implementation might have gotten out 
and, if it had, folks could have downloaded and experimented with the RI code, 
etc. 

On the other hand getting to that point would have required use of resources 
within Sun that were simply not available due to the demands of the Tiger 
release. The JSR-121 program manager and I could not have done everything 
related to getting something out for experimentation. Various parts of Sun 
would simply have to have become involved and this was at odds with a key 
reason for leaving 121 out of Tiger: directing effort toward the features 
judged more important for that release. So that alternative would probably 
have stalled too, and with no progress on the API design issues.

But assuming this publication had succeeded before the "Tiger crunch" that 
same crunch would have inhibited the proper responsiveness to feedback needed 
to make the publication of APIs worthwhile, boosting the frustration level.

One could argue that "hey, at least something would have been out there 
in the meantime!" and this is true. But the nature of an isolate implementation
is such that by no stretch could folks have "downloaded the API" to use the
way they would download an API for computing planetary orbits. A custom 
launcher (with a non-java name of some sort) would have been required along
with a customized class library layered on some very narrow rev range of 
other components from standard binary distributions (i.e. similar to JSR-014).
So getting something usable in a limited context did not imply "practical
for a production environment." (I know you and many others may know this
already, forgive me for loading all this explanation on)

> Also, could you give us an update on the work that has been done since last
> JavaOne. There was a lot of talk about moving the API from java.lang to
> its own javax package and perform a refactoring so it would be suitable
> for all Java versions including the J2ME.

Work was done to arrange the APIs into a layered set of subpackages under
javax.isolate with the aim that the base package will be suitable for 
any Java edition down to J2ME/CLDC while additional sub packages will 
support more features that are in turn dependent on J2ME/CDC and J2SE. Bernd
Mathiske and I generated the original itch but the resulting refactoring effort
was driven by Richard Houldsworth (Philips) with help from Miles Sabin, 
Pat Tullmann (U. of Utah) and Doug Lea and reviewed Norbert Kuck (SAP),
Matthew Webster (IBM) and others.

In addition to making the package hierarchy, numerous other simplifications and
improvements were put into a rough outline form. None of these changes but one
significantly changed the overall functionality: the capabilities are almost
identical but in a quite different (and, many argued, much cleaner) 
arrangement. 

The notable exception is that we simply couldn't find a way to properly use the
Preferences API and keep that reconciled with the need for uniformity and 
Isolate being at the bottom of the package hierarchy. I sent an unhappy note 
to Josh Bloch explaining that situation and he replied with regret and 
understooding.

But the base package is still way too bulky for highly constrained Java and 
needs significant changes or else we need to simply ignore CLDC, which would be
silly. In summary, with the most recent outline there is extreme tension 
between the desire for a sound design that provides type safety and a 
"universal base package" vs the resource limitations of a CLDC runtime 
environment and the simple realities there. However this is moot until 
there is closure and resource commitment to enable the next steps to be 
defined and completed. 

> If there is any remaining work to be done on the specification, perhaps
> some of us could join the EG in order to take over some of the work.

Thanks, I'll keep that in mind.

Regards,
Pete