"J. Lewis Muir" <jlmuir%imca-cat.org@localhost> writes: > On 3/24/16 7:37 AM, Greg Troxel wrote: >> Java and python I agree with you, but those are hardly paragons >> of compatibiltiy virtue. They are both examples of a language >> process where there is no language standard and the authors of the >> sole/dominant implementation think it's ok to change the language >> every major release, and users have to juggle which programs run on >> which versions. > > I'm puzzled by what you mean about Java. My experience is that Java > has been backward compatible for a very long time; I've been *very* > impressed that Sun and Oracle have kept it backward compatible for so > long. Honestly, it reminds me of C in this respect. I've never had > to change any Java code to make it work on a new JVM. IMHO, Sun and > Oracle have done a great job in this respect. (There are other things > I'm not pleased with, but that's a different story.) Sure, they release > new features in new Java versions, but they always remain backward > compatible: you can run code written for an old version of Java on the > latest JVM. Sorry, I was being a fuzzy and blurring issues. The problems with Java are: In practice, there seems not to really be a portable implementation. In the past, if you didn't run the (non-Free, binary only, limited platforms) Sun JDK/JRE, you were pretty much out of luck, and it was available for only a few platforms (albeit covering a large number of individual computers). This has gotten much better with openjdk, and maybe it's actually OK now, but I suspect that if I took at the machines pkgsrc runs on (all the OS-version-cpu tuples), and went to /usr/pkgsrc/lang/openjdk8, the success rate would be well below 90%. The language changes frequently, and then authors of programs usually quickly use new features, which means that one has to upgrade the language implementation or start to no longer get updates to other software. This is different than C, where adaptations to not building on somewhat old compilers are usually accepted as bugfixes. So I agree that one doesn't have to run old JDKs. But one does have to get the new one fast enough. Taken together, for this to count as ok, openjdk versions have to become stable before Java-using authors make the next version mandatory. And it has to be actually ok and not second-class to use openjdk instead of Oracle JDK.
Attachment:
signature.asc
Description: PGP signature