> HashMap.putAll() now has a fast-path when the Map is a HashMap, which directly calls putHashMapEntries(), resulting in a 66-86% improvement (PR #28243);
> A new intrinsic for the AVX2 architecture has been added for binary search, resulting in a 1.5x to 2.35x improvement for arrays above a certain threshold (int=256, long=768, short=512, char=512) (PR #30612).
Ok THIS is impressive!
Article seems AI generated. Is there an official announcement we could be discussing instead?
I didn't read the article, it doesn't open for me (HN hug?).
Java was great at its time but then had to go. Oracle gaining control over them sped up this process.
Poor Android got caught up and now half our phones don’t work
I disagree. The open web likes bashing it as a scrape goat. Reddit, X/Twitter, etc. It's died down some lately but there were at least a couple a years when this was very out there.
Basically we get a new major version release on a schedule. Everything that is finished gets packaged in and everything else pushed to the next release.
The issue before was that they marked beforehand "version X will contain feature Y" and then feature Y got delayed by 3 years which means everything else in version X also got delayed by 3 years even though they were done 6 months ago.
The current numbering scheme is annoying and distracting, bears no information yet is still error prone.
Applications that need to move slower can stick to LTS versions. LTS hopping has become a little bit more viable since the interval has been shortened to two years, i.e., four major versions.
I'm not sure what's your thought process here. I'm not saying they should have a release every 2 years instead of every half a year, but that their numbering scheme is bad.
It makes upgrading harder. If they'd just put the date in the version field, people would know how old the software is (this applies to every software btw not just Java and Ubuntu).
Their current versioning system doesn't help anyone in any imaginale circumstance.
Does it tell you anything? If this "software" just bumps the date and never provides anything meaningful it is useful to you? It's about the substance.
I think you mean "(Year % 100).version". Or is it "(Year - 2000).version"? Pardon me for being overly pedantic, but ever since Y2K it really bugs me when someone refers to a 2-digit number as "the year".
> This release should've been called 26.1, then 27.0, 27.1, 28.0 and so on.
And how does that bear any information any differently?
- what are the major characteristics of the program
- how old is the program
Traditional software versioning helps in the first case: they bump version after a big event (new feature, rewrite, etc). Date based versioning helps in the second case. (I prefer date based versioning over traditional or semver.) Their numbering system doesn't help anyone in any case. It's just... there. A noise.E.g. just this article title on HN: "Java 27: What's New?" doesn't tell you whether Java 27 is old or new. "Java 26.1: What's New?" would.
How does 26.1 tell you that? Because you "assume" it is a date? It also still doesn't? How do you know the new 1 isn't 26.100?
> Traditional software versioning helps in the first case: they bump version after a big event
They pretend to. It's given most developers headaches in terms of you have to have something to bump the version so either they make something up or never do it and so fails your test either way.
At the end of the day either:
You care: a quick check won't hurt. It's twice a year.
You don't care: what difference does it make?
Rust releases every 6 weeks, since 2016...
If you don't want to update, just don't?
If you feel (!) pressured, you should work on that.
Maintaining binary compatibility is a principal goal of the platform which continues to constrain design decisions for all future changes.
Then releasing more often is better, because the security fixes get out of the door faster?!
If previously a Java Update took 3 years, then the corresponding JVM version would be 3 years old as well.
If there were patch release in between, I see no difference to now.
Otherwise what are we doing here?
That said backwards compatibility problems still hit as some libraries enjoy using internal APIs.
It's not an every time thing and it's been easier and easier with updates.