|
|
Subscribe / Log in / New account

Szorc: Mercurial's Journey to and Reflections on Python 3

Szorc: Mercurial's Journey to and Reflections on Python 3

Posted Jan 13, 2020 23:09 UTC (Mon) by ehiggs (subscriber, #90713)
In reply to: Szorc: Mercurial's Journey to and Reflections on Python 3 by Cyberax
Parent article: Szorc: Mercurial's Journey to and Reflections on Python 3

>That's not quite true

It is absolutely true. Libraries target JDK 8 because that's what Android is stuck on. It's still a hassle and Java's type system didn't save it from the problems.

Java 9 was EOL in March 2018. Java 10 was EOL in September 2018. And if you're a commercial user of Java 8 and don't have a license with Oracle or anyone else, support was EOL in January 2019.


to post comments

Szorc: Mercurial's Journey to and Reflections on Python 3

Posted Jan 13, 2020 23:12 UTC (Mon) by Cyberax (✭ supporter ✭, #52523) [Link] (4 responses)

> It is absolutely true. Libraries target JDK 8 because that's what Android is stuck on. It's still a hassle and Java's type system didn't save it from the problems.
The thing is, it's easy to have a library targeting JDK 8 to work on JDK 11. I have several packages that are doing that. You basically need to refrain from using JDK>8 features and you'll be fine.

This didn't work with Python, the transition from 2 to 3 required massive rewrites.

> And if you're a commercial user of Java 8 and don't have a license with Oracle or anyone else, support was EOL in January 2019.
Just use https://aws.amazon.com/corretto/ , it'll be supported for a loooong time.

Szorc: Mercurial's Journey to and Reflections on Python 3

Posted Jan 13, 2020 23:22 UTC (Mon) by ehiggs (subscriber, #90713) [Link] (1 responses)

>You basically need to refrain from using JDK>8 features and you'll be fine.

Indeed and this is not the desired state of affairs. And Java's type system did not save it.

> This didn't work with Python, the transition from 2 to 3 required massive rewrites.

Indeed and this is not the desired state of affairs. And Python's type system did not cause it.

Szorc: Mercurial's Journey to and Reflections on Python 3

Posted Jan 13, 2020 23:30 UTC (Mon) by Cyberax (✭ supporter ✭, #52523) [Link]

> Indeed and this is not the desired state of affairs. And Java's type system did not save it.
It did. I can run JDK 8 code in JDK 11 without any modifications, mixing and matching it freely with newer versions.

> Indeed and this is not the desired state of affairs. And Python's type system did not cause it.
Yes, they did. The string type was fundamentally changed, along with a significant chunk of the API.

Szorc: Mercurial's Journey to and Reflections on Python 3

Posted Jan 14, 2020 3:11 UTC (Tue) by cesarb (subscriber, #6266) [Link] (1 responses)

> The thing is, it's easy to have a library targeting JDK 8 to work on JDK 11. [...] You basically need to refrain from using JDK>8 features and you'll be fine.

Unless your package, or one of its dependencies, does bytecode manipulation and uses an old version of the bytecode manipulation library, which chokes on classes compiled for a newer JDK. Or your package depends on one of the several J2EE libraries which were removed by JDK 11 (some of them having no replacement outside of the JDK). Or your package, or one of its dependencies, chokes on the replacement of one of the several J2EE libraries which were removed by JDK 11, because it uses an old version of the bytecode manipulation library, and the replacement J2EE library was compiled for a newer JDK.

As late as the end of 2019, some packages were still announcing Java 9 compatibility fixes. For some reason, Java 9 had more compatibility issues than usual, and Java 11 made it worse by completely removing components first deprecated in the short-lived Java 9 release.

Szorc: Mercurial's Journey to and Reflections on Python 3

Posted Jan 14, 2020 6:12 UTC (Tue) by ssmith32 (subscriber, #72404) [Link]

Apache Beam is a reasonably popular library stuck on 8.. for similar reasons.

Of course, it is doing some pretty wacky stuff. But it's the only option for some things (e.g. GCP Dataflow )

Szorc: Mercurial's Journey to and Reflections on Python 3

Posted Jan 15, 2020 19:52 UTC (Wed) by nim-nim (subscriber, #34454) [Link] (3 responses)

And do you really think Android getting stuck has no relationship at all with Google getting sued and redirecting its investments elsewhere?

The Java leadership has been busy making itself irrelevant by alienating most of the rest of the IT world.

Though I wonder where that will leave all the Apache foundation Java projects. They can’t survive in a closed circuit loop forever. Scala is not the solution, its adoption outside the existing Java world is nonexistent.

Szorc: Mercurial's Journey to and Reflections on Python 3

Posted Jan 15, 2020 19:54 UTC (Wed) by Cyberax (✭ supporter ✭, #52523) [Link] (2 responses)

Google is moving towards Kotlin which runs fine on the JVM8. There are also third parties maintaining JVM forks (Amazon is one with Coretto project). Java will be fine.

Szorc: Mercurial's Journey to and Reflections on Python 3

Posted Jan 16, 2020 9:09 UTC (Thu) by nim-nim (subscriber, #34454) [Link] (1 responses)

That means some more years fighting on the governance of Java, on what is a real Java implementation, what is not, what APIs can/should be used or not, etc.

Who wants to deal with this crap forever? Easier to port to another language and let someone else fatten lawyers.

Szorc: Mercurial's Journey to and Reflections on Python 3

Posted Jan 16, 2020 16:20 UTC (Thu) by Cyberax (✭ supporter ✭, #52523) [Link]

Who cares? OpenJDK is under GPL so Amazon can freely maintain its fork. They just need to avoid calling it "Java" to avoid trademark issues.


Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds