Ok, the echo chamber response from yesterday's announcement is calming down, and now people are pointing out certain implications that the Microsoft Reference License brings to the table. Specifically, this clause of the License is generating a lot of noise:
"Reference use" means use of the software within your company as a reference, in read only form, for the sole purposes of debugging your products, maintaining your products, or enhancing the interoperability of your products with the software, and specifically excludes the right to distribute the software outside of your company.
Now, the typical GPL crowd is sure to introduce a lot of FUD surrounding these terms... I can almost read the Slashdot banter now (I haven't checked, but surely there's something already posted). After all, their entire premise is based on creating free open source code that then requires all derivative works to also be free and open so that we can all live in harmony, hold hands, and sing Kumbaya. I mean, shame on anyone who might recognize the fact that there is excellent open source software in existence and want to add value to that existing base using their own IP, yet, who also want to keep any IP-related changes private in the interest of.... making money? Realizing a return on their R&D investment? Pure greed? But, I digress...
The release of the .NET library source code for reference purposes remains a good thing, and will help developers with challenging integration and debugging tasks. However, this is not the same as releasing the .NET libraries as Open Source. Furthermore, the MS-RL (as people like Jay Wren have pointed out) seems to prevent you from copying any code from the reference source code for reuse/repurpose elsewhere - after all, you may only access it in a read-only fashion, so if you happen to highlight a snippet, copy it, and then paste it into your own project, then you are technically in violation of the terms of the MS-RL.
So, as my entry into the new echo chamber topic du jour: What do you think Microsoft's motives are in offering the developer community this wonderful resource that could potentially open everyone who accesses it up to litigation?
Is it purely an innocent gesture of goodwill, as it initially appears to be, and the whole point of using the MS-RL just to prevent someone from rolling their own .NET BCL and somehow compete with MS?
Or, is it to definitively shut down any and all competition by saying "See all of this wonderful code? It's ours! Now that you've seen it, you're barred from creating any competitive works!" After all, the whole premise of why Clean Room Reverse Engineering is legal is because you don't have access to the original trade secrets; but in this case, everyone will have access, so it's harder to prove that "proper" reverse engineering was performed.
I can't believe that if I see some nice code implemented in the BCL somewhere, and wish to reuse it in my own project, that I would be hunted down and sued. Especially if we're talking snippets and not entire classes, and if we're talking about using such snippets at a base that will then be modified to suit my own needs. But, I'm not sure that I'm necessarily willing to take that risk until I see more discussion out of Redmond about specifically what we can and can't do with any source code that we happen to come upon as part of this new offering.
I'm not suggesting that they need to change the license or take this offering to the next step and allow it to become a completely open source project on CodePlex (though, that would certainly distinguish the new friendlier MS from its evil anti-competitive older version, wouldn't it). But, c'mon, ScottGu: Silence this FUD now before it further tarnishes the MS reputation among the particularly noisy OSS crowd.