Java is quite a bit more verbose than some other languages, but I think the culture is a significant factor; C# is similar. I&#x27;ve noticed the tendency to overabstract and overgeneralise, apply design patterns for the sake of using them, etc. is particularly strong. It&#x27;s inexplicably hard to trace out the train of thought that makes things like this appear:<p><a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=4549544" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=4549544</a><p>I&#x27;ve written small Java apps --- one class only, i.e. one source file --- which needn&#x27;t be any more complex, yet coworkers have said there&#x27;s something uncomfortable about my code; but for some reason can&#x27;t explain exactly why. I&#x27;d get comments like &quot;wouldn&#x27;t it be better if you made this (only used once and very trivial) line of code a separate function?&quot; &quot;could you use more classes?&quot; (for a &lt;100LoC script-ish thing that had almost no duplicated code nor much in the way of loops.) It&#x27;s almost as if they can&#x27;t get their heads around how <i>simple</i> something can be, so it somehow feels very wrong to them.<p>Then there&#x27;s the extremist &quot;premature optimisation is evil&quot; attitude, which I think is completely misguided because more code and complexity is bad not only in terms of computer time but also programmer time --- it takes more time for programmers to design, write, read, and debug more complex code.