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.
Being exposed raises some serious issues regarding the future employability of the "exposed" developers.
Lacking <sarcasm> tags,
This doesn't seem that odd to me. Anyone else know of a major open source project where your patch of the day is guaranteed to end up in main line code?
Also interesting is section 3(B):
(B) If you begin patent litigation against the Licensor over patents that you think may apply to the software (including a cross-claim or counterclaim in a lawsuit), your license to the software ends automatically.
Being able to see the source means that you can take the present tool kit and work around any bugs in a deliberate manner. Whereas without the ability to see the code you have to hope that the bug is what you think it is.
.NET. .NET Framework does not depend on the obscurity of the .NET Framework source code" in one of their press releases.
I would go one step further and say that it also lets you understand the behaviour of the framework where the documentation is inadequate or missing. I can see this being very useful, especially for those of us who like to fool about with less-commonly-used parts of
I also think that in the larger view, this is a great indication of shifting mentalities at Microsoft. I was pretty surprised to read "The security of the
"...always new atoms but always doing the same dance, remembering what the dance was yesterday." -Richard Feynman
That was in the theoretical world. In the real world, looking at the source and then using that to get implementation ideas is a good way to get sued. Yeah, you probably would have a really good case that you didn't actually copy any Microsoft code into Mono, but the suit itself might bankrupt you. For instance, look at ReactOS. I'll bet they have a completely clean implementation (in that no one working on the project has seen any of the source) of the Win32 API, even though it isn't strictly necessary. This is simply to avoid legal problems.
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.
I think a lot of people misunderstand the purpose behind Microsoft doing this. This is to aid debugging by allowing you to see what that mysterious function is actually doing. The fact this then makes it easy for people to report bugs is a very welcome by-product.
What issues are you talking about exactly? I've worked with .Net for six years and am unaware of "all kinds of issues"
.lic files becoming corrupted, loosing the ability to type non-word characters, source safe integration breaking, files in the .Net temporary directory getting locked, and projects loosing the ability to load DLLs. These are all design time problems, so my impression was they got a low priority and MS just decided to let us live with it.
Maybe he's talking about the IDE. I've run into lots of junk that hasn't been fixed for years. Things like
I've worked with .Net for six years and am unaware of "all kinds of issues"
.NET for 2 years. (I would add that I've never had those kind of problems with Java or just about anything else I've worked with)
What have you been doing? I've had all kinds of issues, from network connections being dropped even though they weren't, to the encryption libraies randomly (about one in 100,000 times) incorrectly encrypting a block, to projects that will only compile in release mode and not debug mode, to those stupid web projects that were broken from their inception, to code that runs find when compiled in debug mode but when in release mode (even with the same intermediate code) doesn't execute some of the blocks of code causing an error.
That's only the tip of the iceberg (especially when you include all the VStudio issues) and I've only been working with
thank God the internet isn't a human right.
Jesus fucking Christ, some people on Slashdot cannot hear the word Microsoft, a company of fifty thousand people with a shitload of diverse opinions, without thinking everything they do is part of some incredibly complex Machiavellian plan.
How about a simpler explanation:
Programmers: Hey Microsoft, we want the source code so we can step through it. Java already ships with library source and that's awesome.
Scott Gu: Sure, makes sense. Yo Ballmer, can I give them the source?
Ballmer: No, competition will learn our secrets for it.
Scott Gu: They already can see the source using Reflector, plus most of the runtime using the Rotor source. This would just let them debug easier thus making their life on Windows easier thus increasing the number of apps that run well on Windows thus increasing Windows sales.
Ballmer: OK then. I like more salez.
Ballmer: Developerz, developerz, developerz.
Scott Gu: OK, here's the source dudez.
Programmers: About fucking time! Thanks dude, this is great news for us.
Slashdot morons: It's a conspiracy! Didn't you see The Ring? Whoever sees the source dies seven days later.
Dejan
Back when Sun was first pushing Java, Microsoft tried to build a platform on top of it. Microsoft had, once apon a time, a product called J++ which was essentially Java with some neat new features such as delegates. J++ was designed by Anders Hejlsberg, who was brought to Microsoft from Borland primarily to work on J++ as Microsoft's next-generation platform.
Sun objected vehemently to Microsoft's extended version Java. I can't say I really blame them, since Microsoft should perhaps have worked with Sun to get these extensions adopted as features of the standard Java rather. Nonetheless, Microsoft was left with a plan to move to what they would later call "managed code" but no platform to build it on.
C# and the .NET VM are the fallout from this. It's no coincidence that the unique features of C# are quite similar to the new features Microsoft added to Java in J++. It's also no coincidence that Anders Hejlsberg is the lead designer of the C# language. While I agree that it's not really fair to call C# a direct "copy" of Java, it's certainly Microsoft's answer to Java; it's unlikely that C# would exist today had Sun allowed Microsoft to build their platform on top of Java.
Look at the progress made by the open-source community, Microsoft is releasing source code for big projects - even if it is under undesirable licenses. The concept of open source has permeated Microsoft to the point where they feel they need to open up some to compete - a big victory, even if not complete, for the OSS community in general - IMHO: nice work guys/girls, keep it up.
I was crazy back when being crazy really meant something. (Charles Manson)