On Jan 20, 5:21 am, Casper Bang <[email protected]> wrote: > Nothing you've said above, serves to contradict what I say or convince > me that I am wrong. Fact: To support multiplication, the JVM specifies > imul, lmul, fmul and dmul instructions (same overhead for addition, > subtraction, division, modulus, negation, load, store etc.) and there > simple aren't enough instructions left of the 255 available, to do > this in a backwards compatible way. I'd like to be proven wrong, but > changing binary backwards compatability is extremely unlikely scenario > among the conservative gang of Oracle developers.
Adding new instructions, removing the 255 instruction limit, or even switching to a completely brand new instruction set entirely wouldn't break backward compatability at all. It would break forward compatability. To use a made up example, let's say Java 9 added 100 new instructions. Backward compatability would mean that the Java 9 VM could still understand Java 1-8 bytecode; of course it would! Forward compatability would mean that the older VMs would understand the new bytecodes; this generally doesn't work. Software projects do stuff like this every day. Regarding the C library access, sure. I said exactly that earlier in this thread. C# provides much easier native code integration (often called FFI) than Java does with JNI. That's my impression although I've never used JNI directly; but I've used wrapper libraries like JavaCL/JOGL. I've heard Lua also does this exceptionally well, which is why it's so popular in video games. In my years of C# development, we did this quite a lot in the early days when the .NET libraries were immature and you had to call Microsoft Win32 APIs in C for various things. Now, it's more of a performance thing for non-standard inner- loop type functionality. The legal issue is a big deal. Most of us aren't deeply knowledgable (or interested) in the legal nitty gritty of this, but if someone really were to make a PlayStation JVM type product a reality, it would be extremely critical to research and understand this issue thoroughly. Ultimately, even in the worst case scenario where you can't use any Oracle related tech without major lawsuits, you could still find another legally safe VM, whether it's one of the dozens of alternate Java VMs, or jump to something completely separate like LLVM. The Oracle lawsuit against Google over Java is worrisome. And Oracle doesn't come across as the nice guy; I know their argument is that Google wanted to use GPL open source Java code and effectively take it semi-closed source where they do development in private and release code to the public on their schedule. That actually makes sense, but their interests seem so aligned, I can't believe they couldn't come to a reasonable agreement. But in some ways, Microsoft is more worrisome, in that they are lot better at winning lawsuits against competitors who aren't even using their products. Android made a better product than they did, and Microsoft is able to use larger teams of fancy lawyers, and buy enough legal and political influence, to force a completely separate competitor to pay them money! Sure, they didn't sue Mono; they love the Mono team, the two have had a happy partnership, and they provided funding for the Mono team. That doesn't say much. -- You received this message because you are subscribed to the Google Groups "The Java Posse" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.
