Hacker News new | ask | show | jobs
by seer-zig 1351 days ago
Java is one of the very few languages out there that is manageable and debuggable at the large scales you're talking about. The tooling around it is second to none, and because it is statically typed with a decent type system, you can refactor quite safely in general.

And let's be frank, XML, other than for Maven (where it can make sense), is not really a thing in modern Java.

3 comments

> decent type system

I'd call it a bare minimum type system, not "decent"

golang and C would take that spot :-)

Records, pattern matching, string templates, and more to come for Java for which the other two have nothing equivalent.

> The tooling around it is second to none

I feel like you've never looked at C's tooling.

Admittedly, some of it is stuff you just don't need in Java, but things like Valgrind are crazy impressive.

The issues that C faces in terms of memory correctness do not occur in Java. You can use tools like `perf` on a Java program, and I don't see why you couldn't use valgrind for natively compiled Java programs.

For debugging and observability, tell me if C (or any other platform) has anything resembling JFR for the JVM.

> and because it is statically typed with a decent type system, you can refactor quite safely in general.

I wish that would be true. Would make my current job a lot easier.