4 ms·
To piggyback on this, if I have a codebase that has 10+ years worth of code in it that's been refactored multiple times, uses carefully benchmarked libraries, a
by joatmon-snoo 8y ago
To piggyback on this, if I have a codebase that has 10+ years worth of code in it that's been refactored multiple times, uses carefully benchmarked libraries, and has accumulated bug fixes for tricky edge cases (oh, and of course "bugs" that we can't fix because people depend on the buggy behavior), it's going to be very hard for me to justify rewriting the entire thing in a new language.
Putting on my Googler hat as well, there's a lot of work that's gone into our core libraries.
- Stubby, our RPC libraries, powers literally everything (Cloud, GSuite, Search, etc). I can trust that if I use it, I'm not going to be finding bugs in it - it's going to be some other big team that's got all sorts of fancy shmancy test that can and do catch strange, arcane bugs. The thought of relying on a brand spanking new implementation scares the shit out of me.
- We have a lot of powerful tooling (c.f. clang-mr, errorprone) that our core language teams use to constantly improve our codebase. That's years of tooling that a new language isn't going to have.
Taking the hat off, at the end of the day it's a tradeoff - either I spend my time continuing to work in a so-called boring language, or I learn a new one to use. If I choose the latter, I'm going to want it to be worth my time.
And frankly, sure, I don't get stuff like currying in Java, but Java 8's streams certainly do make life more bearable.