3 ms·
Because Java's combination of performance, productivity, observability, and stability is unmatched. The average codebase lifetime of large, important server sof
by pron 3y ago
Because Java's combination of performance, productivity, observability, and stability is unmatched. The average codebase lifetime of large, important server software is over a decade, so not only do you want the first three, but to get a good return on your investment, you also want the fourth (over time, different parts of the codebase will see more or less development, and you don't want to spend money on maintaining parts that you don't want to focus on). Now, it's true that the biggest Java shops, where new projects are regularly developed in Java, are traditional businesses like Apple, Amazon, Google, Netflix, Alibaba, Tencent, and other Fortune 500 companies -- companies that care a lot about the value (and cost) of the codebase not just in the moment but over time -- whereas smaller companies are more diversified in their language choice, but they, too, often adopt Java more as they grow.
- Xeamek 3y agoC# and .net platforms matches (or more often even exceed) java in all those categories. Looking at what big companies are doing is also weak argument, especially since Google literally developed their own language which slots in the same space as Java. Maybe not exactly the same, but pretty close. Again, if you need compatibility with existing code - that it's a decent argument. But in terms of language itself? No good reason
- pron 3y agoGoogle is a major Java shop, and for big projects compatibility is certainly at the top of requirements because big codebases last for a long time, and compatibility directly translates to increased future returns on investment. I don't think .NET quite matches Java on the other aspects (certainly it tries to add lots of language features while Java tries to avoid adding many features, but having more or fewer features is a matter of personal preference) and its GCs aren't as good, but while these things are arguable (because Java and .NET have different advantages and disadvantages compared to each other), its compatibility story is poor, and not just in comparison to Java.