3 ms·
(FTA) On C#: "For some reason bit rot in .NET seems to set in very quickly." (FTA) On Java: "It’s been slow to catch C# up on language features" These two o
by georgemcbay 12y ago
(FTA) On C#:
"For some reason bit rot in .NET seems to set in very quickly."
(FTA) On Java:
"It’s been slow to catch C# up on language features"
These two observations (which are independently correct) are inter-related in a way that materially impacts what decision I'd make if I were really forced to make one similar to this article's thought experiment.
(FTA) On Java:
"I haven’t done much Java, and I’d like to keep it that way."
As someone who programs in Java almost every day (Android development), I respect this opinion because there's a lot about Java that I hate, but if your goal is honestly to create a system to be maintained on the scale of decades Java would probably be the best, most practical bet of any of the languages mentioned, by far.
It isn't sexy, it often isn't fun, but in my experience (which involves programming in Java off and on in various contexts since the mid-1990s) it hits the biggest cross-section of development system/runtime that bit-rots the least and is most likely to still be around for 10+ more years (even if this is much to my chagrin). This doesn't mean I'm a fan of Java, I'd much rather code everything in Go, but Java is the safe bet given the premise.
Before anyone brings up picking Java over C/C++ (which are older languages and still have robust ecosystems), try compiling K&R era C code with a modern compiler. Java is ironically like the (pre-Windows Vista) Windows of programming languages in that the tools and runtime basically bend over backward to not break your old code that used to work, this is both good and bad in different contexts but is very useful for the specific niche of development this article is talking about.