Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I’ve worked in Java for over 20 years. Being the “lingua franca” of the enterprise is its biggest strength IMO, but it is also perplexing to me that it was able to do that in the first place. The language itself is not bad. The tooling around it is very good. But the codebases you encounter written in it, particularly in the enterprise, are often horrible.


Mind sharing why do you consider Java tooling to be good (and largely, what is good here)?

The reason I ask is that I recently had to join a Java project at my company, and having a background in Node/Rust/Perl/Lua and some C++, I found the Java tooling to be extremely unsuitable for my taste.

A simple example: there is no standard LSP server, and the amount of jumps required to have a working setup with FOSS tools and make it IDE-independent is just horrendous. In every other ecosystem I've worked with so far, it was pretty easy in the last 5 years: if you don't like IDEs, you can keep using your vim/emacs/helix or whatever and just embed a plugin or two, with LSP integrated -- and you're ready to go.

Java world felt complete the opposite, like you had to use/buy some commercial tools to start doing something.


Tooling goes way beyond the editor/IDE. Eclipse is a very good free option. As is IntelliJ CE. I personally have the all products pack and use the ultimate version.

Beyond the IDE you also have to consider the build tools, package management, debuggers, profilers, static analysis tools, etc.

It’s honestly too much for an HN comment. But as an example, if I do open one of these awful projects at work and it uses gradle for example, intellij will understand that, import the project, get all dependencies, let me run any target with debugging or profiling, give me code coverage, etc.


Thanks for sharing your experience.

It's a fair note about tooling in general, I started with the code editing because it's the first thing before you can taste and judge the rest.

I think my frustration comes from the fact that in most other ecosystem I can use the tools I like, but in Java I have to use things like Intellij.

Intellij CE may be open source, but it is entirely owned by a private business whose primary goal is to sell their product - which affects how well are the integrated, open to accept community feedback, etc.


There are several open source tools for Java (Eclipse, Visual Studio plugins, Netbeans and others).

The reason I don't use them is not because they are bad, but because IntelliJ is so much better.

I even use IntelliJ Ultimate for non Java code like React, even though Visual Studio Code seems to be de-facto standard for React developers and guides.


I guess it's just a given that everyone uses IntelliJ Ultimate. If you don't, I guess you're right, the tooling is lacking outside of that. But it's so worth it...


The eclipse language server works perfectly fine in vim/emacs/vscode/editor-of-choice.


> But the codebases you encounter written in it, particularly in the enterprise, are often horrible.

Not sure they are worse than other languages?


Having now experienced such Java codebases for the first time in my 15 year career… no, the Java code is much, much worse. Over engineered and otherwise poorly written Java code is SO much worse than other over engineered code I have worked with.


Honestly for the limited projects I've had to work with... I can attest to that. It's the over engineered abstractions that get me. Traditional Java EE users use WAY too many abstractions and interfaces, it's absolutely horrible to debug.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: