Java 27 Released

(mail.openjdk.org)

83 points | by mkurz 1 hour ago

7 comments

  • moomin 46 minutes ago
    C# dev here: it’s amazing how different this is from a Microsoft release. First off, Oracle are doing versions at approximately twice the cadence. But also, and I’m guessing this is a function of the much larger Java audience: things rarely get two preview versions in a proper release. Updates in beta versions, yes, all the time. It also feels like Microsoft are bundling a lot more into the platform and leaving less to the community. Again, probably an artifact of the different sizes of the communities. Also, the page reads like an open source “We’re finished, we’re tired.” announcement rather than the razzmatazz of a Microsoft release.
    • kllrnohj 30 minutes ago
      > First off, Oracle are doing versions at approximately twice the cadence

      Is that actually a good thing?

      But Oracle started playing a game, for better or worse, where they decided to couple the "language version" with a single specific runtime's release schedule. For example, in "Java 27" there are exactly 0 language changes and 1 minor feature addition to the TLS library.

      Everything else is OpenJDK runtime internals which don't impact the language or how you use it. So if you don't use OpenJDK (such as if you use Oracle's other runtime, GraalVM), then Java 27 basically doesn't even exist at all. Skimming the past couple of C# releases, it doesn't look like Microsoft is playing that game, so the release cadence will of course be different.

      • cogman10 8 minutes ago
        There's not really a second C# runtime. Java has several, some based on the Openjdk, but a few that are completely new like OpenJ9 and Graal.

        The closest C# has is mono.

        This sort of thing is bound to happen with that situation. Heck, it happens with C++ whenever a new C++ version comes out. Some C++11 features took years to make their way into all the compilers.

      • hyperpape 20 minutes ago
        You’re only counting JEPs, which are only for more involved features. There are lots of changes to the JDK apis that are used by other runtimes. See, for instance: https://javaalmanac.io/jdk/27/apidiff/26/.

        Admittedly, the terminology here is almost designed to be maximally confusing, and I’ve never read a good post that laid out how everything relates.

        • kllrnohj 1 minute ago
          Fair, although even there I don't know if I'd call that "lots" at just 23 added or modified methods that aren't in preview
    • petilon 12 minutes ago
      > Microsoft are bundling a lot more into the platform and leaving less to the community.

      This is a good thing. In Java everything has multiple community offerings, so before doing anything you have to evaluate the community offerings and decide which one to go with. If you go with the wrong one you may end up having to switch at some point, and that can be painful. This happens so often that most of the time spent when using Java is doing these evaluations and comparisons. With C# you just use the one built into .NET platform. Saves a ton of time.

    • Betelbuddy 12 minutes ago
      >> Oracle are doing versions at approximately twice the cadence.

      This has nothing to do with Oracle. All good that you hear from Java in the last few years, is the great community and good old people from Sun working at Oracle.

    • theandrewbailey 30 minutes ago
      I never thought of Java being the 'move fast ~and break things~' alternative over .NET, but Java has a faster release schedule to get features out sooner.
      • madduci 18 minutes ago
        Seriously, how many are using always the latest releases of Java instead the LTS ones? With LTS ones you have ~2/3 years between the versions.
    • Phelinofist 12 minutes ago
      > Also, the page reads like an open source “We’re finished, we’re tired.”

      I mean it's short and concise and there are additional resources that provide more detail. IMHO it's not a bad thing.

    • BatchJob 21 minutes ago
      razzmatazz? Do you mean marketing lies and self aggrandizement for merely doing shoddy work?
      • jayd16 12 minutes ago
        Mads Torgersen's previews and such are enjoyable and upbeat, for example.
  • Horffupolde 30 minutes ago
    Serious question: when should one use Java for greenfield projects in 2026?
    • t0mas88 24 minutes ago
      When building boring web applications with a sizeable team that need to run for a long time. Hiring developers is easy since there are many, there is nearly no magic and the language is quite strict and type safe so it works well with a large team.

      And that "team" nowadays may also consist of many AI agents. In my experience Claude Code for example works very well with a typed, slightly boring language with lots of framework and library support. Because it doesn't compile when you get something wrong, instead of getting a vague runtime issue that Claude can't always see.

      • BoppreH 8 minutes ago
        > there is nearly no magic

        I agree with the rest, but there's definitely a lot of magic in Java. This is from both what features the languages makes available (many) and how the community uses them (often). I've had so many hard-to-debug issues in Java over the years due to reflection, annotations, and bytecode manipulation shenanigans.

        And another positive point for Java: checked exceptions. It's verbose, but knowing exactly in which ways a function can fail is extremely helpful for building robust applications.

    • skeletal88 1 minute ago
      Same question for .net or C#

      Why should anyone use it over Java? Ms is hostile towards its developers, it creates new versions of things, deprecates previous versions, uses confusing naming for newer versions.. etc.

    • marginalia_nu 14 minutes ago
      Not at all a bad choice.

      It's stable to the point of boring, and there's no shortage of people who know the language and can work with it, it's got best in class tooling, decades worth of libraries almost all very mature. Most of the language's issues are from legacy code bases coded in a style that isn't really relevant to a greenfield project.

    • topbanana 24 minutes ago
      When you work at a Java shop. Kotlin is much nicer if you have to run on the JVM but aren't restricted to Java.
    • dorkypunk 25 minutes ago
      When you are already familiar with it or work in a Java shop, there are better options if you are starting from scratch, but if you already have 50 guys that know Java it's a pretty big ask for all of them to switch.
    • foolfoolz 10 minutes ago
      java is a great language for server side projects. it is actively maintained, the biggest issues with it have JEPs, and it’s very friendly to AI authors
    • kllrnohj 28 minutes ago
      When you think a garbage collected language is a good fit for whatever you're building?
      • kfir 25 minutes ago
        Wouldn't you go with golang in that case?
        • ndriscoll 18 minutes ago
          Golang gives you none of nice features of a modern language while being about the same performance tier as Scala or Java, so there's basically no reason not to use Scala.
          • Thaxll 7 minutes ago
            Golang is faster and use way less memory than Java, never wonder why you never see Kubernetes controller / sidecar is Java?

            As for Scala it's pretty much a dead language, no one work with it and it's impossible to find dev for it.

            10 years ago I was moving Scala code back to regular Java.

          • eklavya 9 minutes ago
            I ported a moderate sized java project to golang. Test suite runs order of magnitude faster now. There isn't much change in terms of the architecture. Pretty much the same algos and data structures. The whole dev tooling runs on a 16 gb mac without swapping now. I used vs code for both
        • topbanana 24 minutes ago
          I would, or C#
    • orangesilk 25 minutes ago
      Jruby is nice - runs Ruby on a Java Virtual Machine with full concurrency and Ahead Of Time compilation
    • soco 9 minutes ago
      Whoever works with, or chooses Java, is not doing it for the language itself, be it beautiful or not. Java has a huge ecosystem, from battle tested integrations to optimized images to build pipelines to whatever, so at the same you're buying access to all this world (yes, more than an environment). And of course transferable skills. I'm not saying Java is alone offering this, also not saying every feature is the best, but you can have them all, and even choose from different options.
  • aaronax 39 minutes ago
    "The Java Story" documentary by CultRepo on YouTube is pretty great. A major topic is the release cadence which some other comments here are mentioning / joking about.
  • svcrunch 53 minutes ago
    I've been using the Vector APIs for years now, and I'm still waiting for them to GA!

    They are useful for neural information retrieval (RAG, memory), which relies heavily on content vectorization and similarity matching using their dot products.

  • taspeotis 49 minutes ago
    Knock knock

    Who's there?

    long pause

    Java

    • Betelbuddy 30 minutes ago
      High Speed Trading team using Java looking puzzled ....

      https://lmax-exchange.github.io/disruptor/

      • Bluestein 25 minutes ago
        This thing is a-ma-zing. It is trully a wonder. It is something to behold. The "Disruptor" pattern.-
    • lazystone 47 minutes ago
      Oh, I see, jokes from 30 years ago!
      • nairboon 17 minutes ago
        And still funny today, not all jokes survive that long.
      • Boereck 14 minutes ago
        Alternatively:

        Knock, knock

        who's there

        It's the 90s, wanting their jokes back

    • azatom 45 minutes ago
      It's on you bc it was (arguably but still) dead 17 years ago.

      edit: don't get me wrong, i am not here to hate java, but bc i am also ... hm necrophil :)

      • taspeotis 31 minutes ago
        17 years is a rookie number. Take C# auto-properties, for example: 19 years ago!

        Now try asking, "When did Java get auto-properties?"

        • marginalia_nu 12 minutes ago
          News at 11.

          Language that runs on the explicit design philosophy of letting other languages experiment first and then incorporating their lessons learned once the dust has settled is late to implement a feature.

    • nsxwolf 46 minutes ago
      G1 is now the default garbage collector in 27.
      • taspeotis 39 minutes ago
        Sorry I only just set -xXx360NoScopexXx=4G to run that latest version without hitting OOM and you are right, it is indeed quite fast with G1.
        • paulddraper 2 minutes ago
          You misunderstand, xxx360NoScopexxx is now the default.
  • arein3 36 minutes ago
    Project Valhalla will go into Java 28 (next year, and preview version).

    Fingers crossed I'll manage to use null type safety in my lifetime.

    • rf15 31 minutes ago
      universal null type safety has sadly been discarded as a core concept of Valhalla in my Understanding; that being said, the proposals in Valhalla have null-safety as a side effect, but only under certain conditions.
    • karussell 32 minutes ago
      A first step of Valhalla that is ...
  • rf15 32 minutes ago
    > Twelfth Incubator

    Are you sure this egg is actually viable?

    I mean, I'd love to see it, but...