> Java has not been boilerplatey for a long time
Considering records just made it into the language, I think "for a long time" is a very misleading description. And records only solve the problem if your type is actually immutable - which you may not be able to do if you have to interface with stuff like Hibernate which assumes that it can just mutate everything everywhere.
That's why people use Lombok - because the language itself is too clumsy.
And that's just one example. The way checked exceptions don't work well with lambdas and require manual catching and rethrowing would be another. And so on.
> The real nice thing about Java is everything is statically typed, unlike in TypeScript where just your code and if you're lucky some of your dependencies
Thankfully, there are many other statically typed languages, so you don't have to decide between Java or TypeScript/typed Python. With Scala or Kotlin, you don't even have to leave the JVM.