I'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!)
It 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.
> I know the win version now works pretty well on linux with wine. But the process to set this up is not yet automated (like 20min) and is being worked on
Where did you get the information about it being worked on?
Where did you get that information from? I've never used that functionality myself, but haven't seen info indicating it got deprecated so I assumed it's still supported?
xlwings doesn't let you write Python code straight in the cells and have it immediately Just Work. It requires you to install a plugin and write commands in a separate file to execute Python. The UX difference is key here.
Hi - Yes we will definitely be creating a mobile app at some point. Thanks for your suggestion as well about timestamps, if you have any other suggestions you can add them to our Roadmap here: http://roadmap.livecoding.tv/
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)