Re:Death by 1000 layers: the perils of over-abstraction in J...
by pydry on Monday December 14, 2020 @04:31AM
(#25415061)
Java's culture also seems to emphasize social class distinctions that mirror the corporations it is used in.
There's an architect programmer and a worker bee. Everyone wants to be the architect and to create the "enterprise" framework used by the worker bees.
Re:Death by 1000 layers: the perils of over-abstraction in J...
by polotics on Monday December 14, 2020 @04:09AM
(#25414914)
Totally!
Java developer's over reliance on design patterns and abstractions tends to enable atrocious designs, very often the first idea that came to mind at a very early time in the design process, clambering on to a monstrous implementation that somehow runs.
In Python, the relative flexibility and pseudo-code nature of the language means that more designs get tried, and simplicity wins.
In C++, developer self-selected into being hard-core, so you get hard-core code...
Re:Death by 1000 layers: the perils of over-abstraction in J...
by smitty1e on Monday December 14, 2020 @04:38AM
(#25415098)
The unofficial motto of Java seems to be "whoever dies with the biggest stack trace wins".
Re:Death by 1000 layers: the perils of over-abstraction in J...
by pjmlp on Monday December 14, 2020 @06:19AM
(#25415768)
Ironically the GOF book used C++ and Smalltalk, while Java did not exist.
Re:Death by 1000 layers: the perils of over-abstraction in J...
by q-big on Monday December 14, 2020 @05:02AM
(#25415255)
> Java's culture, in my opinion, is one of abstractions.
Haskell's culture is also one of abstractions, but of a very different kind of abstractions than Java.
Re:Death by 1000 layers: the perils of over-abstraction in J...
by realusername on Monday December 14, 2020 @04:35AM
(#25415081)
> Java's culture, in my opinion, is one of abstractions. There's little in the language to force you down that path, other than decades of it being the prevalent way Java is written, which bleeds into the standard library, core frameworks, and becomes the Java Way of Thinking.
Yes exactly, that's why I personally stay away from Java. The language is totally fine, the tooling is also fine, performance is great, there's everything there in theory to build and maintain great projects, however, the culture is atrocious and overengineering is everywhere. And that's very hard to go against decades of culture momentum going this way.
For example, C++ has a culture of caring about low-level details to squeeze out maximum performance. I once found myself writing something that wasn't performance critical in C++ due to a library I needed, and just minutes later I caught myself reading up on move semantics for maximum efficiency. I couldn't help myself getting sucked in by the language culture!
Java's culture, in my opinion, is one of abstractions. There's little in the language to force you down that path, other than decades of it being the prevalent way Java is written, which bleeds into the standard library, core frameworks, and becomes the Java Way of Thinking.