Does The Microsoft Reference License Make My Job Easier?
I'm a little late to the party, so I'm not re-announcing that Microsoft will release the BCL source code. This is of course a cool and somewhat unexpected move by the company, but apart from the initial buzz of being able to step into the framework source code from the debugger, I had hoped for a little more.
Since I do a fair share of Java development, I've been used to stepping into "foreign" code. I used to configure Maven's IntelliJ plug-in to download sources for my dependencies, but I recently changed this because of the additional noise whenever I "accidentally" hit step into rather than step over and end up in a class I'm not particularly interested in at the time. I can understand that Ayende needs to debug the BCL code whenever he runs into a esoteric bug in the code, but most of us don't write the kinds of code he does. For the rest of use, the ability to read the code is merely of academic interest. One of the arguments for releasing the code is that;
"Developers who better understand the source code will be more effective in writing software that makes use of the licensed source code."
I'm not sure if I agree with this, for instance I have no particular interest for knowing how the number of elements in a collection is counted, all I care about is that the Collection.Count property works.
I understand why Microsoft won't be accepting any patches for the BCL nor allowing people to redistribute their own BCL libraries, but I would have hope for a laxer license than the Microsoft Reference License. For instance, the .NET Compact Framework lacks some of the classes available in the regular framework. Whenever you need one of these in a compact framework application you're out of luck, you either need to roll your own -or- you can use Mono's implementation of the class. If the Ms-RL terms allow redistribution of parts of the framework, we would have the option to use a clone of the original BCL class. This would add value and make developers jobs easier.