3 ms·
That is not really an issue I've had with Java, but I would absolutely agree that Python is wildly unsuited as a production backend language. I don't think it'
by roguecoder 1y ago
That is not really an issue I've had with Java, but I would absolutely agree that Python is wildly unsuited as a production backend language.
I don't think it's much better if you have to spend a year and a half updating 400+ different repos, though. It's much easier to use an operationalized language that knows backwards compatibility matters.
- mjr00 1y agoI was at AWS RDS when they upgraded the shared control plane code from Java 7 to 8. IIRC it was about 6 months for 5-10 developers more or less full-time. Absolutely massive timesink. The move to separate services happened shortly after that. > I don't think it's much better if you have to spend a year and a half updating 400+ different repos, though. There's two things going for separate services (which may or may not be separate repos; remember a single repo can have multiple services): 1. You can do it piecemeal. 90% of your services will be 15-minute changes: update versions in a few files, let automated tests run, it's good to go. The 10% that have deeper compatibility issues can be addressed separately without holding back the rest. You can't separate this if you have a single deployable artifact. 2. Complexity is superlinear with respect to lines of code. Upgrading a single 1mLOC service isn't 10x harder than updating ten 100kLOC services, it's more like 20, 30x harder. Obviously this is hard to measure, but there's a reason these massive legacy codebases get stuck on ancient versions of dependencies. (And a reason companies pay out the ass for Oracle's extended Java 8 support, which they still offer.)