Announcement

Collapse
No announcement yet.

Java 14 Reaches General Availability With Garbage Collection Improvements

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #31
    Originally posted by cynical View Post
    It will take some time for GraalVM to become a mature replcement for HotSpot. Once that happens you will likely see some exciting performance improvements for Java.
    Not really. Graal AOT produces slower code in many cases. The startup time is better though.

    Comment


    • #32
      Originally posted by caligula View Post

      Not really. Graal AOT produces slower code in many cases. The startup time is better though.
      Do you think Graal is just AOT compilation? GraalVM is the future of Java, whether you are talking about JIT compilation or AOT. And as far as AOT itself, well yeah it is slower now, that's because it's new, and that's why I said mature replacement. (give it time) HotSpot is C++ based and convoluted, and there is no longer any room for improvement on that code without worrying about breaking something.

      Comment


      • #33
        Originally posted by Michael_S View Post

        Java pays my bills too. One of the things I wonder is whether inheritance was a mistake. Everyone says inheritance is fine if used properly. But every Java project I've used at work or encountered in open source projects that has grown past a very tiny size has started accumulating inheritance hierarchy hell. (Edit: For anyone that doesn't know, Go has interfaces but not inheritance.)
        Inheritance was a mistake. It introduces rigid coupling and breaks encapsulation, and you don't gain anything from it. Interfaces, or coding to an abstraction rather than an implementation, is the right way to go if you want guarantees about methods being present. Or if you are in a less strict language like JS, you can just extend objects with new properties (aka parasitical inheritance).

        Comment


        • #34
          Originally posted by bug77 View Post
          I've never has a problem with inheritance. (Actually, I did, once, but that was more on JPA and its default strategy for persisting hierarchies.) In fact, to this day I cannot understand "composition over inheritance", since inheritance is done by composition to begin with. That said, I never missed inheritance in Go. But I'd love to see a way to embed structures (i.e. embed type A into type B in a way that makes the existence of type A "invisible").
          Composition just means to combine together, no more no less. Inheritance is more specific due to the hierarchical relationship between the items; one is subordinate to the other.

          Comment


          • #35
            Originally posted by bug77 View Post
            Aw f*ck, when did that happen?
            Since the beginning, I'm guessing. I know a lot of people, myself included, were under the impression that it was every third release, but I can't actually find anything online that would support that impression. I suspect a lot of us just misread "every three years" as "every three releases".

            Comment


            • #36
              Originally posted by Delgarde View Post

              Since the beginning, I'm guessing. I know a lot of people, myself included, were under the impression that it was every third release, but I can't actually find anything online that would support that impression. I suspect a lot of us just misread "every three years" as "every three releases".
              No, it was definitely every 3rd release. After Java 8, the next LTS was 11
              But yes, the change flew under my radar right until you pointed it out for me.

              Comment


              • #37
                Originally posted by bug77 View Post
                No, it was definitely every 3rd release. After Java 8, the next LTS was 11
                But yes, the change flew under my radar right until you pointed it out for me.
                Regardless, I'll be surprised if they can actually string a plan together for that long. They're not going to want to put experimental features into an LTS, but I'd bet that when 17 is approaching, they'll have _some_ stuff that's just not ready, forcing them to either delay their six-monthly release, or re-assign LTS status to the next one.

                Comment


                • #38
                  Originally posted by cynical View Post

                  Inheritance was a mistake. It introduces rigid coupling and breaks encapsulation, and you don't gain anything from it. Interfaces, or coding to an abstraction rather than an implementation, is the right way to go if you want guarantees about methods being present. Or if you are in a less strict language like JS, you can just extend objects with new properties (aka parasitical inheritance).
                  Amen.

                  (I'm an atheist, but the metaphor seemed appropriate.)

                  Comment


                  • #39
                    Originally posted by Michael_S View Post

                    Maybe inheritance needs to go away too.
                    I think so. I'd like to see C without typedef as well. Sometimes an int is just an int.

                    Comment


                    • #40
                      Originally posted by cynical View Post
                      Or if you are in a less strict language like JS, you can just extend objects with new properties (aka parasitical inheritance).
                      That's what JS is, a parasite. TBH the feature you mentioned is just absolutely horrible if one cares about correctness and reliability.

                      Comment

                      Working...
                      X