4 ms·
They got sued for not adhering to the Java spec, not for their extensions. The latter would be ridiculous, it would mean you could never distribute the JRE toge
by pmjordan 16y ago
They got sued for not adhering to the Java spec, not for their extensions. The latter would be ridiculous, it would mean you could never distribute the JRE together with any sort of extra libraries. Even the Sun/Oracle runtime ships with non-standard extensions (javax.* , com.sun.*).
- acqq 16y ago> not adhering to the Java spec, not for their extensions. And AFAIK specs are made for "write once run everywhere." > it would mean you could never distribute the JRE together with any sort of extra libraries. You can as long as you are using only what Sun (now Oracle) approves. > Even the Sun/Oracle runtime ships with non-standard extensions They make the rules, so what they do can't be used as an argument.
- pmjordan 16y agoAnd AFAIK specs are made for "write once run everywhere." Yes, my understanding was that the MS implementation did not pass all the compatibility requirements. Adding extra functionality is entirely orthogonal to that point. IBM's, Azure's and all the J2ME implementations come with proprietary extensions and are blessed by Sun/Oracle. I don't follow your argument.
- acqq 16y ago> and are blessed by Sun/Oracle. I don't follow your argument I don't have anything more to add than to quote you (the keyword is blessed) and also point to my previous posts. As long as you're forced to get the blessing before you introduce the interface to your own platform (or be forced to leave something out because you know it won't be blessed) why should it be in your interest to maintain the technology of others if you have your own technologies and a platform that's attractive even by itself?
- pmjordan 16y agoFrom my own experience with it: - .class files compiled on Apple's JVM work fine on other JVMs - Source code written for Apple's version of javac will compile fine on other Java compilers. To my knowledge, Microsoft's JVM violated both of these requirements, which was Sun's bone of contention. (Android's Dalvik is in similar violation, but doesn't pretend to be "Java" - they're being sued based on patents IIRC)
- acqq 16y ago> .class files compiled on Apple's JVM work fine on other JVMs Technically, you don't need to compile "on JVM" but "for JVM." And it doesn't seem to be as you describe for most of the cases (in Sun's words, 98%). > Microsoft's JVM violated both of these requirements AFAI understand it was far more subtle: the language (the source form representation) was extended with the features which functioned only on Microsoft's implementation, and only such classes were affected. See http://download.oracle.com/javase/1.4.2/docs/guide/deployment/deployment-guide/upgrade-guide/ http://download.oracle.com/javase/1.4.2/docs/guide/deploymen... for a list of issues of switching from Microsoft VM based upon Java 1.1 to Sun's 1.4.2. The list appears to be very unimpressive.
- flomo 16y agoJava certainly does not guarantee "write once run everywhere", although Sun had a "Pure Java" branding effort at one time. What Microsoft did was extend the language to include an annotations feature (making it source-incompatible), and extending the JVM spec to include new opcodes (which crashed everyone else's JVM). Had they extended Java the conventional way there would not have been a problem.