4 ms·
OK but that's a 500k LOC codebase in javascript/python that nobody understands, maybe the project doesn't even get there everybody hates their language when th
by dustingetz 4y ago
OK but that's a 500k LOC codebase in javascript/python that nobody understands, maybe the project doesn't even get there
everybody hates their language when they have 100k LOC of tech debt from 8 years ago
You're right that Clojure's sequence soup problem is painful at that scale (really any scale) but have you ever debugged Java? It's barely even possible, the project needs to drive $10M+/yr revenue to just not collapse once it reaches 500k+ LOC Java, 500k XML, 300k SQL ...
- ldite 4y agoI should have added that I've had similar experiences with (old school, untyped) python codebases - absent the esoteric programmers, which is not a small difference - although with python you tend to hit performance issues if your call stacks get too deep. Ironically the JVM performance lets you dig yourself into a gnarlier pit before you have to face up to it.
- seer-zig 4y agoJava 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.
- Kamq 4y ago> 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.
- seer-zig 4y agoThe 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.
- s-zeng 4y ago> decent type system I'd call it a bare minimum type system, not "decent"
- seer-zig 4y agogolang 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.
- lukashrb 4y ago> 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.
- synthc 4y agoDisagree about Java, I've worked on several large Spring applications and making small changes was not a problem at all.
- zmmmmm 4y ago> have you ever debugged Java? It's barely even possible hard disagree ... Java is a dream to debug. I've hacked into complex applications countless times by remote attaching the debugger and setting breakpoints to step through what they are doing. You don't even need source code in many cases. I'd pick Java ahead of any other language on that front.
- dustingetz 4y agoclojure inherits the exact same debug tooling you describe
- chii 4y agoexcept the debugging experience in clojure is much more difficult - try step debugging through a macro.
- fomine3 4y agoI don't think it's dream. I believe now most major languages support remote debug like that. My complain about Java debugging is massive use of AOP.
- mbrodersen 4y agoNope. I have taken over large Java applications with zero documentation and managed to get up to speed maintaining it fairly quickly. The static typing is a huge help.