3 ms·
I just mean all the developer tools, consumer-facing GUI software, and a wide variety of server software & daemons. All of those that I’ve seen in Java over the
by shantly 7y ago
I just mean all the developer tools, consumer-facing GUI software, and a wide variety of server software & daemons. All of those that I’ve seen in Java over the last 20ish years. Perhaps the tech giants are all writing Java that’s nearly as low-footprint and fast as C, I dunno, no way to tell from this side. I can only sample programs I’ve had access to.
[edit] bloated = much higher memory requirements than I’d expect for what they’re doing (yes I know how to configure jvm memory and such), affects the performance of other software on the same machine more than I’d expect, if running on battery, fairly likely to chew through it while doing nothing.
- pron 7y ago> I can only sample programs I’ve had access to. You have access to Java programs all the time; much of the software you depend on is Java. You're talking about software you run locally on your desktop -- that's something quite different. Desktop applications are a relatively exceptional use of Java these days, although they're still doing better in both performance and footprint than the fashionable JS apps. > affects the performance of other software on the same machine more than I’d expect, if running on battery, fairly likely to chew through it while doing nothing. Let me repeat what I said in another comment. Java uses less energy than Go, significantly less than JS, and a whole lot less than Python: https://greenlab.di.uminho.pt/wp-content/uploads/2017/10/sleFinal.pdf https://greenlab.di.uminho.pt/wp-content/uploads/2017/10/sle... Python may require less memory, but you'll overall need more hardware to do the same work as Java.
- shantly 7y ago> You're talking about software you run locally on your desktop -- that's something quite different. > > and a wide variety of server software & daemons Mind, I don't hate Java or anything, I'm just saying, I've been hearing folks tell me it's definitely fast & nimble while watching it not actually be fast or nimble for north of two decades. I don't know where theory and practice diverge, but with significant frequency when it comes to Java, they very noticeably do, and always have. And no, not just on desktop applications, but sure, exceptionally so there. And god, I'd hope it'd do better than any scripting language whatsoever by practically any performance measure. If not, what's the point? Those are basically never reasonably fast at real work unless they're just tying together C libraries that're doing the heavy lifting. As for the reference, yes, there are always benchmarks, always papers, always articles, always folks who'll patiently explain why Java must, certainly, be incredibly speedy. Seriously, 20+ years of reading that. Meanwhile when I use Java software it's usually not half as impressive on the performance and respectfulness to hardware fronts as those imply it must be. Again, I am not sure why this is, but it's been so consistently true for so long across so many types of Java program I've used that I don't think I've just managed to somehow use every single one of the worst-written Java programs in existence, or something.
- pron 7y agoIf you're aware of a language/platform with a better productivity/performance ratio, I'd love to know about it. I have not found one. The only languages/platforms that can beat Java at the workloads it excels at -- large concurrent server applications -- can only do so with great effort. If Java is slow and sluggish, then JS, Python, Go, Haskell, C# and Erlang are more so, and there's a reason companies prefer it to C/C++ for a great many applications. That Java is speedy isn't theory. The world's largest tech companies and largest non-tech companies stake many of their critical applications and a lot of money on it, and depend on it being speedy. Smaller companies (like Twitter, Soundcloud, Spotify, Uber and recently GitHub) regularly migrate to Java when they need more speed or better hardware utilization. So you're not personally convinced because you just don't feel it? That's OK. Those that need to be convinced are.
- zmmmmm 7y ago> I've been hearing folks tell me it's definitely fast & nimble while watching it not actually be fast or nimble for north of two decades You're going to have to get over some perceptual bias to ever understand the people saying thiese things. It's absolutely true that Java's weak points sit in many of the areas that are directly observable (startup time, UI - Swing etc.) while its strong points mostly sit in the ones that aren't (how fast code runs after 10 cycles of JIT profiling etc). But my suggestion is that its worth doing that because just like a million other things in the world that you can't directly observe, it's very valuable to understand nonetheless their underlying properties. Just for a reference point, I work in a space where performance is very critical and the code I write takes ages to start (where ages = 1-2 seconds) but then competes head to head with C code in efficiency. It's probably half as efficient as well optimised C code but it brings the huge other benefits that the JVM has so it's ultimately easily worth that tradeoff to me.