This seems like a catastrophically stupid and short-sighted move on Oracle's part. The reason Java is as big as it is today is that it's been an open playing field for all comers. Start tossing the odd hand grenade into the party and the room is going to clear out fast. The timing could hardly be worse too - Scala and Clojure seem to be building some real momentum lately.
http://github.com/richhickey/clojure-clr/
Now porting your Clojure applications between VMs may or may not be a reasonable proposition depending on what kind of non-Clojure pure Java libraries you depend upon, but the fate of the Clojure language is thankfully not tied to the fate of the Java runtime.
I think Scala has a .NET port too, but I don't know if it's active.
http://flyingfrogblog.blogspot.com/2010/08/scala-is-foremost...
For a start, Dalvik is not a JVM implementation at all, in fact it's quite a different beast. See, e.g.: http://en.wikipedia.org/wiki/Comparison_of_application_virtu... which lists Dalvik as a register machine rather than a stack machine: definitely not a trivial difference.
Google's toolchain converts from JVM bytecode to Dalvik bytecode, which is probably what Oracle are going after with #5,966,702 but the rest of the patents are much more general. If anything Oracle are turning VM implementation in general into a patent minefield, not Java alone.
Anyway you look at it, Oracle has enabled a lot of FUD to be thrown at Java, and if your observation is correct, andyone who's working on any sort of non-Oracle derived JVM (and there are a bunch) had just been handed a lot of legal uncertainty.
Side note: I don't need hearing this shortly after learning about the RightHaven atrocity factory.
Except Dalvik is not derived from the JVM.
Sure they use the language, but what, are you going to tell me that I can't make a compiler that translates JVM bytecode to something else?
Should projects like http://ikvm.net be illegal?
Oracle is destroying the biggest advantage Java has.
Dalvik very much isn't a JVM. While both are bytecode interpreters you need to translate Java bytecodes into Dalvik ones to use the former. I'll need to read more (just woke up) to see just what Oracle is objecting to.
Bytecode based systems are an old old old concept due to the severe lack of memory available in the bad old days, e.g. I personally know that as of the mid-late '70s the Lisp Machine's compiler went to a bytecode that the microcode would then interpret. As I recall Smalltalk did this and I know it wasn't a new concept. Heck, what about UCSD's Pascal system?
Don't know the history of JIT compilation, let alone various tricks that have recently been developed; Java is the second wildly successful bytecode system, I think, after UCSD's, which was done back when memory was a lot more precious.
And Dalvik optimized for among other things low memory demand, e.g. it is register based and Java bytecode is stack based.
Thanks for pointing this out.