Modern Java isn't really any more verbose than other languages it gets compared against. It is very nicely balanced between expressiveness and readability.
Extensions that offer syntax highlighting, debugging, refactoring, code inspection, command line integration, dependency management, etc. How is that different from an IDE?
That is such bullshit. There are plenty of very functional libraries written entirely in Java, it has a surprisingly adapt type system that makes plenty of things expressible (not monads themselves, but you can almost get there with purely generics). Vavr, jool, immutables.
And what exactly is complex? Java is on the leaner end of language complexity, just compare its number of keywords to.. any other mainstream language.
Especially the conceptual overhead of DAO/DTO, etc seems very religious in nature.
I worked on several golang projects where protobuf was used, and the same dichotomy showed up in the code. There were three types even, protobuf types, internal types, and DB types, with manual mappers and validators having to be written between them. Quite a bad, verbose, and error prone experience, especially that golang itself is quite verbose.
its the front loading of a huge number of patterns which ends up being the barrier. An argument is made for "future proofing". Its not unlike Python whitespace indentation or golang's unused variables restriction.
But the design pattern complexity is far more harder than all these things.
There is a certain degree of complexity when all of this starts making sense. Or maybe do what Redux did ... and abstract everything out to somewhere else.
u used the word "viewmodel", so are we talking about android ?