Win a copy of React Cookbook: Recipes for Mastering the React Framework this week in the HTML Pages with CSS and JavaScript forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Ron McLeod
  • Paul Clapham
  • Rob Spoor
  • Liutauras Vilda
Sheriffs:
  • Jeanne Boyarsky
  • Junilu Lacar
  • Tim Cooke
Saloon Keepers:
  • Tim Holloway
  • Piet Souris
  • Stephan van Hulst
  • Tim Moores
  • Carey Brown
Bartenders:
  • Frits Walraven
  • Himai Minh

Java Language Specification 17

 
Bartender
Posts: 1035
31
Eclipse IDE Postgres Database C++ Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I was thinking this morning "I should probably install Java 17 and update my copies of the JLS that I consult by default to 17 and start hitting the Java 17 JavaDocs by default too, a new LTS is a Really Big Deal!"

I think I jumped the gun a little bit, we normally go and look for it here:
https://docs.oracle.com/javase/specs/index.html

Where I don't see it yet, rather than here:
https://cr.openjdk.java.net/~iris/se/17/latestSpec/

Where I suspect everyone is just dotting their t's and crossing their eyes for final release sometime this month?

Or is the spec something that has also recently moved from oracle to openjdk?

I only ask because it seems a lot of things we used to turn to Oracle for are now openjdk, apache, etc.

What's the deal on this one?  And....Java 17, Yay!
 
Jesse Silverman
Bartender
Posts: 1035
31
Eclipse IDE Postgres Database C++ Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Similarly with the JavaDocs, I was going to try to update my several tabs perennially open for reference when I am studying or coding with Java 17, and noticed I can't find it yet.

When it gets released on the 14th (or if there is some unexpected delay, when it is released) would I expect to see this page change at the same time?
https://docs.oracle.com/en/java/javase/
 
Marshal
Posts: 73738
332
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Jesse Silverman wrote:. . . would I expect to see this page change at the same time? . . .

Yes.
 
Marshal
Posts: 22394
121
Eclipse IDE Spring VI Editor Chrome Java Windows
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I've did some checking myself last week. The official documentation is never made public until the release date.

There's one thing that may break a lot of code - JEP 403: Strongly Encapsulate JDK Internals. When modules were introduced, there was a JVM flag --illegal-access that defined how to handle this. The default was warn, with other options being permit, debug and deny. In Java 16, the default was changed to deny. In Java 17 (at least the RC I tried), the flag was completely ignored. The correct workaround is to open modules. I'm curious to see how frameworks like Jackson, Gson, or even JEE and Spring will handle this.
 
Jesse Silverman
Bartender
Posts: 1035
31
Eclipse IDE Postgres Database C++ Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thanks guys.

While researching this, I found numerous articles and blog posts deploring the um, deplorable amount of code that was still running on Java 8.

I am still nominally studying for a Java-11 based exam.  I am still running on Java 14 at the moment, but always consult the JLS for 16 SE, and the Javadocs as well.

If I see them warning against something there, I avoid it.

If I see something new and awesome I note it, and then mostly stick to Java 11, because...the exam.

I guess we will all have some fun stuff to talk about regarding Java 17 this week.

This is the first Java Release I paid attention to on the day of Release.

Smart companies get way out ahead and test their projects way before code freeze, because if problems are found, they can still argue to keep some behavior the old way, etc. etc.

I always worked at places that were reactive.  To "save time" we waited until it was too late to provide feedback, despite the companies being so large and having so many customers that our feedback likely would have mattered, if it came early enough.

I was often the one stomping out the resultant flaming bag of poop when the doorbell rang.

So Much Fun.
 
Campbell Ritchie
Marshal
Posts: 73738
332
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Jesse Silverman wrote:. . . Smart companies get way out ahead and test their projects way before code freeze . . .

Most places tend to stick to old versions and won't migrate until the neweer version has had a year or two for finding problems.
 
Jesse Silverman
Bartender
Posts: 1035
31
Eclipse IDE Postgres Database C++ Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Campbell Ritchie wrote:

Jesse Silverman wrote:. . . Smart companies get way out ahead and test their projects way before code freeze . . .

Most places tend to stick to old versions and won't migrate until the neweer version has had a year or two for finding problems.



If you have a large and complex code base, that is a double-edged sword.
Some of the problems you would find will be found by the work of others, reported by the work of others, and fixed for you with no work on your part.  Great.

But if there are problems that very few other people have, you may just be stuck with them later, and they might take a lot of work on your code to fix.

I think this latter case may be much rarer in a nice Pure Java application than a sprawling multi-lingual mess, which is what I spent a lot of time maintaining.

We would hit every corner and edge case, wait until the feedback period was closed, and then have no option to move forward but to make (sometimes somewhat large) changes to our code.

Ostensibly that is why Oracle tells people they should be testing their code with every new release every six months, instead of waiting until the next LTS and getting whammed with a whole bunch of things at once.

Again, probably less of a problem than a big messy mix of C++, C# and Java, and all sorts of dependencies, but potential issues still lurk.

It is nice to have them identified, and assigned some sort of "how hard will this be to deal with?" (if not fully addressed and checked-in) ahead of time.

Everyone will point out "Yeah, but that was time you could have been fixing actual bugs and adding actual new features for your paying customers!"

And so it goes.
 
Campbell Ritchie
Marshal
Posts: 73738
332
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Jesse Silverman wrote:. . . that is why Oracle tells people they should be testing their code with every new release . . .

Does anybody follow that advice?
 
Jesse Silverman
Bartender
Posts: 1035
31
Eclipse IDE Postgres Database C++ Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
As predicted, the links I mentioned magically started working this morning.

I have downloaded the Java SE 17 JLS and started updating my links to the Java SE 17 Javadocs.

Thanks, everyone!
 
Jesse Silverman
Bartender
Posts: 1035
31
Eclipse IDE Postgres Database C++ Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Watching the Event Live now for the Release...so weird that it is my first one to watch live.
 
Rob Spoor
Marshal
Posts: 22394
121
Eclipse IDE Spring VI Editor Chrome Java Windows
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Jesse Silverman wrote:As predicted, the links I mentioned magically started working this morning.


That's because Java 17 has officially been released.

I've updated https://robtimus.github.io/whats-new-in-java/, but I think this is going to be the last time. The reason: https://docs.oracle.com/en/java/javase/17/docs/api/new-list.html.
 
I do some of my very best work in water. Like this tiny ad:
the value of filler advertising in 2021
https://coderanch.com/t/730886/filler-advertising
reply
    Bookmark Topic Watch Topic
  • New Topic