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."
The post from the Visual Studio blog is quite interesting. In the first paragraph, Dan Fernandez says that the add-in "is a direct violation of both the EULA and 'ethos' of the Express product line." Throughout his post, he continually mentions that the add-in is "illegal."
Yet he spends the entire post talking only about the "ethos" part of it (describing their numerous good faith attempts to convince Jamie Cansdale to stop distributing his product), but he never explains what the illegal part is. Clearly the Visual Studio team feels that Jamie is violating the "ethos" of their project (their "business plan," in fact). On the other hand, Jamie probably feels that the Visual Studio team is violating the "ethos" of his project when they try to limit it. So whose "ethos" is more important?
At no point, however, does the blog post mention anything about how the Visual Studio EULA could prohibit the distribution of TestDriven.NET. After all, I can redistribute copies of TestDriven.NET without even owning a copy of Visual Studio--so obviously I'm not bound by the Visual Studio EULA.
I can think of no legal reason to prohibit what Jamie is doing... and apparently, neither can Dan Fernandez. Has anyone found a nugget of legal truth in the other documents?
Test Driven Development is not, itself, a bad thing, but if Too Many People glommed onto the underlying technology, and a culture of freedom of expression broke out, well...let us leave the unspeakable unspoken.
The whole thing is business, pure and simple. If you leave off the 'good' and 'evil' labels, the situation is easier to process.
Of course, maybe it's all a stealth advertising campaign for http://www.mingw.org/. Who can say?
Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
However they were not happy with the way the "good faith" negotiations proceeded, and now they are trying to use the law to get their way. The question is, do they have the right to legally enforce their ethos? If there were a contract between Microsoft and TestDriven.NET, then that may limit what TestDriven.NET is allowed to do. However it does not appear that this is the case. In fact, it appears that there is no legal reason why someone can't program add-ins for VS Express. Microsoft may not like it, but it's not illegal. (Please correct me if I'm wrong on that point.) I disagree. If I obtain a product (buy it for $X or download a free product under certain licensing terms) then I can use it however I want (limited only by the law). If something in the EULA makes it illegal to use add-ins, then I suppose Microsoft can claim that end-users of TestDriven.NET are violating the VS Express EULA... but that still doesn't make TestDriven.NET's actions illegal. You're mixing two different issues, however. The GPL is a license that (along with copyright) provide a legal framework that delineates what you can and cannot legally do. That is a legal issue. If you release your GPL project, and then find that someone is using your code to run a porn website (but is complying with the GPL), then you may claim that their usage is against the "ethos" of your project--but that still doesn't give you the legal right to prevent their use. You gave them a license to use the software, and that's what they are doing. You can be annoyed, but you cannot sue.
Translation: "Jamie is interfering with our attempt to devalue various Free Software tools."
Translation: "Microsoft legal doesn't understand the value of giving away software"
Translation: "Our code base is such an encumbered mess that disabling features was an arduous task."
Translation: "The only way people will buy our crap is if the one feature they need can't be had for free, and their whole product is already implemented using our IDE, making it harder to switch to some other product, perhaps a Free one."
Translation: "We decided upon a truly stupid licensing model, and now our customers who paid good money to be able to create extensions are pissed off that we did a shitty job of preventing unlicensed ones from working on a free product."
(No translation needed - it just doesn't make sense! If the extension fits, you must acquit!)
Translation: "Yet almost every time, he has been logical and reasonable, instead of knuckling under."
Translation: "But we thought we had him nailed down when we threatened to sow his ground with salt, burn his houses, rape his cattle, and ride off on his women."
Translation: "He finally came to his senses and just released the damned thing, so we decided to point more guns at him."
Translation: "Most people who download this software aren't pros who would pay for our software anyway. In spite of this, I'm so angry I forgot my apostrophe."
"They're just people who needed a VS IDE to compile some jackass' project."
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
Not just in the code, but in the licence.
Continuing with the shirt analogy, it's like having two programs, let's call one 'Express' and one 'Enterprise'
Express feature table says 'No support for users wearing yellow shirts.'
Enterprise feature table says 'Supports all colors and color combinations on shirts.'
But your legal department charges you $1 mil per EULA, so you decide to just put the EULA for the Enterprise version with the Express version, after a simple s/Enterprise/Express/g;
Now you have a user calling in wanting support and the techs ask his shirt color and version. He says yellow and Express. The techs say this is in violation of the EULA, but in reality, there is no clause refusing him service.
The feature table is not a contract. The EULA is, and he agreed to the EULA that you were cheap on that didn't explicity exclude support for yellow-shirted users. You are now up doodoo creek without a paddle...
You just clearly stated the very reason why his software is NOT in violation. The intent that the writer of the EULA was probably trying to achieve was to prevent extension. However, the developers failed to actually disable the extension functionality. There is no "technical limitation" to work around here. The "limitations" that prevent the use of extensions are not technical ones, they are simply documentational - Microsoft claims that extensions don't work on Express, so people believe them and don't try to extend it. This guy discovered that it atually works just fine. So, where's the "workaround" of "technical limitations"? Microsoft intentionally wrote the extension functionality into the software, and failed to disable it. He's just using their feature as designed.
I am a geek attorney, but not your geek attorney unless you've already retained me. This is not legal advice.
In the past, when Microsoft didn't want something to work, like say, Lotus 123, they would release an upgrade that would run all their stuff, but not Lotus 123.
What's stopping them from doing the same here? Can't they just release a new upgraded version of Visual Studio Express that won't run his stuff?
All ideas^H^H^H^H^Hprocesses in this post are Patent Pending. (as well as the process of patenting all postings)
He's saying that MS should not try to squash community efforts to create great software on Windows platforms. You might need to read that again for it to sink in. He's not saying stop writing software altogether. He's not saying discontinue SQL server because there's some shareware database out there.
What he is saying is that they don't need to control every successful application on the Windows platform. If they try to, they will both a) breed bad will amongst the developer community, which will hinder Windows application development, which will cause great development to happen in other platforms, and b) waste a lot of money and time in development and support trying to fill every software niche that exists in a platform. They can't write *all* the software for Windows.
Simply put, MS alone cannot provide as great a Windows experience as MS + developer community can. But every time some great developer makes a wonderful product for Windows, they either squash it or snatch it up and abandon it. At every opportunity they destroy the Windows development community. Not only do they want you to run only Windows, the want you running only MS software on it. And they just won't be able to provide all the software that a user will want on their system. It's the old Soviet model of central planning, where Moscow decided the details of the economy from Khazakstan to Siberia. Eventually it implodes under its own weight.
Computers are useless. They can only give you answers.
-- Pablo Picasso
Is he attempting to steer the discussion (and basis of MS's actions) away from ground that may not be as firm as MS would like to pretend it is? "Our ickle novice programmers don't want or need TestDriven.NET". Then they won't use it, Dan. As you may remember from my previous posts, Visual Studio Express was a labor of love. MS would not have permitted the release of Express if it had not been to their benefit; in this case, giving low-end programmers the chance to use, learn and be steered towards their product without cannibalising sales of the full Visual Studio.
If it really was a "labor of love" for Dan, then I'd question why he's pouring his heart and soul into products for a company like Microsoft, and consider him somewhat deluded. On the other hand, he's a manager, not a low-level Bill-Gates-is-God-Kool-Aid-drinking peon, so you'll excuse my scepticism if I consider this to be an attempt to play the "I'm one of you and really enthusiastic about this" sympathy card.
The tone of such comments as It's unfortunate that this happened, but as you can see, we have been very patient with Jamie and it's our hope he will remain in compliance of the Visual Studio Express Editions license agreement. smacks of PR. It's the weaselly attempt to come over as firm-but-friendly whilst underneath making clear what they expect to be done and the veiled threat if it isn't. Either he or someone else has consciously worked on this.
I also notice that he states here: Back in 1975, Microsoft started out as *the* hobbyist company for a nascient software industry. While many things have changed since then, we always had a special place in our hearts for hobbyists. Yeah, MS has always been the hobbyist's friend, ever since Bill Gates' friendly letter to them in 1975. They've always been open and let people play around with their stuff.
Lying corporate fuck.
"Slashdot - News and Chat Sites Deviant". (Click "homepage" link above for details).
On Windows, I would bet that the three most widely used applications are IE, Outlook, and Word/Office. All provided by MS. Like I said earlier, MS wants to be the sole provider of *all* software on your Windows computer. If something they don't control begins to appear somewhat popular, they either squash it or buy it out. They want to be the sole provider, controlling everything.
Comparatively, almost everything in Linux was written by a different person or organization. Some of those command-line utilities are 20 years old, and still going strong. Tools such as 'grep' and 'find' works just as well today as they did 20 years ago. What industry protocol has ever come from a small-time MS developer? Almost all of our modern computing standards -- ftp, http, email, came from small-time unix developers. Neither MS nor its developer community have made much contribution to computing in general.
Computers are useless. They can only give you answers.
-- Pablo Picasso