Code License Conundrum
I have been reading Beautiful Code the last few weeks, randomly selecting various articles that sound interesting. The latest article I read was Framework for Integrated Testing: Beauty Through Fragility, which introduced me to the FIT testing framework. It sounds really cool, and through recent research I’ve come to admire Ward Cunningham’s work. This sounded great, as I’ve been looking for a test framework for my little language.
The original FIT by Ward Cunningham is written in Java, but sure enough there is a version for C++, written by David Woldrich. Yeah! I thought this would be great. Unfortunately, the license is GPLv2. Really, it doesn’t matter what version of the GPL is used, if the software is written with it, I can’t look at it. It’s one of the consequences of working at Microsoft*.
As it has been explained to me (and I’m not a lawyer), the GPL is potential poison for Microsoft, or really any company that lives by its intellectual property. If any GPL code were to be found in a Microsoft product, that product could potentially be found in violation of the license and be forced to publish its source code. Therefore, Microsoft requires its engineers to avoid exposure to code under any sort of license that might require that.
That doesn’t mean we can’t use open source products licensed under the GPL, just not look at the code for that product. As FIT is written though, it’s difficult to use without reading the source code to extend it with Fixtures that interface to your code. Too bad. However, as the high level description given in the book is written, it doesn’t sound too hard to imitate, so I’ve decided to write my own C++ version. More work than I wanted, but I really need a good testing framework, and another version of FIT for the C++ world can’t be a bad thing. As I understand it, I should be able to license it as GPLv2, but I just won’t be able to accept contributions.
Don’t get me wrong, I am not personally against the GPL. And I’ve never seen anything from Microsoft officially against the GPL or people’s right to license their software as GPL. (I have heard Steve Ballmer make some references about open source software, but those are the opinions of Steve Ballmer, not the entire organization.) And Microsoft has become much more friendly about contributing open source software. I myself work on an open source project at Microsoft.
Needless to say, but I’ll say it just for the record. I am not a lawyer, and my opinion cannot be interpreted as anything other than that. Also, I do not speak on the behalf of Microsoft.
*There is a FIT book though. I wonder what the difference between looking at published code in a book versus reading it through a code download. I’ll have to check with the Microsoft legal department on their opinion.