Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Now that Java has caught up a lot with records, value classes, project loom (virtual/green threads), pattern matching. What is left?

Scala has the better type system with union types and effects (a more generic way of having “throws”.)

Kotlin has a nicer way of dealing with optional values with the ? operator.

What’s left is the syntax. Or am I missing something? These alone do not seem to justify moving an organisation.



Java still sucks.

Where are Java properties, so people can stop writing the silly getter setter nonsense?

Where are default parameters and named parameter calls?

Where is the null friendly field access operator ?. ?

Where is the convenient list and hashmap literal syntax?

Why is the stream API so verbose? Why not offer a third generation collections API?

Where are the sane ORMs?

Now here is some JVM hate:

How do I make sure that my application starts up quickly and isn't slow the first time you're accessing a web page after a restart?

How do I make sure that I don't need a 2GB RAM server for a simple web app? Cloud providers are stingy with RAM, so this adds up, even though RAM costs are an insignificant part of overall server costs.

How do I write a CLI app with the JVM? You don't.

So yeah, Java is in this uncanny valley where it is either obsoleted language wise by JVM languages from 2009 and runtime obsoleted by languages like Rust, where you trade off a bit of convenience, which Java by the way does not have either, for a bit of performance.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: