Great Expectations: Java Virtual Machine

hi everybody,

did you notice that...

Java is now GPL! [tra la la la]

but...

I am not sure what it means for Java to be distributed under GPL. I reckon the first thing is, it can be distributed with Linux distros right away. was that impossible before?

the second question, I hope, is more important. can there be forks of the Java legacy now?

more specifically, *ahem* if now, can we implement a VM that satisfies the JVM specification but allows more? if not, consider the question hypothetical.

so that, Java will run on the VM, but [a narrow example] there will be other bytecode operations...

you know, things like JSR 292... invokedynamic, hotswapping...

what would be, in your opinion, the most significant change you want to see in the current JVM?

[don't mind me, I'm a newbie, I'll just follow the discussion. but even though it is not a language topic, some things, like the closure proposal, I suppose, are relevant.]

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

>it can be distributed with

>it can be distributed with Linux distros right away. was that impossible before?
Yes, I think. Redistribution was a problem.

>can there be forks of the Java legacy now?
By definition, if it's GPL, it can be forked, you probably cannot name the result Java though.

The problem with adding bytecodes is that your program compiled with those new bytecodes won't run on Sun's VM which will be ubiquitous, unless of course they detect the VM and adapt.

An interesting possibility would be to improve the JVM's GC/Linux kernel memory manager interaction:
http://www.cs.umass.edu/~emery/pubs/04-16.pdf

There is quite a lot of FLOSS code written in Java, so with a GPL JVM it may be possible to convince Linux kernel developers to integrate such patch in the stock kernel if a fork of the JVM which would take advantage of such kernel patch exist and eventually it would even be possible to convince Sun to integrate the patch of the JVM in their version.

Most obvious, perhaps not most significant...

I look forward to seeing what changes people make to the VM as well. To my mind, two of the most obvious changes would be some form of support for tail-call optimization and some form of first-class continuations. Both of these have been wanted by many people for a long time. Of course, neither one is trivial...

JVM opportunities

what would be, in your opinion, the most significant change you want to see in the current JVM?

I'd love to see someone try to create a JVM with Software Transactional Memory support, and Java extensions to use it. For extra bonus points, have some way of hooking in the in-memory transactions with external JTX transactions. The programming model improvements over the current Java concurrency model would be immense.

(For all I know, this may be impossible for some reason, or someone may already be working on it.)