tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Rewriting pkglint in a portable language



"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



Home | Main Index | Thread Index | Old Index