If this story haven’t made its round on Slashdot, then it is a matter of time. It appears that Microsoft is threatening to sue TestDriven.NET over its extension of Visual Studio Express. The main article I found is on TheRegister, and a follow up piece about joe public’s reaction. An unofficial Microsoft’s version of the story is available here. All these is spiced up by the fact that it appears to be a spat between Microsoft and one of its “Most Valued Professional”. Unsurprisingly, the MVP status of one Jamie Cansdale was not renewed.
When I read the main article and follow the provided email conversation, I hardly have any idea what the fuss is actually about. The only thing I know is that it appears to be a button or UI element of some sort that irked Microsoft. This did not surprise me since we only one side of the story and there are a lot of non-written communication between the two parties that we do not know about. One of the lawyer letters Microsoft sent to Cansdale is an interesting one and shed some light.
I am going to believe Cansdale claim that he did not do anything that will constitute reverse-engineering or illegal jittery-pokery. He used nothing more than published Visual Studio API.
Microsoft’s lawyer picked this section in Visual Studio Express EULA to support its client claim:
“…you may use the software only as expressly permitted. In doing so you must comply with any technical limitations that only allows you to use it in certain ways… You may not work around any technical limitation”
So, if Microsoft published the API on the net for all to see, did not mark it as “do not use for Visual Studio Express”, and if you use it, is this circumvention? Most people will say no. To qualify as circumvention a basic requirement is that it needs to be clearly marked. Simply because it is hidden from view does not mean it is a limitation. The publication of API normally means you can use it. Otherwise, why bother?
Technical limitation tend to mean something that is set, either at compile time or with a configuration parameter that users are forbidden to modify. In the latter case it also need to be publicized. One good example will be Windows Starter Edition’s 3 applications at the same time only. If it is set at compile time and you write a program to change the value, that’s circumvention. So is going into window’s registry and change the “Number of simultaneous application” from 3 to 3000. The second case is circumvention ONLY because it is well publicized. Even then, I will argue it is a “restriction”, as oppose to “limitation” in the first case.
My reading of technical limitation in Visual Studio Express case is you cannot patch Visual Studio Express with a DLL from Visual Studio proper. Nor can you tamper with Visual Studio registry setting to get some disabled functionalities. Both will be circumvention. However, if the functionality is in the vanilla favour of Visual Studio Express, and the API is published to the public, then it is intended to be used. Otherwise, the functionality should be removed (or hidden by renaming) or the relevent API marked as “not to be used in Visual Express line of products”
This saga is damaging to Microsoft. Microsoft have every rights to say how its program can be used. But it must mark the boundary clearly. It appears that it probably fails to do so in this instance. This opens it to the accusation that it move the boundaries arbitrarily at any time it likes, and open it to accusation that it shift the boundary to wipe out competitions from its partners. Will Microsoft win the case if it goes to the court? Very likely because of the wording “… allows you to use it in certain ways…”. But if it mismanaged the case, and it is easy to do so, it may wins the battle but lose the war if the defendant manage to demonstrate that it move the boundary arbitrarily for commercial advantage over its partners, since all its partners will now live in fear that it may be the next target.
The sideshow is Cansdale lose its MVP status. Not really surprising. MVP is awarded solely at the discretion of Microsoft and “good behaviour” is likely to be one of the important criteria. It’s sad that big company like Microsoft cannot see through this spat to see Cansdale contribution to its Ecosystem.