4 ms·
Thanks, it naively hadn't occurred to me that Android would be using a non-Sun JVM, and given what you've said it seems that would be a viable route for an IP l
by seldo 16y ago
Thanks, it naively hadn't occurred to me that Android would be using a non-Sun JVM, and given what you've said it seems that would be a viable route for an IP lawsuit (though it still seems in pretty bad faith).
- WildUtah 16y agoDalvik would be better if Google had just licensed Oracle's Sun JVM or used the open source version. As an occasional Android developer I am constantly banging against the limitations and performance of Dalvik. It doesn't do memory management nearly as well as the JVM, and it handles dynamic dispatch and one-off closure hacks (local classes) slowly. It won't easily accept generated bytecodes. It has mysterious performance headaches (mostly memory management related I think). I'd prefer that Oracle go to heck with these bogus patents for the health of the industry but Google should have just cooperated from the start.
- nostrademons 16y agoOn the flip side, how do you know you wouldn't run up against those limitations on a phone that used OpenJDK? I don't do much mobile dev, but I've had friends that did JavaME development, and they didn't seem to like it any more than Android. Dalvik was designed specifically because Sun's JVM performed poorly on memory-constrained devices. In other words, your issues may be caused by mobile development, not by Android development.
- seldo 16y agoGiven that Eric Schmidt is the former head of Java at Sun, it seems unlikely they'd have written their own JVM if they didn't have a good reason to do so. Also, JavaME is awful.
- gchpaco 16y agoThe Sun JVM is a lot of things and got a lot better and a lot faster over time, but it is an astounding memory hog. Only thing I've ever seen that will (seriously) reserve 64 bits for a Boolean field on a 64-bit VM.
- nl 16y agoDalvik is a register based VM, as opposed the the stack based JVM. Also Sun removed the classpath exception when they put JavaME under the GPL. That means if you used the GPL'ed version of Java on a mobile device then it becomes viral - including to any application code. (That's why most GPL'ed Java programs use the classpath exception). From Sun's point of view, this was a good idea because it allowed them to protect JavaME licence revenue. Google saw JavaME as outdated, though, so instead of licencing it they took the Apache licensed Harmony project (ie, a clean room, Apache licensed version of the Java class libraries) and build Android around it.
- bad_user 16y agoYou haven't worked with Java ME then ;) Dalvik limitations are very justified, and even if phones improve over time, Dalvik also evolves. Also when going head to head with Apple and Microsoft on such a far-reaching platform, having full control over your platform is valuable.
- krosaen 16y agoanother technical reason for going with a new VM: every process (e.g every app) runs its own VM for security purposes. dalvik claims to have a much lower memory footprint. http://www.youtube.com/watch?v=G-36noTCaiA http://www.youtube.com/watch?v=G-36noTCaiA
- vessenes 16y agoThere wasn't any cooperation available, unless Google wanted to pay megabucks for Java ME, and force their developer chain to do the same: Java ME was never open sourced. Essentially, Sun said "We will give away Java, Open Source, as we planned to do. Oh, not mobile, because Nokia uses it and it makes us lots of money. Of course, we all understand reimplementing Java ME would be far too much work for any one company to do. Feel free to license." Google said "Eh, we'll just write our own JVM that runs on phones, thanks. That's how we roll over here." Now there are lawsuits, because Sun tried hard to make sure you had to pay if you wanted Java on mobile devices.