5 ms·
java is very easy to troubleshoot compared to c, go, and rust
by buryat 6y ago
java is very easy to troubleshoot compared to c, go, and rust
- traceroute66 6y ago> java is very easy to troubleshoot compared to c, go, and rust All the worst and most time-consuming troubleshooting experiences of my life have involved Java. Whether staring at pages of obscure stacktraces that the JVM decided to vomit all over my screen, or hours on end with Oracle tech support troubleshooting why Java decided to throw a tantrum (followed by editing obscure Java XML config files). These days I just stay well away from Java.
- nisa 6y agowell yes... it's a learning curve and it takes a while but if you are familiar with the jvm and xml and to some degree spring-framework and reflection it's usally pretty easy to find a root-cause - you also have great tooling like async-profiler or just sending `kill -3 <pid>` to get a stacktrace. At least you've got a hill to climb upon instead of an empty field.
- threeseed 6y agoYou know that none of that has to do with Java itself. It's the app whose stack traces you are looking at. And the app that decided to use XML config files.
- cle 6y agoIt most definitely comes with the territory.
- lmm 6y agoBut applications tend to feel the need to use XML config files because of the limitations of Java.
- meddlepal 6y agoPlease elaborate on those "limitations". I really haven't seen all that much XML in Java recently outside of legacy applications... there's libraries for loading config data from JSON, YAML, etc etc.
- lmm 6y agoJSON, YAML, or XML, it's all the same crap. The fact that programmers are feeling the need to externalise their business logic into "config" files is a sign that the language has failed. In a decent language you would write logic or "config" in the language itself, because the language would be a comfortable medium for expressing things (this is the norm in Python for example - while a few overengineered pieces insist on using TOML or something, most Python libraries don't require any separate config, you just "configure" them the same way you do the rest of your programming, in Python).
- slaymaker1907 6y agoAt least there is a stack trace as opposed to a segfault with no context.
- Gibbon1 6y agoI trap segfaults in my firmware, save off a stack trace, restart and then log it. Is very useful.
- deleted 6y ago[deleted]
- candiddevmike 6y agoCan you expand on this? Why do you think that?
- shock 6y agoExtremely good tooling/ecosystem. See VisualVM, JMX...
- acdha 6y agoHow extensive is your experience with other toolchains? Programmers notoriously use easy as a synonym for familiar and given how long Java has been around by now we'd have some evidence showing a major productivity advantage. Companies like Google with massive Java experience also investing heavily other languages suggests that this is not so compelling.
- marcinzm 6y ago>Companies like Google with massive Java experience also investing heavily other languages suggests that this is not so compelling. Google's scale means that performance actually matters a lot versus productivity. When you've got millions of servers the costs add up. So making something twice as fast but taking 25% more dev time is probably a good tradeoff for them. For most other companies that's not the case.
- deleted 6y ago[deleted]
- rhizome 6y ago>Programmers notoriously use easy as a synonym for familiar and given how long Java has been around by now we'd have some evidence showing a major productivity advantage Have you ever heard the phrase "the dog that didn't bark?" You appear to be using an absence of evidence to prove evidence of absence, not to mention an argument from ignorance (which is always possible in our post-Gödel world).
- 6y ago
- late2part 6y agoNo, it's not. My experience is that for poor programmers, Java is easy because they lack the fundamental skills, and are familiar w/ the mechanics of Java. Of course this is a broad generalization and terribly unfair empirical anecdata.
- ashtonkem 6y agoIf you yourself acknowledge that this is an over broad and unfair generalization based on anecdotes, why did you say it?
- seibelj 6y agoJava is extremely old and stable. The obsession with Rust as open-source savior is overwrought. Rust may be good but Java has been around 25 years, give Rust another 10 years and 3 major language revisions before I will trust it.