This. C# was basically always meant to be "Java but done right". It came several years later, after Microsoft was legally barred from "EEE"-ing Java and required a direct competitor.
But what I don’t get reading the original article is that they present how to insert struct in an object oriented language as an intractable problem, whereas a good implementation with .net (as far as I can tell) has been out there for nearly 30 years. And C# was shameless about stealing from other languages.
Ironically, they still do need Java for Azure, https://devblogs.microsoft.com/java
> It came several years later, after Microsoft was legally barred
That is an eloquent way of re-writing the history of Microsoft stealing Java and not being allowed to get away with it.