News for hackers. Stuff that matters.
Re:Java Is Underhyped by oblio on Friday April 16, 2021 @10:39AM (#26834426)
I've interacted to a ton of Java projects. And with a ton of various other commercial and Open Source projects.

In my experience (sample size of hundreds of projects), Maven projects are <<by far>>, on average, easier to build and manage than most other languages. The repo structure is standardized, the build cycle is standardized, the built packages are always in the same place, etc.

The Java installation is a 1-time think. It's also a quick google away. I see this complaint a lot, I never understand it. It's plain and simple bikeshedding: someone complaining about a 1-time task that takes 5 minutes in total.

The rest of the stuff is IDE specific and I have no idea why you'd have to configure "getting the actual logs"?

Re:Java Is Underhyped by the_gipsy on Friday April 16, 2021 @10:53AM (#26834623)
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.

Re:Java Is Underhyped by throwaway189262 on Friday April 16, 2021 @03:33PM (#26838145)
IMO 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.

Re:Java Is Underhyped by the_gipsy on Saturday April 17, 2021 @04:28AM (#26842600)
With 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.

Re:Java Is Underhyped by throwaway189262 on Saturday April 17, 2021 @06:39PM (#26848069)
> 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.

Re:Java Is Underhyped by oblio on Friday April 16, 2021 @01:14PM (#26836573)
> 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.

Re:Java Is Underhyped by the_gipsy on Friday April 16, 2021 @02:34PM (#26837461)
> 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.

Re:Java Is Underhyped by JAlexoid on Friday April 16, 2021 @07:49PM (#26840300)
I 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.

Re:Java Is Underhyped by the_gipsy on Saturday April 17, 2021 @04:36AM (#26842625)
Me 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.

Re:Java Is Underhyped by Yeroc on Friday April 16, 2021 @03:28PM (#26838079)
In my experience even Eclipse does a pretty good job of importing Maven projects without needing to tweak things.
Re:Java Is Underhyped by Deadron on Tuesday April 20, 2021 @02:36PM (#26879059)
Surprisingly, or maybe not, slf4j requires an implementation to be provided at runtime to log anything.
Re:Java Is Underhyped by kaba0 on Friday April 16, 2021 @11:10AM (#26834840)
You 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.
Re:Java Is Underhyped by furstenheim on Friday April 16, 2021 @05:26PM (#26839250)
100% lombok can only be developed on eclipse. They have an open issue to make it compile on intellij...
Re:Java Is Underhyped by oblio on Friday April 16, 2021 @06:42PM (#26839846)
I don't know if something changed, but for sure 2 years ago I used Lombok with IntelliJ.
Re:Java Is Underhyped by furstenheim on Saturday April 17, 2021 @03:17AM (#26842279)
I don't mean lombok as a library, which works. I mean developing lombok itself
Re:Java Is Underhyped by oblio on Sunday April 18, 2021 @03:39PM (#26855615)
Ah, 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 :-)

Re:Java Is Underhyped by furstenheim on Wednesday April 21, 2021 @06:23AM (#26887591)
Specially since it can only done in Eclipse xd
Re:Java Is Underhyped by kybernetikos on Saturday April 17, 2021 @04:07AM (#26842503)
> The Java installation is a 1-time think. It's also a quick google away. I see this complaint a lot, I never understand it. It's plain and simple bikeshedding: someone complaining about a 1-time task that takes 5 minutes in total.

I frequently find that the particular constellation of build tooling and libraries particular projects have requires a particular version of the jvm and all the environment variables set up correctly. In some other languages there is widely used tooling to manage the install and use of the appropriate platform version for the project.

If you're working with a variety of projects, fiddling with the installed jvm and java_home and friends is not a one time thing.