Look, don't touch: Clearing the misconceptions about opening CLR libraries sources
Important note: I am representing my own conclusions here, not anyone's official position.
First and foremost, the CLR libraries are not open source.
Let us talk about licenses, and what they gives us. By default, even if I have the source for a library, I can't really do anything with it. That is because the authors of the library retain copyright and you don't have any rights to do anything with it. Open Source explicitly gives you certain rights (usually modifications and redistribution rights) for the source.
The license that Microsoft is currently talking about is a Reference License. Jay Wren has more about the limitations, but I think that Miguel de Icaza has a better summary of what is going on.
More specifically, here are the things that you cannot do with the source:
- Fixing bugs - you can work around them, but you cannot fix and use it.
- Enhancing features - you know that feeling when it is almost there, it is going to remain almost. You cannot modify the code.
- Adding features - I would love to lie my hands on the assembly resolver code, I really want some hooks there, but that is not going possible either.
The main scenario is to debug into the framework, which is of immense value, especially since the System.Web assembly is included, but that about it.
If you want any of the above, you are not going to get it from the newly opened CLR libraries sources, the license does not allow it. You are better of browsing the Mono license, since that does explicitly allow you to do all of the above.
Comments
the one thing it does provide, that i'm excited about, is commented source code to copy & paste for features that I don't want to rewrite code for. :)
for example - i dont like trying to remember how to build design time support for property grid designers... it's easier to open Reflector and copy & paste the code. with the source code release, though, it'll be even easier to find what i'm looking for to get a feature in my software.
other than that, and debugging... yeah, it's fairly worthless. can't do anything else with it.
Derick,
You are not allow to copy & paste the code, not under the reference license.
I think this is the perfect opportunity for Microsoft to grasp the benefits of open source. While you say you can't fix bugs or modify the code if it's "almost there", the statement is slightly incorrect.
This is my interpretation, and IANAL and all that goes along with it, but I can't see where it says you are not allowed to fix bugs or extend the code. Where the line appears drawn is with redistribution of the fixed or extended code.
There doesn't appear to be anything in there that says you can't fix a bug or extend the code and then submit the patch to Microsoft. There are countless MS blogs by members of the .NET framework team. Submit the patch or feature to them, and see if you can't get it included.
I realise there's a lot of IP law that becomes involved as they would seek to outright own the bug fix or extension and lawyers at 10 paces etc, but if people start helping them instead of bashing them and crying about them protecting their investment, maybe they might finally "get" what open source is about and create some sort of formal procedure around which this sort of collaboration might become effective.
Just my opinion, however ill-informed it may be. :)
It also would appear that you won't be installing the source on your workstation, rather that VS will pull the required file to your machine when you step into a framework method. It would appear to be cached locally only as long as you are debugging.
Makes it harder to test any patches and enhancements... :)
As far as I'm aware under UK law you can reverse engineer and fix a bug no matter what the copywrite on code (with certain stipulations about notification of copywrite owner etc).
I wouldn't be surprised if most of the EU isn't the same.
You're only allowed to reverse engineer if you don't have the sourcecode. Never forget that. As soon as you have the sourcecode (and by looking at it, you have it) the right to reverse engineer is gone, because it's not provable that you haven't copied the code or peeked at how it was written.
Another issue is software patents. the code is full with patented stuff, so copying something is likely get you into trouble one way or the other.
IMHO this whole release is useless and evil, don't touch it, don't look at it.
Geoff,
The license explicitly forbid recompilation.
Also, considering the common approach from MS to OSS code, I can't think that they would accept outside patches
Comment preview