Debo Ayangbile I presented those very facts, so why do you call me ignorant and biased? Until recently, Microsoft was Windows-only, just like Apple is macOS/iOS-only. However, a third-party company usually wants to reach a broader audience than just people on one OS. So they choose the cross-platform option, which C# was not. You cannot change things overnight. Add to that, that Java is the industrial standard and C# only a Microsoft product. Today, even though .NET is available on other platforms, Java codebases already exist and developers are proficient with Java. Is there any reason to rewrite all that code? Other than burning money, introduce new bugs, reduce features which need more time to implement and delay actual improvements, there is no effect. That's why developers didn't choose .NET and still go with Java.