A History of .NET Runtimes
I think the history of the <i>internal politics</i> at Microsoft in regards to .NET and also the external industry trends is fascinating.<p>The common thinking is that C# &amp; .NET was a ripoff of Sun Java because of the <i>&quot;write once run anywhere&quot;</i> threat.  That&#x27;s sort of true but missing some nuance.<p>I&#x27;m not a MS insider but here&#x27;s my understanding of what happened.  We have to separate the C# language from the CLR runtime.  In the 1990s, Microsoft was already researching how to enhance and extend the COM interoperability model. (Otherwise known as &quot;how do we get multiple programming languages to talk to each other?&quot;)<p>Based on some old interviews with Don Box[1], instead of this work being productized and released as &quot;COM+ version 3&quot; or whatever, it morphed into the CLR.  This was a natural evolution that would have happened even without Sun&#x27;s JVM threat.<p>C# the language, on the other hand, was a more direct response to Java the language since Microsoft&#x27;s J++ (Java clone) was abandoned because of Sun&#x27;s lawsuit.<p>As for .NET, it&#x27;s interesting that Microsoft always had this large internal group of programmers (mostly Windows kernel and Office teams) that didn&#x27;t fully buy into the .NET vision.  On the other hand, Bill Gates himself was a big believer in it.  My pet theory is that since Bill Gates programmed in BASIC in the 1970s and not in low-level C&#x2F;C++&#x2F;assembly, he had a natural affinity for the vision of high-level C# &amp; .NET being pervasive throughout Windows.  Even with Bill&#x27;s support, there was always an ongoing internal tension between the C++ vs the NET framework camps.  (On a related note, it seems like Apple&#x27;s internal programmers are more happily embracing Swift over Objective-C to a greater degree than Microsoft&#x27;s internal adoption of C# over C++.)<p>Two major forces outside of Microsoft&#x27;s control curtailed .NET&#x27;s planned world dominance:  (1) the rise of Javascript in the browser which negated .NET Silverlight, and also Java applets and Flash.  (2) the rise of Apple iOS and Android.<p>.NET is still very popular but it definitely did not fulfill the more ambitious dreams that Bill Gates had for it.<p>(On a related note, I also wrote an old comment about the decline of .NET&#x27;s WPF and its limited adoption:  <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=14098832" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=14098832</a>)<p>[1] Was MS Technical Fellow and author of 1998 COM book:  <a href="https:&#x2F;&#x2F;www.amazon.com&#x2F;Essential-COM-Don-Box&#x2F;dp&#x2F;0201634465" rel="nofollow">https:&#x2F;&#x2F;www.amazon.com&#x2F;Essential-COM-Don-Box&#x2F;dp&#x2F;0201634465</a>