5 ms·
My big problem with Java is the INSANELY bloated ecosystem where all actual business logic is hidden behind 17 different layers of abstraction. For example, if
by DontchaKnowit 4y ago
My big problem with Java is the INSANELY bloated ecosystem where all actual business logic is hidden behind 17 different layers of abstraction. For example, if you want to see where a field of a given object originally gets its value, you may have to track that field back through 4 or five different files in order to find where the value originally came from. Its absolutely fucking maddening and makes the system as a while very difficult to reason about and makes bugs very obnoxious and time consuming (but not necessarily hard) to identify.
What's weird to me is that other languages have the exact same ability to suffer from this problem, but for whatever reason, they do not. Only Java seems to have this culture of circle jerking around patterns and idioms rhat solve problems you probably aren't or are never going to have.
- rlawson 4y agoI don't like all the cursing/vulgarity but you are not wrong about the culture of Java encouraging some architect astronauts - however that's a problem that has been getting better (I blame EJBs for starting it)
- kaba0 4y agoWhile it is definitely a thing in some legacy enterprise applications, there is plenty of applications not written in that style. Also, let’s add that the Java platform is unique in being written purely in Java almost entirely - so when you see a stacktrace (and I assume this “depth” feeling originates from those), you actually see everything that happens almost down to the CPU. While in many other programs’ case the platform looses track by passing the FFI boundary, so that libc/whatever part becomes invisible to you.
- za3faran 4y agoModern Java is much more terse and expressive. > What's weird to me is that other languages have the exact same ability to suffer from this problem, but for whatever reason, they do not. When you search long enough, you'll come across such programs. Even golang that's (falsely in my experience) claimed to be concise, I've come across monstrosities written in it. If you want an example in Python, look at gsutil's or gcloud storage's implementation and try to find how many levels deep you have to dig in to find out which gateway API call they make to do the actual transfers for commands like `cp`. The fact that Python has no types (yes type hints don't get you far) makes it a much more difficult task than if you're using a static language to navigate the code base.
- DontchaKnowit 4y agoI totally agree. In my experience Java just seems to have this problem more commonly. And agreed on the Python thing. The lack of types can make debugging very painful. Also the overuse of Dict/arrays with no clear indications of the shape or keys can be brutal