Microsoft Vs. TestDriven.NET
Erebus writes "Jamie Cansdale released a free addin to Visual Studio back in 2004 to help developers build unit tests. His only problem was, he enable his addin for all versions of VS - including the Express addition which isn't suppose to support addins. After over a year of trying to talk with Microsoft and understand how and why he was in violation of their license agreement, during which they would never explain specifically which clause in the license was being violated, they sent the lawyers after him and pulled his MVP status. To top it all off, Jamie is actually a Java developer by day — his addin was originally developed just as a hobby project. A full account is available on his blog, including all email correspondence he had with Microsoft and the now 3 letters received from Microsoft lawyers. The lead product manager for Visual Studio Express has responded to Jamie's posts."
You'll find that Microsoft is about to release their own Unit Test add-in...
What is it about Microsoft and reinventing perfectly good tools. First they tried to replace Nant with MsBuild, with limited success. They're trying to reinvent Subversion and Cruisecontrol with the Microsoft Team System. They are the ultimate NIH company. I've started to form the opinion that this is unsustatinable for Microsoft. You can't keep reinventing and supporting tools like this forever, because no matter how many programmers you have there OSS movement has more. They will keep producing high-quality tools faster than you can release competitors.
People used to complain that Sun were control freaks about Java. What did Sun do? They listened and GPLed Java. I think the guys at Sun have come to a similiar conclusion to me. Your products are part of an ecology and the ecology is always bigger than one company. What you want to do is foster a larger ecology for your products and hope that this translates to sales.
I admire Sun for this approach, it's risky but it shows maurity in face of change ushered in at the hands of OSS. Microsoft seems to have no strategy for tackling OSS outside of the United States. Over here, software patents don't exist. They may win the battle but be swamped by the tidal wave from abroad.
I use TestDriven every single day I'm in work and I can tell you that this makes the licensed copy of Visual Studio 2005 (paid at full price) a much more functional piece of software. To me, this is validation of the ecology; the open source product made me feel that I'm getting more value out of the purchase.
It's this affect that Sun hopes GPLing Java will bring to their revenues. I for one think they're right.
Simon.
The MS project manager goes on about working with Jamie to clear up the Express situation, but doesn't explain their reasoning beyond calling what he did "illegal."
First, that's not the way to treat your community. Either explain to him and to us exactly what he did that was wrong, beyond the vague wording at the beginning of not being in the "spirit" of Express editions. Second, when can Microsoft unilaterally declare breach of contract "illegal?"
I use DevC++ for all my hobby needs and teaching the kiddo. After this, I would never switch to MS C++ Express or VB Express, even if it was a vastly superior product. I just need some syntax highlighting and compiler integration. I don't want to dance around legal threats over what Microsoft's "spirit" is this week.
I've often wondered how much one can get away with in licenses. Of course they cannot override any consitutional or local laws, but say a developer is rather religious. Can s/he then stipulate that the software cannot be run on Sundays? Or that the user must be wearing underwear or shoes and shirt while using $PRODUCT ?
try { do() || do_not(); } catch (JediException err) { yoda(err); }
If they don't want addin support in the free edition, disable it in the product.
If someone enables it and it works, what exactly has he done wrong?
Only if your terms make sense. If, for example, you said "nobody with a yellow shirt can use my software"
Cheers
Lost at C:>. Found at C.
Come on. The irony of this is at very high levels. M$ touts Visual studio express as the "free" windows IDE/compiler in response to many OSS competitors. Then someone develops something for it and M$ starts pitching a livid bitch fit. This is M$ paying lip service to customers, saying "look here, we're free too!" then having it bite them in the ass, because the value of M$'s software is enforced by an untested (ie legally debatable) custom shrink wrap copyright.
If they said 'no addins' for the free edition, and someone does one, surely they are in the right to get annoyed?
It matters where they said 'no addins' though. There's a difference between a bullet point in a product comparison table and a clause in the EULA. Where the problem lies is Microsoft has yet to point out the specific part in the EULA that forbids addins for Express, instead falling on the spirit in which the project was designed.
If 'no addins' is not in the licence, Jamie is not breaking the licence.
They probably just copied the licence from another version and hoped that people wouldn't actually read it.
From the Express lead's blog:
"As for Jamie, we've been asking him in multiple emails and conference calls to stop extending (just Express) since before Visual Studio 2005 even shipped. We even got the General Manager of Visual Studio to personally talk to him on the phone to plead with him to remove Express extensibility. Closely following that, Jamie took the violations to heart and removed Visual Studio Express extensibility for several months. Only recently did he decide to add Express support back to TestDriven.NET and only after another round of conversations and close to two years of trying to avoid escalating this situation, we felt compelled to deliver our message in a different form."
Something's rotten in the state of Denmark...
Loading...
So the question is: "Is TestDriven.NET legally required to alter their product so as to enforce the terms of someone else's EULA?" Isn't it the end-user, who combines VS Express and TestDriven.NET that is in violation of the EULA?
Or perhaps the real question is: "Are ridiculous terms in an EULA, such as 'thou shalt not make the product do things we didn't intend for it to do' actually legally enforceable?"
Digging into the email exchange I found Jamie saying:
1) You said that by using Intellisense I may be in breach of the
dissasembly clause in the VS SDK license.
2) You said that by working out how to use an API by looking at the
public type and method names I may be in breach of the reverse
engineering clause in the VS SDK license.
3) You said that by adding a button to the Express SKU interface I may
be in breach of Microsoft's copyright.
#3 is particularly funny
My turnips listen for the soft cry of your love
How did this guy pull it off? The e-mails make it look like removing support for Express was a matter of flipping a switch. Did Microsoft seriously just cut and paste Visual Studio 2005 into 5 different language-specific projects and call those the express editions or something?
According to TestDriven.NET's EULA,
...
Except as expressly permitted in this Agreement, Licensee shall not, and shall not permit others to:
(ii) reverse engineer, decompile, disassemble or otherwise reduce the Software to source code form;
Now what did one of the emails from Microsoft say?
Thank you for not registering your project extender during installation and turning off your hacks by default. It appears that by setting a registry key your hacks can still be enabled. When do you plan to remove the Visual Studio express hacks, including your addin activator, from your product.
How did they find out about this, except from reverse engineering TD.NET?
Also, if my product was continuously being called a hack, I'd be seriously pissed off. The MS guy is an asshole, full of himself.
...You may not work around technical limitations in the software... This is also in Microsoft's other agreements. I would like to see this particular onerous line challenged in court. It is very vague, and probably impossible to judge or enforce. Lots of things have technical limitations, and people work around them all the time. I don't like EULAs in general, and this is a good place to start challenging them.OK, so lets say that you are correct about the technical limitation (I have no idea if you are or not). If that is the case, then MAYBE, using TestDrive.NET with Express is a violation of the EULA.
But the writing of TestDrive.NET was likely done on the full version of Visual Studio. So the developers probably did not violate the EULA. At best MS has a case that END USERS (the ones bound by End User Licencing Agreements) who use a plugin (any plug in, not just this one) with Express, are violating the terms of the EULA. Given that, Microsoft should be going after those users and not after a development company that has simply written a tool for the pro version of the software. The fact that end users can hack the free version to use that tool as well is no concern of the original plugin developer.
Even if he distributes instructions on how to preform this hack Im not sure they have a case against him. He isn't bound by the EULA of software he doesn't use and the information is probably protected in the same way that lock picking guides and cable de-scrambler schematics are.
"In America, first you get the sugar, then you get the power, then you get the women..." -H. Simpson
Well then maybe they should have actually said you can't use add-ins with it in the EULA at the very least. They didn't, so it's their own fault if people do that with the product that they paid for.
It's not enough to bash in heads, you've got to bash in minds. - Captain Hammer
If only people would stop and dig through the facts, you'll see that Jamie Cansdale not only acted in bad faith by first agreeing to withdraw support for the VS.NET plugin, then turning around only one day later and re-offering support for it in the betas of Visual Studio.NET Orcas. Let us for the moment concede that perhaps Jamie has some sort of valid legal case for continuing to offer his Add-in. Even if that were so, let's read the text of his letter to MS's lawyers, shall we?
" ...we the undersigned hereby jointly and severally: ... undertake ... never again in future (whether acting by ourselves, though agents or third parties, ... etc etc... to make such or any other similar offending products available for sale or otherwise on that or any website, or through any other medium ... We understand that our undertakings in this letter are undertakings to the Court and we are aware that any breach of them may be treated as a *contempt of court*. [Emphasis added by me]"
Wow. That's a pretty strong statement. That means that by re-offering the plugin for Orcas after shipping this letter, Jamie has said that he's willing to go to jail. Perhaps he'll learn some sense of ethics there.
Jamie Quells Dissent on his Blog
You probably won't hear me paraphrase Chuck D much on this blog, but don't believe the hype. Why not? Well, I as well as others (see Eric's post) have tried to write entries in his blog telling him that he's in the wrong on this issue. Somehow our posts never made it to his blog! Surprise! I wonder if it's a bug in his blogging engine. Or perhaps Jamie doesn't want to have a backlash against him start on his own weblog.
TestDriven.NET is not Free Software
If you read most of the responses to this story in Slashdot, or (believe it or not) Jamie's blog, you'll probably be led to believe that TestDriven.NET is free, open-source software, and that Jamie Cansdale is a lone developer, toiling away for the sake of the community, and being bullied by the 800 pound Gorilla that is Microsoft. Nothing could be further from the truth. TestDriven.NET costs$95 per user. Want an enterprise license? That'll be $10,500, please. Some have made the patently ludicrous claim that Jamie does give the software away for free. Not if you're using it professionally, he doesn't! His licensing terms are... wait... that's the next section! Stay with me here, this is the best part!
Jamie's License is Just as Bad
It's time to play a little game, boys and girls. The game is, "let's guess whose license agreement this is":
" ...you may use the software only as expressly permitted int his agreement. In doing so you must comply with any technical limitations in the software that only allow you to use it in certain ways... You may not work around any technical limitations in the software..."
versus:
" ...Licensee shall not, and shall not permit others to ... use the Software in any manner not expressly authorised by this Agreement."
Sound pretty familiar, don't they. The same clause that Jamie complains is vague, irrelevant, and unenforceable in the MS license is pretty much exactly the same in the TestDriven.NET license. Jamie Cansdale is a hypocrite, and he deserves to be exposed as such, and punished.
TestDriven.NET's Real Functionality comes from Software that is Free
For those of you unfamiliar with the product, TestDriven.Net is basically a plug-in for Visual Studio that allows developers to run NUnit, MBUnit, and NCover tests with a click of the mouse, or a quick keystroke. It performs a few other functions, but that's about it. These products are all open-source and free. Others have labored long and hard to generate these tools, and Jamie ships them with his non-free product. All of the heavy lifting is done by these utilities -- TestDr
Is it possible to do .NET development with eclipse?
evil is as evil does