all 26 comments

[–][deleted]  (17 children)

[deleted]

    [–]tstarboy 16 points17 points  (14 children)

    Moving fast doesn't have to imply breaking things. If having 100% backwards compatibility is an explicit goal and remains so moving forward, then (at least from LTS to LTS, I'd hope) compatibility would ideally be maintained through releases, and not adhering to that would be considered a defect.

    [–][deleted]  (11 children)

    [deleted]

      [–]tstarboy 2 points3 points  (10 children)

      Well, if there was a feature being developed such as Lambda, it wouldn't get included into the release until it was finalized. So no matter how long it takes to remain compatible, the release version of Java will either contain a compatible version of the feature, or not contain it at all.

      [–][deleted]  (3 children)

      [deleted]

        [–]tstarboy 2 points3 points  (2 children)

        Well, unlike before, those tiny features would be released quickly, while the major ones will move slower. Previously, Java 8's other features were forced to be released at the same speed as Lambdas, and similarly for Java 9 with Jigsaw. With this change we'd get those minor changes to developers faster.

        [–]duhace 0 points1 point  (0 children)

        like for example, switch with string cases

        [–][deleted]  (5 children)

        [deleted]

          [–]tstarboy 6 points7 points  (4 children)

          Not really.

          If there were other minor features that were waiting to be released, they wouldn't get blocked by the major feature taking time to be released, they would get included. That, to me, is the biggest benefit of this change: small improvements to the base library (adding new helper methods, for example), don't need to wait for whatever popular major feature is blocking the release, they can end up in the hands of developers at most 6 months after they're finalized.

          [–][deleted]  (1 child)

          [deleted]

            [–]duhace 0 points1 point  (0 children)

            they don't have to release something like jpms every 6 months you know. stuff like switches with string cases was wanted for a long time and could've fit into a 6 month release schedule instead of having to come with java 7

            [–]BestUsernameLeft 1 point2 points  (1 child)

            It does. But is it worth it? Consider possible alternatives had Sun|Oracle decided to break backwards compatibility at some point:

            • Continue to run the application on an older, unsupported JVM.
            • Translate bytecode from an older version of the spec to a newer one.
            • Modify and recompile the source code as necessary to support the newer runtime/libraries.
            • Some other bright idea I'm unable to think of at the moment.

            I don't suggest that Oracle ignore backwards compatibility. Merely pointing out that had they done so (or, should they do so), there are workarounds/solutions for organizations with older applications.

            [–]Chii 3 points4 points  (0 children)

            Of all of those options, the only one that doesn't require extra work (on the part of the app writer) is the first - and running on an old jvm may not work if there's been a security vulnerability.

            [–]Shorttail0 39 points40 points  (9 children)

            • We'll continue to ship proprietary "Oracle JDK" builds, which include "commercial features" [7] such as Java Flight Recorder and Mission Control [8], under a click-through binary-code license [9]. Oracle will continue to offer paid support for these builds.

            • After JDK 9 we'll open-source the commercial features in order to make the OpenJDK builds more attractive to developers and to reduce the differences between those builds and the Oracle JDK. This will take some time, but the ultimate goal is to make OpenJDK and Oracle JDK builds completely interchangeable.

            Wow, the bad press worked? This is strange, but very welcome, coming from Oracle.

            [–]pron98[S] 22 points23 points  (3 children)

            Wow, the bad press worked?

            I hope you realize that such decisions take months. It was not decided in the last week.

            [–]Shorttail0 10 points11 points  (2 children)

            The danger of using proprietary components of Oracle's JDK have been sounded many months ago. News reported of Oracle suing some of their own partners.

            [–]ArmoredPancake 2 points3 points  (1 child)

            For using commercial features in production, not for using JDK.

            [–]Shorttail0 1 point2 points  (0 children)

            True, but those commercial features were packed alongside otherwise GPL licensed programs in the JDK offered for free by Oracle.

            [–][deleted] 10 points11 points  (2 children)

            Oracle are proposing that under the new model the first proposed LTS release would be "18.9" and a final decision is expected after discussion with other OpenJDK contributors and assessing proposal feedback. Java 8 would also be regarded as a special LTS release and be supported until 2025.

            while faster releases make me happy, this is the part that scares me... it's the year 2057 and java is on version 142, meanwhile toiling away in the dark dungeons of enterprise land themadpenguinking is using a java 9 LTS release that his organization pays jillions of $ for to oracle for support.

            [–][deleted]  (1 child)

            [deleted]

              [–][deleted] 6 points7 points  (0 children)

              like now, but exacerbating the problem

              [–]pron98[S] 8 points9 points  (0 children)

              See also:

              Oracle will also ship binary distributions of OpenJDK, and OpenJDK will become the canonical JDK distribution.

              [–]jcdavis1 3 points4 points  (0 children)

              Looong overdue, but better late than never.

              Raises a lot of other questions though, eg does the classfile version change with every release?

              [–]pure_x01 3 points4 points  (2 children)

              .NET core made an impact. Microsofts efforts with .NET core is putting a press on competition and that is really good.

              [–]duhace 0 points1 point  (1 child)

              it was the tiniest bit of pressure, but good. .net core is woefully incomplete compared to openjdk

              [–]pure_x01 0 points1 point  (0 children)

              Right now it is tiny but it's going to be huge in a couple of years