License wars: Get tool free, but denounce your pagan ways!

Opensource licenses have always been a major cause of confusion, but Microsoft has outdone everyone – they created an opensource license that does not allow use of opensource software.

Although Microsoft is traditionally seen as an enemy of the open source, they seem to have realised that opensource community support is now a major factor in the success of any software platform. Look at Java – the community support is so significant that almost all serious projects in the last five or six years included some piece of opensource software – from logging and connection pools to web frameworks, template engines and application containers (not to mention that Sun has recently opened the source for the JVM implementation). The community played a significant role in providing the plumbing for standard tasks, which .Net platform is still lacking. Many opensource Java projects have .Net ports, but the available products for .Net are not as nearly ubiquitous and good as their Java counterparts. Microsoft has tried to play a more active role in forming the community by providing the Enterprise patterns and practices library and by starting Codeplex, an online incubator for .Net opensource solutions.

Having all those free tools for Java has spoiled me. I now expect to find plumbing tools of at least decent quality somewhere on the Internet, for free. I was recently looking for dependency injection1 configuration engine for .Net, and stumbled upon Microsoft’s ObjectBuilder. And the license for it was a bit strange:

2. That you have no right to combine or distribute the Software or modifications with other software or content that is licensed under terms that seek to require that the Software or modifications (or any intellectual property in it) be provided in source code form, licensed to others to allow the creation or distribution of derivative works, or distributed without charge.

I am not a lawyer, but to me this sounds like directly prohibiting the use of this open source tool in the same application (combine or distribute) with most other open source tools. I tried to get clarification from the project authors, and only got a Sorry, I’m not a lawyer reply.

I don’t think that it is realistic to have a big project without some piece of opensource software or some opensource library – so “cannot mix with other opensource” effectively means “cannot use” for me.

Another point in the license caught my attention:

11. That you may not disclose to anyone, without our prior written permission, the results of any performance tests on the Software.

So the tool is there, but I cannot use it, and even if I could, I cannot discuss it without written permission. Though Microsoft should be applauded for providing free tools on Codeplex, this half-hearted attempt seems a bit pointless. If you decide to open a tool and let it have it’s own life, do it properly. Allow people to use the tool and discuss it, so that it can gain support. If it is not performing good, but is interesting, someone will improve it. Free tools and libraries succeed because of the community support, not because a big company is standing behind them.

Image credits: jjvargas/sxc

1 I found Castle project, a mix between Spring and Rails concepts implemented in .Net – I just recently started using it, so I cannot yet recommend it, but it looks very interesting – check it out if you are looking for .Net plumbing.

I'm Gojko Adzic, author of Impact Mapping and Specification by Example. My latest book is Fifty Quick Ideas to Improve Your Tests. To learn about discounts on my books, conferences and workshops, sign up for Impact or follow me on Twitter. Join me at these conferences and workshops:

Specification by Example Workshops

How to get more value out of user stories

Impact Mapping

5 thoughts on “License wars: Get tool free, but denounce your pagan ways!

  1. It seems to be some kind of GPL-allergy that drove the paragraph #2. They should forbid only the distribution, not the simple combination, to protect their “property”.
    They would be more honest by saying: “You can see the code, but don’t touch it: it’s ours and you cannot use it!”

  2. IANAL either, but I read this to mean you can use it in a free, open source app, but that you can’t use it to create your own “MegaObjectBuilder”, or make a minor change and re-license it. Similar to requiring changes be donated back to the project. The performance test thing is a bit weird.

  3. Reads to me like you can’t use it in a product that would *require* the release of the source code of ObjectBuilder. Basically, that it’s not GPL compatible.
    That being said, most other FOSS libraries are LGPL, which, AFAIK, do not require the GPLing of all bits of the final product. So, ObjectBuilder’s license (at least the parts quoted) are perfectly compatible with that.
    You couldn’t, however, add ObjectBuilder to a GPLed product – since that’d require the ObjectBuilder code to be GPLed, which you don’t have the right to do (the so called viral aspect of GPL).

Leave a Reply

Your email address will not be published. Required fields are marked *