> Similarly, writing an entire program in dotnet used to be a death sentence until Mono
This is somewhat ironic, considering .NET is effectively "Java as rebuilt by Microsoft", and one of the original selling point of Java was... cross-platform support, "write once - run anywhere". BillG clearly made sure that particular aspect would not carry over to the MS version.
> BillG clearly made sure that particular aspect would not carry over to the MS version.
Heh, well .NET's cross-architecture support was/is still useful for allowing .NET to target Windows CE on SH-3, MIPS, ARM and more - also consider that at-the-time (1999-2001) even though Windows NT no-longer supported MIPS and Alpha, there was IA-64 (Itanium) looming on the horizon which was widely anticipated to replace x86 (hah), so even though it wasn't true cross-platform (i.e. cross-OS) it still made business-sense.
Another advantage of .NET's use of JIT bytecode was that Microsoft could sell it as a platform enabling "verifiable code": which is true: a "pure" CIL/MSIL assembly file literally cannot have any memory-related bugs to worry about and their consequential security vulnerabilities, which were a big deal at the time (this was related to Microsoft's "Trustworthy computing" initiative as well: you don't need to "trust" the programs you're running: the use of verifiable bytecode means you can verify its safety entirely by yourself).
Oh yeah, compared to what it was meant to replace (COM/DCOM, C++, VB6, ASP/vbscript), .NET was undoubtedly a massive step forward and a no-brainer to adopt, for anyone invested in the MS ecosystem.
The design and support for cross-platform use was there from the start, and most obviously manifested itself via Rotor. If I recall correctly it targeted FreeBSD rather than Linux though.
ROTOR was never production-quality though - I think it was there as a proof-of-concept and to try to convince some university professors to consider it as an alternative to JVM.
This is somewhat ironic, considering .NET is effectively "Java as rebuilt by Microsoft", and one of the original selling point of Java was... cross-platform support, "write once - run anywhere". BillG clearly made sure that particular aspect would not carry over to the MS version.