Java 8 seems like it will be around for a long time but some Java libraries have moved on the 11 and Java 17 seems to be a better runtime than 8 or 11.
While it’s probably a factor, I suspect that graal is far less of a factor than slow-moving enterprises are. There are a fair number of companies that rarely upgrade the JVM (because it is baked into their build and deploy process); they’re probably the biggest consideration.
That said, I have no idea how much of a fraction of the Scala audience they are, or how recently we’ve done a survey of who is on which JVM version. It would be worth knowing more concretely.
The result though is multiple and if you ignore the 4% “I don’t know” and 1.2% “Other” you get 155% total. If you normalize then you get 24%. I know I answered that I use Java 8 but only because I use it in CI because we support Java 8 - not sure but others could have answered like that too.
Of course 24% is a pretty big chunk and not sure what percentage of that number is in the category of just for testing purposes.
Scala’s ongoing support for Java 8 has something to do with users still using JDK 8, but it also has a lot to do with the lack of any great compelling benefit to the project to drop it. If we felt that dropping 8 would really speed up our development work or would allow us to offer really enticing benefits to users, I think we’d strongly consider it. But for the time being anyway, the question isn’t so much “why not drop 8”, it’s more “why drop 8”.
users still using JDK 8, but it also has a lot to do with the lack of any great compelling benefit to the project to drop it.
There’s a good reason. A growing number of Java and Scala libraries that dropped JDK8 already and the minimum is 11. If there’s a vulnerability to fix, a project using old JDK is not able to patch it. All should use at least JDK11 due to security reasons. So, there’s no big motivation IMO to support 8 in Scala if a big amount of libraries in the Scala ecosystem already dropped it.
Btw. I also voted as a user of 8 in the mentioned poll while I’m supporting the idea of moving forward.
why do you think java 8 doesn’t get security updates? java 8 still gets public updates for free. just not straight from oracle (i.e. the oracle builds are paid). you can get free openjdk 8 updates from other vendors, e.g. https://adoptium.net/support/ - java 8 will be supported “at least until nov 2026” - that’s almost 4 more years from now.
I haven’t said anything like that. Please re-read the sentences quoted by you. It might be unclear, so please let me phrase it more precisely.
What I meant, is if a project is stuck in JDK 8, it is not able to get the latest versions of many Java and Scala libraries. Now, imagine there’s a critical vulnerability in one of these libraries.
The number of libraries requiring the minimum JDK at 11 is growing. Also, for bug fixes or new features, one might prefer to use more recent versions of various libraries.
ok. now i get it. however, “many” and “growing” are not numbers. i have an impression that requiring jdk 9+ is still rarity among scala libraries. maybe adding minimum supported jvm version to scaladex metadata would clarify things?
btw:
is java 8 support holding back scala progress? if yes, how?