4 ms·
Well Java is arguably one of the most IDE-reliant mainstream languages. It's completely unusable and unergonomic without the myriad of constant code generation
by the_gipsy 6y ago
Well Java is arguably one of the most IDE-reliant mainstream languages. It's completely unusable and unergonomic without the myriad of constant code generation and fixing as you write.
Treating the IDE like a separate problem is not realistic with java.
With e.g. Rust, I can use vim, vscode, whatever floats your boat.
> no idea why you'd have to configure "getting the actual logs"?
Some genius java logging library, I can only guess.
- kaba0 6y agoYou can write java with vim, without any trouble. It’s just that Java has the very best IDEs available and I would be stupid to not use them.
- oblio 6y ago> Well Java is arguably one of the most IDE-reliant mainstream languages. It's completely unusable and unergonomic without the myriad of constant code generation and fixing as you write. True, but with IntelliJ 99% of what you wrote is auto-configured. Eclipse needs a bit of hand-holding, but almost everything you described is due to project configuration. > Some genius java logging library, I can only guess. That's your problem, you're assuming that Java is dumb and its libraries are dumb. They're not. I'm reasonably sure that <<all>> mainstream Java logging libraries log to console by default. The previous engineer must have been a marvel of a developer to manage to screw even that up. What I'd say is: Java, especially older enterprise code, had a ton of over-engineered patterns. These are slowly fading away, except for Spring, and even Spring's simpler these days. Java also tends to have some low quality and a ton of average but unmotivated working devs on Java projects. So yeah, there's that ecosystem problem. But for example, if you'd start a new project and you approach Java with an open mind, it's one of the most powerful and flexible techs available. And it's much more modern than the stereotypes imply.
- the_gipsy 6y ago> with IntelliJ 99% of what you described is auto-configured It is not, that's what I'm saying. And I don't understand why, if IntelliJ is the de-facto IDE. I'm sure that a fresh project is a one-click import, but an average project that isn't fresh anymore, always have similar IDE-setup-magic problems. At least in my experience over the years.
- JAlexoid 6y agoI code in Java, Scala and Python using an IDE just because I like to not remember the documentation to the code. I know plenty of people who don't use a formal IDE. This "I don't use an IDE" is a stupid flex.
- the_gipsy 6y agoMe too, that's why I have vim setup with language-servers. I get inline type info, code completion and so on. It's not a flex, simply a matter of preference: I find using the mouse too irritating, others prefer it because it's simpler. But that's not my gripe, my gripe is that setting up IntelliJ, the one defacto standard IDE to actually work is some voodoo ritual of a dozen steps and restarts and so on.
- Yeroc 6y agoIn my experience even Eclipse does a pretty good job of importing Maven projects without needing to tweak things.
- Deadron 6y agoSurprisingly, or maybe not, slf4j requires an implementation to be provided at runtime to log anything.
- throwaway189262 6y agoIMO it's the other way around. Java has some of the best IDE's around so everyone uses them. You can code in notepad and compile with maven but why would you? With Rust you code in VIM because there's nothing better. Improving Rust IDE's has been one of the teams big focuses for years. Everyone codes in random text editors because there's no amazing IDE.
- the_gipsy 6y agoWith rust yoy don't need to constantly generate code. Vim is just perfect, if you have rust-analyze you get inline errors, code completion, jump to definition, autoimport, autoformat... You don't need to constantly "extract method", move to class, generate all these mountains of classes by rightclick. This says a lot about the language. But the main point is that with rust it actually just works: there is one way to set global toolchain and per project/dir. You're not required to also click through a million menus and dialogs and copypaste stuff and sync and rebuild and restart to get the editor barely working.
- throwaway189262 6y ago> With rust you don't need to constantly generate code. In Rust, macros generate code on build. In Java, Annotations Processors do. I don't see a big difference between these approaches, besides Java's mechanism being older and crustier. Rust macros generate tons of code. > if you have rust-analyze you get inline errors, code completion, jump to definition, autoimport, autoformat... Last time I checked, Rust analyzer was in alpha/beta. Java has all this and it's battle-tested. Including language server for VScode and other lightweight editors, and several options for build plugins that auto format. > You don't need to constantly "extract method", move to class, generate all these mountains of classes by rightclick. Lombok, or one of the popular Builder libraries, gets rid of all this boilerplate. I don't generate anything using IDE. In my experience, most Java user don't. There's many mature libraries for geting around class ceremony. > there is one way to set global toolchain and per project/dir. You're not required to also click through a million menus and dialogs and copypaste stuff and sync and rebuild and restart to get the editor barely working. You are right. Rusts build system is simpler and better integrated. But Java has amazing build tools, maybe the best out there. A properly configured maven project will compile, test, and run with one command. And it will import into your IDE with a simple "import project, yes" I have worked on a ton of Java projects over the years and never had to deal with most of what your describe.
- furstenheim 6y ago100% lombok can only be developed on eclipse. They have an open issue to make it compile on intellij...
- oblio 6y agoI don't know if something changed, but for sure 2 years ago I used Lombok with IntelliJ.
- furstenheim 6y agoI don't mean lombok as a library, which works. I mean developing lombok itself
- oblio 6y agoAh, sorry, haven't done that. It sucks if it's Eclipse only :-( However I'd expect Lombok users to outnumber Lombok devs 100k to 1 :-)
- furstenheim 6y agoSpecially since it can only done in Eclipse xd