3 ms·
> Java is maturing into a syntactically nice language, albeit slowly, and it's the backbone of many medium and large companies. I've heard about Java initiativ
by ystvn 1y ago
> Java is maturing into a syntactically nice language, albeit slowly, and it's the backbone of many medium and large companies.
I've heard about Java initiatives to improve it, but can you point to examples of how how Java "is maturing into a syntactically nice language"?
I'm tempted to learn it, but wonder whether it would really become nice enough to become a 'go-to' language (over TS in my case)
- theanonymousone 1y agoThere are some interesting talks and slide decks that I have to search around to find. Here is one: https://speakerdeck.com/bazlur_rahman/breaking-java-stereotypes-its-not-your-dads-language https://speakerdeck.com/bazlur_rahman/breaking-java-stereoty... Check jbang.dev, and then talks by its author Max Rydahl Andersen. That could be a starting point.
- gf000 1y agoIt has virtual threads, that under most circumstances let you get away from the async model. It has records, that are data-first immutable classes, that can be defined in a single line, with sane equals toString and hash. It has sealed classes as well, the latter two giving you product and sum types, with proper pattern matching. Also, a very wide-reaching standard library, good enough type system, and possibly the most advanced runtime with very good tooling.
- 62951413 1y agohttps://inside.java/2024/05/23/dop-v1-1-introduction/ https://inside.java/2024/05/23/dop-v1-1-introduction/
- ppeetteerr 1y agoI've always felt it was verbose and the need for classes for everything was a bit of a overkill in 90% of circumstances (we're even seeing a pushback against OOP these days). Here are some actual improvements: - Record classes public record Point(int x, int y) { } - Record patterns record Person(String name, int age) { } if (obj instanceof Person(String name, int age)) { System.out.println(name + " is " + age); } - No longer needing to import base Java types - Automatic casting if (obj instanceof String s) { // use s directly } Don't get me wrong, I still find some aspects of the language frustrating: - all pointers are nullable with support from annotation to lessen the pain - the use of builder class functions (instead of named parameters like in other languages) - having to define a type for everything (probably the best part of TS is inlining type declarations!) But these are minor gripes