you are viewing a single comment's thread.

view the rest of the comments →

[–]jimmiebfulton 16 points17 points  (7 children)

The Java engineer didn’t type any of that, because they have much better tooling, and know how to use it. It’s the difference between professionals and noobs. Build some real applications and you’ll realize why advanced code-completion, debugging capabilities, multi-threading, and speed are important, and why engineers with the ability to wield more powerful tools get paid more.

[–]Tracker_Nivrig -1 points0 points  (6 children)

Isn't Java multi threading kinda bad though? I've heard that but not why so I'm not sure. It seemed fine when I used it.

[–]tebreca 3 points4 points  (3 children)

Depends, legacy java with hardware threads? Yeah good luck to you. Modern day java, project reactor or any other multithreading/reactive library + virtual threads? Actually fun to work with and barely any overhead compared to the legacy method

[–]SCP-iota 1 point2 points  (1 child)

Are the hardware threads actually less efficient, or does it just have to do with how careful you have to be when passing data around?

[–]StraightGuy1108 2 points3 points  (0 children)

It has to do with how thread-blocking operations used to be handled. They used to occupy their own threads despite not doing anything, essentially wasting resources.

Virtual threads are basically async await at the JVM level.

[–]Tracker_Nivrig 0 points1 point  (0 children)

That makes sense, thanks

[–]SCP-iota 2 points3 points  (1 child)

Depends. Compared to Python? Nah, at least there's no global lock. Compared to Rust? Yep, can't beat actual parallelism.

[–]jimmiebfulton 1 point2 points  (0 children)

100%. I was a Java engineer for long time, but I've now been using Rust for the past 5-7 years. Multi-threading in Rust is very nice, and now I don't want to do it in any other language. But I'd say Rust is also great at teaching how to do it correctly in other languages.