Originally posted by cynical
View Post
Announcement
Collapse
No announcement yet.
Java 14 Reaches General Availability With Garbage Collection Improvements
Collapse
X
-
Originally posted by caligula View Post
Not really. Graal AOT produces slower code in many cases. The startup time is better though.
Comment
-
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.)
- Likes 2
Comment
-
Originally posted by bug77 View PostI'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").
- Likes 1
Comment
-
Originally posted by bug77 View PostAw f*ck, when did that happen?
- Likes 1
Comment
-
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".
But yes, the change flew under my radar right until you pointed it out for me.
Comment
-
Originally posted by bug77 View PostNo, 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
-
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).
(I'm an atheist, but the metaphor seemed appropriate.)
- Likes 1
Comment
-
Originally posted by cynical View PostOr if you are in a less strict language like JS, you can just extend objects with new properties (aka parasitical inheritance).
Comment
Comment