Slashdot is powered by your submissions, so send in your scoop


Forgot your password?
Java Oracle Programming

Oracle Releases Java 10, Promises Much Faster Release Schedule ( 134

An anonymous reader quotes Application Development Trends: Oracle announced the general availability of Java SE 10 (JDK 10) this week. This release, which comes barely six months after the release of Java SE 9, is the first in the new rapid release cadence Oracle announced late last year. The new release schedule, which the company is calling an "innovation cycle," calls for a feature release every six months, update releases every quarter, and a long-term support (LTS) release every three years. Java 10 is a feature release that obsoletes Java 9. The next LTS release will be Java 11, expected in September. The next LTS version after that will be Java 17, scheduled for release in September 2021...

The six-month feature release cadence is meant to reduce the latency between major releases, explained is Sharat Chander, director of Oracle's Java SE Product Management group, said in a blog post. "This release model takes inspiration from the release models used by other platforms and by various operating-system distributions addressing the modern application development landscape," Chander wrote. "The pace of innovation is happening at an ever-increasing rate and this new release model will allow developers to leverage new features in production as soon as possible. Modern application development expects simple open licensing and a predictable time-based cadence, and the new release model delivers on both."

This release finally adds var to the Java language (though its use is limited to local variables with initializers or declared in a for-loop). It's being added "to improve the developer experience by reducing the ceremony associated with writing Java code, while maintaining Java's commitment to static type safety, by allowing developers to elide the often-unnecessary manifest declaration of local variable type."
This discussion has been archived. No new comments can be posted.

Oracle Releases Java 10, Promises Much Faster Release Schedule

Comments Filter:
  • 6 Months? (Score:2, Insightful)

    by Anonymous Coward

    Is this Oracles attempt to finally destroy Java for good? How enterprise friendly...

    • Re:6 Months? (Score:4, Insightful)

      by Z00L00K ( 682162 ) on Saturday March 24, 2018 @03:14PM (#56319847) Homepage

      The 'var' that exists in C# is one of the worst ideas ever and the fact that Java didn't have it was one of the benefits of Java.

      'var' is an item for lazy coders.

      • 'var' is an item for lazy coders.
        Please explain ...

        • by Anonymous Coward

          Easy: He's trolling. var is actually one of the best features in Java, just as auto is one of the best features of modern C++. Anyone who says otherwise is trolling.

      • 'var' is an item for lazy coders.

        'var' is necessary for anonymous types, which can be very useful in some scenarios. I do discourage lazy use of var for declaring instances of known types though.

        • by Z00L00K ( 682162 )

          And why would you want anonymous types - it's making it just a lot harder to understand the solution and also harder to do code analysis.

          • And why would you want anonymous types

            It's another tool in a programmer's toolbox; if used properly, it saves time and effort. It saves you from a proliferation of classes that will only be used once, in some method scope. Having to distinguish for example between class Employee; class EmployeeDataFromDatabase; class EmployeeFilteredBySalary; class EmployeeWithSalaryAndBonus etc will NOT help with maintainability.

            The compiler also defines GetHashCode/Equals for you implicitly, so you can use anonymous types in LINQ queries with less bother.

            it's making it just a lot harder to understand the solution


          • Wrong, why would I need to declare a class for a one time use in the same context? I had to do something similar just this week, create an anonymous object comprising of 2 fields from a class that had 10+ more but didn't need them.
          • by ndykman ( 659315 )

            For the same reason Scala and Go has them, when dealing with functional programming with classes it is really useful to select and filter only the wanted properties of objects (possibly with multiple different types, mind you) without having to declare every possible permutation of them as it's own class. It's still type checked and you don't lose type safety. There's more advanced uses as well.

            I know it is easy to think C# must be bad because of Microsoft, but it is a very well designed language and other

      • Speak for yourself. It is not an item for lazy coders, if I can write less code, the better. Having to write twice in most cases the type to declare a variable, it's so antiquated! The compiler already knows the type, and so should you! You should already be writing clean code anyways, method names should be concise and clear.
      • by ls671 ( 1122017 )

        I agree, in Java, it is recommended to declare variables as Object since it is an OO language. And this works since java 1.0!

        Here is how I do it:

        Object locale = new java.util.Locale("US");
        Object count = new Integer("0");
        Object lowerCase = "USA".toLowerCase();

        This way, you will never encounter type problems!

        • Well,
          I just tried it, but


          does not compile ... can you tell me why?

          • by ls671 ( 1122017 )

            Sure! It is easy!


            aahhh... beginners that weren't there circa 1.0! :)

            • Hehe, nice try :D

              Actually my original code would have compiled, because there is a println() method that accepts Object's and calls toString() on them ... the parent was just an idiot I liked to tease.

              • by ls671 ( 1122017 )

                Nope, your code would never have compiled.


                wouldn't have compiled since .toLowerCase() is undefined for Object types.

                This would have compiled although and I understand that this was what you were trying to say:


      • by mikaere ( 748605 )
        I call bollocks on this. I use var all the time in C# - it simply does not hinder understanding at all. If you adhere to principles of clean code then your methods should be small and entirely focused on one thing (aka Single Responsibility). And, of course, the variable names should clearly indicate their role or purpose. Repeating the in the variable declaration simply adds noise (making the code dirtier, not cleaner).

        Let me guess - you love using static method calls and can't see the point of unit
  • There are other things I like about Java but a lot of them were stripped away by Oracle and the language "innovation". I like slow and stable. That's what Java was about. Not running after every fad. Thinking and taking things slowly.

    That's gone. Shame.

  • by Templer421 ( 4988421 ) on Saturday March 24, 2018 @03:14PM (#56319845)

    Problem with JAVA is syncing up all the damn versions between servers and clients.

    FASTER versions isn't helping.

    • I clicked on the story just to post this. Why are more frequent releases per unit time a good thing? What shortcoming in Java does this address? Those more knowledgeable might be able to say something, but I thought the stability was a *good* thing...
  • by Shemmie ( 909181 ) on Saturday March 24, 2018 @03:15PM (#56319853)

    I'll now not update it on a 6 monthly basis? :/

  • If the var statement is a big feature for you then Kotlin is way ahead. Just sayin.

    And if you think I'm updating my Java environment every 6 months then you must think my farts smell like rose water.
  • by 93 Escort Wagon ( 326346 ) on Saturday March 24, 2018 @03:29PM (#56319893)

    I don’t think I’ve ever heard anyone ask for a faster release cycle for java.

    I have, however, heard (many times) people requesting that java die in a fire.

    • by nateman1352 ( 971364 ) on Sunday March 25, 2018 @05:12AM (#56322051)
      Indeed, no one asked for this except Larry Ellison. Make no mistake, Oracle doesn't do a damn thing unless it serves as a way to screw their customers harder than they did before. You can be sure that these every 6 month releases introduce many more frequent opportunities to add small subtle "bugs" that just so happen to break popular enterprise software packages. This is nothing more than a shameless attempt to charge you through the teeth for the JRE. The LTS JRE that is actually able to run your software will come with one of the infamous mandatory support contracts and exorbitant license fees. Java and the JRE should be considered harmful by everyone ever since the Android lawsuit.
    • by sad_ ( 7868 )

      users probably didn't ask for this, but java developers sure did.
      that is why you have so many open source libraries available for java that complements it with things people find missing in the core language.
      a great example is joda time, which does time handling/manipulation and almost everybody used. while a decent native solution has only been available since java 8.

  • by DeplorableCodeMonkey ( 4828467 ) on Saturday March 24, 2018 @03:44PM (#56319939)

    Explicit LTS versions vs non-LTS will enable the conservative to have a roadmap and the adventurous to keep going with new ideas and features where the two eventually converge.

    I'm personally quite sick of joining "enterprise" teams that use wildly past their shelf life versions of Java and then get indignant when I pointedly ask them WTF they're doing calling it "secure" when the product has been abandonware WRT security for over a year.

    Right now it feels like "Java 7 vs 8 vs 9" is a matter of opinion. Now at least we can say "you chose a non-LTS version and didn't keep up... WTF?" and stuff like that. Oracle is at least now saying "this is for this type of user and that is for that type of user" and if you try a third way the answer is "you're wrong" unless you accept full responsibility.

    • We still use Java6 at work lol. Change for the sake of change is expensive and our Oracle12g based tools and version SQL Developer work best onthat version. Upgrading puts us on a rent like EULA so we can't ever upgrade according to our finance guys. My previous employer just switched to java 7 and will stay there for years to come. All it;s customers have standardized only on Java jre7 for things like certs and code signing so we need an ancient version to make sure their tools work on our machines.


      • I think that a LOT of organizations are still using Java 6 and Java 7 in their business. I know that last two organizations that I worked for have.

        An officially LT supported Java 11 release might be the excuse they were looking for to skip upgrading to Java 9 and Java 10 and go straight for that version.

      • What would be an alternative to Java?

        C#/.NET? I don't think so.

        So, what else? We could put a nice tool chain on CLANG to support everything that Java can, e.g. Reflection/Introspection/Serialization ... but it seems no one is doing that at the moment.

        A sanitized C++ running on a VM with optional GC, that would be fine ... but I see no one going there.

        Or an open source Eiffel ... but then again it would be verbose like Java.

        On the other hand, image based environments like Smalltalk would be cool, no one is r

        • Explain why C#/.Net isn't a viable alternative? With the open source .net core on its way, things are very interesting.
          • .net core is not on the way. It's been here for 2 years now.
          • Because it lacks all the open source tools and libraries, Java has. It has no web server, like tomcat e.g.
            C# versus Java is simply an awful language, but you could use managed C++ of course, that wold be a plus. Most Java alternatives like Groovy, Scala, Kotlin etc. doc. don't run on .Net

            And the naming conventions of C# just suck :D a pain for my eyes ...

            • by lgw ( 121541 )

              C#, the full language, is years ahead of Java and a far, far better language. So much less boilerplate with C#. Heck, Java is plain unusable without Lombok.

              OTOH, until the language has fully rich open source support on Linux, I'll pass. Does seem to be headed that way, however, so I'm hopeful.

              • I guess that is a matter of taste, I find C# nearly unusable and you think the same about Java ... but that is why I mostly use Groovy and hope that my current project slowly shifts to Scala :D

            • None of the statements of fact about c#/.net in that post are correct.

            • I've looked at Tomcat in the past and could never understand why anyone would want such an unwieldy piece of shit - sure, .Net has nothing like it (thank fuck), and as a result I prefer to use OWIN self hosting or Kestrel httpd (the .Net Core httpd by MS) for my web apps, and stick them behind a standard reverse proxy like Nginx or HAProxy so the heavy lifting is done by an app dedicated to it.

              Lack of a "Tomcat" is not a negative., and you seem to be missing the massive nuget library which is mostly open so

              • Tomcat was just an example for the implementation of the Servlet API.
                APIs in Java are generally defined by experts of the field.

                In .Net I have no idea why everything is so horrible unusable. But: I did not use it since 10 years, so perhaps it got better ;D

        • What would be an alternative to Java?

          C#/.NET? I don't think so.

          So, what else? We could put a nice tool chain on CLANG to support everything that Java can, e.g. Reflection/Introspection/Serialization ... but it seems no one is doing that at the moment.

          A sanitized C++ running on a VM with optional GC, that would be fine ... but I see no one going there.

          Or an open source Eiffel ... but then again it would be verbose like Java.

          On the other hand, image based environments like Smalltalk would be cool, no one is really pushing that either.

          So, it looks like we are stuck with Java the next 30 years.

          I for my part don't mind that.

          Easy Erlang the new hip rockstar language []

          • Erlang is nice for highly interactive multi threaded environments, e.g. in telecommunications.
            But pretty difficult to use for desktop applications or apps.

            Perhaps OCaml ...

    • Actually you should have the recent JDK/JRE for modern libraries, like the streams, but program in Scala and Groovy ... the progress Java makes as a language is simply not radical enough.

  • by Anonymous Coward

    The best would be 1 release, no schedule. A complete language fixed in its function forever with no bugs.

    Having a faster release cycle means either they are spinning the language or patching a lot of bugs. So yes patching the bugs faster is better but I would prefer they spend the time to not have bugs in the first place.

  • by Anonymous Coward on Saturday March 24, 2018 @04:37PM (#56320123)

    They serve no good point, but virtually guarantee lower quality. Yet, like flat UIs with non-detectable interactive elements, they have to be done, "because everyone is doing them".

    The stupidity of humanity is without bounds.

    • Yeah, the subject line should read "Oracle Releases Java 10, Threatens Much Faster Release Schedule".

  • Right way: ask your ide to guess the variable type, and insert variable with this type. It's good to know if the inferred type changed.....

  • Queue all the complaining from being behind and not wanting to move to the new version... AGAIN!

    Just went though a bunch of BS from old lame versions that vendors LOVE to include in their distro of software so their broken code will work.

The only function of economic forecasting is to make astrology look respectable. -- John Kenneth Galbraith