Microsoft’s Restrictive License and Viewable Base Class Libraries

I’m very worried about the announcement yesterday by Microsoft that the source to some of the .NET Base Class Libraries will be available to developers. Mostly I am worried about the impact to the Mono project and how many more developers will now be tainted by viewing the MS code. Miguel has some thoughts on that here. Also, I am worried about the viewable code, strictly from a copyright point of view.

Drawing Parallels

Everything regarding the viewable code is subject to the exact same copyright as another expressive media which is far more well known, Music. I use the word viewable because the code is neither open source or free software. Imagine that one of the “big four”, Sony, BMG, EMI, or Universal, announced that they were going to make all of their most popular music available for free listening.

The company still retains all of the copyrights. The tools to make derivative music is still up to the new artist to obtain and use. The music industry is just encouraging every musician to listen to all of this popular music… but don’t use it!

What is fair use? Remember Vanilla Ice and his uncredited David Bowie sample? He got sued and lost due to copyright violation, for a 5 second drum loop! That isn’t fair use!

So effectively we have history to tell us that if we copy and paste or republish in any way 5 lines of code from this Microsoft source code release, we are violating copyright on the code! This scares me!

I read a lot of software blogs. Check out my bloglines blogroll. I see a lot of source code in blog postings. With this Microsoft viewable code release I dread all of the upcoming posts of copy and pasted code saying “look how Microsoft did it, we can just change this one thing for our implementation”. These will all be copyright violations. These hypothetical posts will violate Microsoft’s copyright on this viewable code and it will be up to Microsoft as the copyright holder to enforce their copyright. IANAL, but I have heard that bad things can happen to copyright holders if it can be shown that they did not attempt to enforce their copyrights.

After AACS last night, some friends and I were sitting around ABC and discussing this. Some people mentioned DMCA and others mentioned patents. These are important issues, but this is not what I’m talking about. I’m talking about good old copyright. See Lawrence Lessig‘s Free Culture for a good background.

Here is an example:

After Scott Guthrie’s original announcement, which included a screenshot of Visual Studio in the debugger stepping into some BCL code, Chris Sells deep linked Scott’s screenshot. Now Chris works for Microsoft too, so maybe he had permission, but maybe he didn’t.

My worry is what happens if I do this?

Take three cases.

  1. I could link to just Scott’s screenshot with the copyright code. Am I now violating Microsoft’s copyright? No you say? Thousands of websites were shut down in years past for linking to mp3s on different servers. How is this different?
  2. I could actually display the screenshot inline using html img tags, but referencing Scott’s server. 
  3. I could transpose the code in the screenshot, thus creating a copy and definitely and blatantly violating the copyright.

I’m actually too afraid to do #3. I think I might be able to get away with #1 and maybe #2.

What once was left to lawyers and the intellectual property experts at your corporation is now something that every developer in an organization has to think about. Every developer needs to be aware of what the license and copyright is on any piece of code they view that is not owned by them or their organization.

Of course one solution to this issue might be to only work with open source software. I’m tempted to do just that, but I find that there are far more jobs available which still use proprietary software development environments, platforms and tools. I’m OK with that. I’m willing to be aware of intellectual property issues in order to work on these platforms. In my experience, other developers are hardly aware of these issues. Unlicensed and therefore entirely copyrighted code is copied out of webpages and blogs and directly into production software in both large enterprises and small businesses. With the release of viewable BCL from Microsoft, these practices become greatly more dangerous.