Go has type inference but having to declare types everywhere hardly make a language more "verbose".
The problem with Java(lang) is the culture.
Instead of writing programs in a pragmatic way, Java devs feel the need to forcefully over architecture code bases, because there are afraid that a colleague looking at their code will not find it JEEish enough.
Obviously Go doesn't have the same culture since it doesn't force developers into writing classes everywhere. So it's easier to hack something quickly with a bunch of functions and variables, like in most dynamic languages.
Maybe 8 years ago. Other than Oracle itself the language, the libraries and the culture has changed rather substantially over the last few years.
> Instead of writing programs in a pragmatic way, Java devs feel the need to forcefully over architecture code bases, because there are afraid that a colleague looking at their code will not find it JEEish enough.
Much of the over-design in older Java has to do with ancient methodologies of writing massive specs and having review committees. It has nothing to do with not being JEEish or whatever abuse of keywords you want to make.
> Obviously Go doesn't have the same culture...
Actually I'm starting to see many many Java programmers use golang because many Java programmers are system-like programmers (middleware or whatever its called these days). I guess their behaviors will magical change right?
> So it's easier to hack something quickly with a bunch of functions and variables, like in most dynamic languages.
Well that is true but writing classes in Java is not exactly hard. If it helps you can think of the classes as modules or just files you put your code in. You don't have to write OOP in Java and some would argue most of Java is not OOP.
Some Java developers not all. It's a very big ecosystem after all.
You typically don't see the same patterns used in Dropwizard, Play and Vert.x style applications.
And the rationale behind was not out of peer pressure but just reflective of an era in software development where you were taught to abstract everything to make it easier to implement changes in the future. But that time has somewhat passed and even libraries like Spring moved to annotations over XML bindings.