Open.NET — .NET Libraries Go "Open Source"
An anonymous reader writes "whurley just posted a blog about Microsoft's announcement To Make .NET Libraries available under a crippled 'Open Source' program using their new Microsoft Reference License. The post includes the official pr doc from Microsoft as well as several points about how this really isn't open source. One example: If a developer finds a bug in the code, rather than fixing it themselves and submitting a patch to the community they'll be encouraged to submit feedback via the product feedback center."
they'll be encouraged to submit feedback via the product feedback center
In some ways I'd rather see these things organized "under one roof". As long as the product feedback center is responsive I don't think this is going to be a big deal for most.
Dedicated Cthulhu Cultist since 4523 BC.
It does introduce a big problem, though. Suppose someone's seen Microsoft's code, and in code they've written there's a stretch that's suspiciously similar to Microsoft's code. How does one go about proving that they didn't copy that code from Microsoft's in violation of the license? Access may be great for the programmer themselves, but if I'm not them and I'm using their code I suddenly acquired a big headache. And for me this isn't a theoretical excercise, I've been caught up in a lawsuit about exactly that sort of illicit propagation of code. I'd have to recommend not employing anyone for .NET work who's agreed to that license, and not using any .NET code created or touched by anyone who has, unless and until we've gotten our own license covering the Microsoft code in question. Anything else leaves too many legal question marks that're too easily avoided by just not tempting fate.
Out of curiosity, how much work have you done with Java and C#?
C# is to Java as Java is to C++ as C++ is to C on to infinity. To say that C# is just a copy of Java is about as much true and about as much false as saying Java is just a copy of C++. It is, and it isn't.
In each case you have a "new" language created based strongly on an old one, benefiting from the "mistakes" of the previous language.
The tricky part is, what's a mistake in the design of a language varies depending on your perspective and what you're trying to do it with -- and so the "evolved" language ends up better for some tasks and worse for others. Java addresses a ton of things that C++ doesn't do well (or require a much more seasoned C++ developer to do well), at the cost of becoming unsuitable (or at least, less suitable) for some uses, such as embedded programming or high-end game programming.
C# is that same kind of quasi-evolution from Java. It makes some things a lot easier to get right, but at a cost of giving up some of the things that are good about Java. The key here is that the differences between the two aren't as much in the base language's syntax as in the core frameworks/libraries that are built around them. That's what makes the chance to see more of what makes those libraries tick and why they made the design decisions they did interesting.