To Avoid Confusion: Oracle's Confusing New Java Numbering Scheme 183
twofishy writes "'To avoid the confusion caused by renumbering releases,' Oracle has announced that it is adopting a new numbering scheme for JDK 5.0, JDK 6 and JDK 7. 'The next Limited Update for JDK 7 will be numbered 7u40, and the next 3 CPUs after that will be numbered 7u45, 7u51, and 7u55." The vendor notes that a more elegant solution would require the changing of the version numbering scheme to accommodate different kinds of changes (for example by using 7u44-2 ). However this cannot be implemented outside of a major release, since doing so might break existing code that parses version strings (possibly including the Java auto-update system)"
Here's Oracle's announcement.
CPU=Critical Patch Update (Score:5, Informative)
An absurd TLA overloading.
Re:CPU=Critical Patch Update (Score:5, Funny)
To be more concise, simply say: ATO. (ATO = Absurd TLA Overloading.)
Re: (Score:2)
YHD
Re: (Score:2)
DYM, "TBC: ATO"?
I like their frozen yogurt...
Re: (Score:2)
Re:CPU=Critical Patch Update (Score:5, Insightful)
Oh, a different meaning for an acronym that's been in use for over 50 years. That will sure help with the confusion!
Re: (Score:2)
No 3 letter acronym is unique. At best, it's unique in the domain you are currently working in.
Re: (Score:3, Funny)
No 3 letter acronym is unique. At best, it's unique in the domain you are currently working in.
Well this one sure as hell fails that test!
Re: (Score:2)
cri would have done nicely.
or you know, they could have called them critical patches. or patches. or whatever - anything else than cpu.
but what the fuck is this about deciding in advance to skip some numbers on the scheme?
Re: (Score:2)
Oh, a different meaning for an acronym that's been in use for over 50 years. That will sure help with the confusion!
It's not an acronym, it's an abbreviation.
(or do you go around saying "CUPOO" to everybody?)
Re:CPU=Critical Patch Update (Score:4, Funny)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
TLA
Three Letter Acronym
Re: (Score:2)
It's not an acronym, it's an abbreviation.
Re: (Score:2, Funny)
critical update needed today
Re: (Score:2)
Christ Pete, Update!
http://www.petefinnigan.com/ [petefinnigan.com]
Re: (Score:2)
Its not like they could have just said Critical update patch...oh no, we need to make things confusing.
What happens when admins get confused and pour the contents of their beverage containers into their servers?
Re:CPU=Critical Patch Update (Score:5, Funny)
We apologize for the confusion in the Critical Patch Updates. The individuals responsible have been sacked. To avoid further confusion, all CPUs will be processed through CUPS, the Critical Update Patch Server.
And now the goddamn printer doesn't work.
Re: (Score:2)
Re: (Score:3)
LOL, WTF?
Why Does Name Matter? (Score:4, Insightful)
Re: (Score:2)
Why does name matter?
http://www.youtube.com/watch?v=Jg9w0YSMLHY [youtube.com]
Re:Why Does Name Matter? (Score:5, Informative)
Re: (Score:3)
Because programs are used to decode/encode the name.
...except that isn't the problem.
They are using an incremental number on the RHS (right hand side) of the "u" seperator, and that number may represent either a critial patch update or it might be a new minor version. The problem arrises when they attempt to associate FUTURE releases with stuff in bugtrackers and their ilk. They could have more CPU releases than normal releases, making the CPU minor release number much higher than the planned normal release, causing a bunch of confusion.
Their solution, IMO,
Re: (Score:2)
why not just incrementally switch to 1.2.3.4 version? and guarantee that api's wont probably break at minor bumps.
Re: (Score:2)
Because "Java 7.53" makes them look bad - 53 critical updates!
Instead they chose to obfuscate things and redefine "CPU", which doesn't make them look bad at all.
Re: (Score:2)
There's a solution to this, it's called deprecation. A proper way to do this would be to still support Wacky Version Numbers with System.getProperty("java.version") but note that it is deprecated and list a date after it will no longer be supported.
Then you add something new like System.getProperty("java.realVersion") which is just a number from 1 to infinity. (Or something more common like Major and Minor version.) Doesn't break anything, provides a way forward. Languages that aren't thinking 10 years/rev
Re:Why Does Name Matter? (Score:5, Funny)
Because the old numbering system of incrementing by 1 was far too complicated. The new system is much easier to understand:
* Limited Update releases will be numbered in multiples of 20.
* We intend for Critical Patch Updates to continue to use odd numbers. The numbers will be calculated by adding multiples of five to the prior Limited Update and when needed adding one to keep the resulting number odd.
* Updates containing Norton instead of McAfee will be prime numbers
* If an update actually contains intentional regressions, it will end in a 9. We recommend you do not install these updates.
* If the update number is a prime but also a member of the fibonacci sequence, it is considered a "surprise" update: It will be automatically installed, and will contain 1 or more undesirable features. It may also install the ask toolbar.
Obviously this system is far superior.
Re: (Score:2)
Because the old numbering system of incrementing by 1 was far too complicated. The new system is much easier to understand:
* Limited Update releases will be numbered in multiples of 20.
* We intend for Critical Patch Updates to continue to use odd numbers. The numbers will be calculated by adding multiples of five to the prior Limited Update and when needed adding one to keep the resulting number odd.
Obviously this system is far superior.
But then there is the even more superior solution which would be to get their shit together. Seriously, the situation with Java is beyond absurd. The number of updates to fix security holes is a few orders of magnitude beyond absurd. How is it even possible to create software so shitty and full of holes?
Re: (Score:2)
Re: (Score:2)
I'm pretty sure that Sun have done all the layoffs that they're ever going to do...
Re: (Score:2)
I belive the "surprise update" feature is patented by Mozilla.
Re: (Score:2)
Well the issue with version numbers are Important.
I actually like the new scheme it makes it much easier to see how up to date you are.
The problem was back with MS changing their version numbers after Windows NT 4/Windows 3.1 with 95, 98, ME, 2000, XP, 2003, 2008, Vista, 2012....
While the Date of the release is better, a general version number Major.Minor.Patch is superior, as it can really help you decide to Upgrade or Not or how much effort will it be to upgrade.
Major: Big New features, Full Compatibility
Just like line numbers in BASIC (Score:4, Funny)
Why not copy MS and have 2 ver numbers (Score:3)
Why not copy MS and have 2 ver numbers like how windows 7 is also 6.1
Re: (Score:2)
Windows 7 is 6.1 for compatibility reasons. When Vista went to 6.0 it broke a lot of applications that were incorrectly checking the Windows version, like so:
if (MajorVersion >= 5 && MinorVersion >= 1) {
Back when the latest version of Windows was XP, this code worked fine 100% of the time. Of course it fails to pass this check on Vista, where MinorVersion is 0. Windows 7 and Windows 8 are 6.1 and 6.2 respectively since they will pass this check. At least, that's what I've heard.
Re:Why not copy MS and have 2 ver numbers (Score:4, Funny)
Who would be stupid enough to check for the OS version that way? It should have been something like:
if ( ( MajorVersion * 10 ) + MinorVersion >= 51 )
{
}
Re: (Score:2)
Who would be stupid enough to check for the OS version that way? It should have been something like:
if ( ( MajorVersion * 10 ) + MinorVersion >= 51 )
{
}
You know it's possible to have a v4.12, right?
Re: (Score:2, Troll)
You know it's possible to have a woosh, right?
Re: (Score:2)
Haha, totally missed that, whoops!
Re: (Score:2)
That's quite shocking. Where coders that terrible in 2001? The whole point of checking for "this version or higher" is that it will work for this version or higher, not break as soon the version goes up.
Of course, calling windows 7 "7.1" and 8 "8.1" would address this particular issue just as well as "6.1" and "6.2", but they may have had other reasons for being version-conservative.
The problem with simply checking for "version >= X" is that sometimes X.5 breaks the app. The ideal approach would be to be able to certify later releases on an individual basis. However, that would require updating the app.
Re: (Score:2)
Or stop trying to be clever and use the fucking number system invented a gazillion years ago to, I dunno, number your versions?
Pick a number and start from there; whenever you fuck something up that needs a new compile, increment the number. There you go, fool proof versioning that even works with the age old less than and greater than comparers.
The only reason people think they need major/minor/build numbers is because some dumbfuck a handful of decades ago decided that the version number needed to be part
Re: (Score:2)
Or stop trying to be clever and use the fucking number system invented a gazillion years ago to, I dunno, number your versions?
Pick a number and start from there; whenever you fuck something up that needs a new compile, increment the number. There you go, fool proof versioning that even works with the age old less than and greater than comparers.
The only reason people think they need major/minor/build numbers is because some dumbfuck a handful of decades ago decided that the version number needed to be part af the product name, but he wanted to cover up the fact that he sucked at development and had to tack on a lesser number to not completely outrun the integer system with new builds.
The version number "has" to be part of the product name because different releases of the product can vary radically in both external (user-facing) and internal (codebase) characteristics. Tacking a version number onto the product name aids in supportability by attempting to ensure that all parties are, in fact, talking about the same thing. As a secondary characteristic, it makes it easier to document which features are available in what release, since the version number serves as a reference key.
Ideally,
Re: (Score:3)
There was a lot of terrible code that happened back then.
From around 1996-2006 was a real low point in Quality Code.
Before then Most Applications were DOS based, or mainframe based. Confined to forms that fit in 80x24/25 and did rather simple things. Then with Windows 95 release developers started a mad Rush to to make their Apps Windows Compatible. For many developers at this time, they didn't have much experience with Windows development and many developers were not really prepared for the complexities
Re: (Score:2)
Re: (Score:3, Informative)
Wrong. Ubuntu uses YY.MM date-based numbering.
Re: (Score:2)
Correct ... for the distro version.
The kernel version is 3.whatever.
Two completely separate numbers, incremented separately. Just like Windows OS versions and kernel versions.
Re: (Score:2)
They do...
C:\>java -version
java version "1.6.0_43"
Java(TM) SE Runtime Environment (build 1.6.0_43-b01)
Java HotSpot(TM) 64-Bit Server VM (build 20.14-b01, mixed mode)
IQ (Score:5, Funny)
Mensa can use this as a 'What is the next number in the sequence' for their IQ test.
Re:IQ (Score:5, Funny)
I hear Mensa is planning on using the Microsoft Copy dialog instead.
"You have 4 minutes left, then 3 minutes, then 29 minutes, then 1800 years, then 32 seconds, then potato. What is the next number in the sequence?"
Re: (Score:3, Funny)
Re:IQ (Score:5, Funny)
That's easy. The next number in the sequence is (not responding).
Re:IQ (Score:4, Funny)
A blue screen.
Re: (Score:2)
easy, its sid !!
Re: (Score:2)
BSOD
Oracle has always had confusing version numbers (Score:5, Informative)
Re: (Score:2)
Re: (Score:2)
Java, too, has had confusing version numbers for a good long while -- long before Oracle became involved with it. Just for example, I'm pretty sure Java 1.6 is significantly newer than Java 2.
So yeah.
It's only confusing because you are mixing real versions with marketing versions. Stop doing that.
Real world: 1.2 vs 1.6
Marketing: Java 2 vs JDK 6 (or J2SE 2 vs J2SE 6 for an edition-specific example)
So 2 is less than 6, as expected. Not as confusing anymore.
Numbering suggestion (Score:2)
Why not just switch the numbering to the sha of the package. Equally informative...
Simpler solution.. (Score:5, Insightful)
I resolved the issue by removing it.. perhaps, that is the intended effect. Apologies to those with no choice.
Re: (Score:2)
I've had a new PC for almost a year with no JAVA.
No apps/sites have complained and I run LibreOffice, too.
Re: (Score:2)
a bunch of programs that have java come with a java vm. it makes things easy to install.
but install packages take 90 megs for something that should be 2 megs..
If you are parsing version strings on Java updates (Score:2)
Re: (Score:2)
Re: (Score:2)
The way developers have been doing it for decades, using the de facto standard of major.minor.build version numbers.
IOW, JDK 5 uses 5.x.y numbers, JDK 6 uses 6.x.y numbers, JDK 7 uses 7.x.y numbers. X is incremented for feature releases and resets Y to 0. Y is incremented for security releases.
Simple. Easily parseable. And it the ways things used to be done before the whole stupid "my number needs to be bigger than your number, logic be damned" movement started.
Re: (Score:2)
They pretty much do that, just with a useless prefix and an _ instead of . as the last delimiter.
So instead of major.minor.build it is 1.major.minor_build, which means I could take your statement and easily alter it to read:
JDK 5 uses 1.5.y_z numbers, JDK 6 uses 1.6.y_z numbers, JDK 7 uses 1.7.y_z numbers. Y is incremented for feature releases and resets Z to 0. Z is incremented for security releases.
As you say, that's "Simple. Easily parseable."
The funny thing is, they never put out "feature releases" so t
Why not... (Score:2)
Something simple like: API-level (revision release date)
Isn't something like "Java 7 (20130514)" relatively obvious what it means?
All eggs in 1 basket. It may have been nice... (Score:2)
Sun made people feel safe putting their eggs all in 1 basket. Witness the result that many of us said was a foolish move.
C# may be a knock off and not have Oracle but then you have MS holding your eggs; and while MS might not act as badly as Oracle, they have a borg mentality that Oracle does not yet have with Java.
Do not build your business around closed languages. When C# becomes fortran the MS holdings company will still be extracting blood.
Oracle is secure (and just evil,) MS on the other hand has 1 r
Re: (Score:3)
Ask Toolbar (Score:4, Insightful)
I don't care what they call it so long as I don't have to install any toolbars.
Like seriously what is this 2003? It's crowding out my "Bonzi Buddy"
Apache (Score:2)
Re: (Score:2)
Oracle... we don't care. Please just donate Java to the trash.
TFYFY.
Oh wait, you mean they already did that?!
Obviously attempting to confuse the Malware (Score:3)
It was easier to change the version numbering scheme to break all the current malware rather than fix the myriad of holes in the code.
Why not something normal? (Score:2)
Why not just do a normal numbering scheme? If you dig into their packages, they sometimes claim stupidly to be version 1 of Java 7 update 17. WTF? Instead of that, how about Oracle just acts with some sanity and call it v. 7.17?
If you need sub versions of 7.17, then call it 7.17.1 and 7.17.2. You know, a sane person might do.
Or how about we all just drop Java since it's terrible and the cause of too many security problems?
Re: (Score:2)
But you're forgetting that Java 7 is actually Java 1.7, much like Java 6 was actually Java 1.6, and Java 5 was actually Java 1.5, etc.
So there's that implicit "1." that you need to prefix to these version numbers.
So that sentence in the summary should read more like:
"The next Limited Update for JDK 1.7 will be numbered 1.7u40, and the next 3 CPUs after that will be numbered 1.7u45, 1.7u51, and 1.7u55."
I can't wait to see what happens when they finally make it to Java 2.0... Will it be "Java 0"?
Re: (Score:2)
It doesn't really change the basic idea. In fact, I think it makes my point even stronger.
If it's Java 1.7, why refer to a version as 7u40-3 version 1.0? Are you ever going to have a version of Java 1.7 that you're calling 7u40-3 version 2.0? That's insane.
Just call it 1.7.40.3. Or really, make it simpler than that.
At least they're not horsing with the major number (Score:2)
Why not just list the number of bugs per version? (Score:2)
Or do we not have numbers that go that high?
I wonder if (Score:2)
Are their releases really called CPUs?
If so, that is so amazingly stupid it appears actually designed to confuse.
Why can't they do it like everyone else? (Score:2)
Re: (Score:2)
except the little problem of major component updates coming in v3.51 and the server OS being released with v3.5 on it,so many of your bleeding-edge programs wouldn't run.
I think they fixed this by simply reducing the amount of development going into .NET, thereby reducing the frequency of .net releases.
Re: (Score:2)
Re: (Score:2)
True, .net is much better than Java, but I think much of that is down to the tooling - try writing C# code in notepad!
They're both still pretty inefficient though, I've played a couple of games written in C#/XNA, they're ok, but there's a lot of grinding at startup and a lot of sluggishness after you've played for a while. Could be just general poor programming practice from games devs, but there's a fair amount of language "assistance" there.
Wow. Just wow. (Score:5, Insightful)
After reading the Oracle announcement through three times, I actually checked my calendar to see if April 1st had somehow come around again.
Which is a distinct possibility if Oracle takes over the Gregorian Calendar next.
Re: (Score:2)
I propose we call the next version of Java "7u5uck (Score:2)
EOM
Microsoft had a good idea (Score:2)
Why not call it "Java Blew"?
Warning: Ask.com toolbar (Score:2)
So basically the tech naive types get this thing installed and it thoroug
Is this the long-term solution? No (Score:2)
From TFA:
Is this the long-term solution?
This solution is a compromise to create predictable release numbers for future Java releases, leave version numbers available for unplanned releases needed to address security alerts, and maintain backward compatibility with systems that expect the version number to have only a family number plus a single “update” number. It will be the new standard for the affected version.
A more elegant solution requires changing the version format of the JDK to accommodate multiple types of releases. To avoid incompatibilities with existing code however, a change in the version string format needs to be implemented on a future major Java release and will have to be documented and communicated with adequate time to allow software developers to prepare for the change.
Is this the long-term solution?
This is a workaround. Oracle is being plain about this and at least making an effort not to break applications.
Answer: (Score:2)
It's not confusing, it's just Klingon numbering [slashdot.org].
Re: (Score:2)
Allow us to assign a fix/enhancement to a specific release in our bug systems. To accomplish this all planned releases must have predictable numbers.
Oh, so the numbering change is for your benefit, not mine.
It's for everyone's benefit. This will permit knowing when a bug is slated to be fixed, which currently has to be managed out-of-system.
Re: (Score:2)
simply incriminate the Release number
Sadly, this is their current process.
Re: (Score:2)
I just had the realization that perhaps auto-correct is some emergent AI's first baby steps at trying to contact us. The GP is certainly evidence of it.
Re: (Score:2)
This seems like a joke, but it's actually a good thing how the kernel went to 3.0. They realized that their numbering system was getting out of hand, and that the leading '2' was no longer needed. Emacs did something similar several years ago.
I think that may happen with android in the not distant future (rumours going around that the next update will be 4.3 instead of 5.0). maybe 4.5 will just be 5, then we'll have 6, etc.
I wonder if java will ever stabalize this way? (java 8, 9, 10)
I, for one, welcome our
Re: (Score:2)
>
I wonder if java will ever stabalize this way? (java 8, 9, 10)
I, for one, welcome our new leading-version-number-dropping-for-readability overlords.
Well they kinda already did back in 2004 when v1.5 came out by calling it "5.0" (and retroactively applied the lost prefix to all versions back to v1.2). And with v1.6 they dropped the ".0" suffix that was gained by for the official product name.
But, that was all in marketing land. In the real world, where it really matters, it has still has the leading "1." in the version. All the devs know, understand, and accept this with little concern.
I've long wondered what it would take to get them finally bump up
Re: (Score:2)
Silly kids! Java is for dirty floors, not clean tables!
Re: (Score:2)
Marvin? Of course. But he's a bit paranoid.
Re: (Score:2)
That's not Java(TM)
Re: (Score:2)
v.8.0.0.8.1.3.5
s/u/\./