Hanalei, Hawaii 9/2/2010
438 Posts and Counting

I'm A Litte Freaked Out

Saturday, June 16, 2007 - I've been sort of on the sidelines with regards to Jamie Cansdale's struggles with TestDriven.NET, sort of waiting for Microsoft to come along and say "you know, let's be friends" and drop their legal posturing. I keep waiting and waiting thinking "no way - no way MS would do this to Jamie! Any day now..." Guess not. It keeps getting worse.

But that's not why I'm freaked out - if Jamie did something wrong (extended the Express SKU when he shouldn't have) then he should rightfully be stopped. It's the language of the clause that's getting me:


"You may not work around any technical limitations in the software"

Uhhh ... what?

I won't editorialize here - lots of others are doing that and I don't need to pile on here - it's obviously a ridiculous statement. No, my problem is that

Microsoft if standing behind this vague statement to have it's way with Jamie.

I feel for Jamie - in a very big way. Let's imagine that on the plate for SubSonic is a cool AddIn that allows you script out your data, generate up your DAL, and perhaps someday even work up an editor page or two. Actually let's not imagine it - that's what I'm planning.

No longer. I'm pulling the whole AddIn completely.

Is code generation and sql scripting a "limitation"? Hmmm.  Just the fact that the statement exists and that Microsoft is actually using it to hammer Jamie is causing me to stop altogether any work related to the Visual Studio UI. There seem to be so many other examples of people scratching their heads, people I really respect,  saying "What's going on here?" when Microsoft "eat's its own?". Is this going to keep happening? What do I do, as the leader of two Open Source projects, someone who's trying to spin off more and grow this whole Open Source thing within the Microsoft space - what do I do when the Smack Down comes?

I'm very tempted to stop work on SubSonic completely (stop as in not innovate - we'll always support it) until this issue is resolved. Partly because I want to support my OS compatriots, but more importantly to see what shakes out of it. This is really, really important stuff here and it's a defining moment for us as Open Source Microsoft developers. I don't want to keep doing this, thinking that maybe someday I might get sued based on some ridiculously vague sentence. It's hard enough on my pocketbook as it is! Are you telling me that I  need to think about getting sued! Cause I sure as hell won't back down...

I'm headed out to Redmond this next week for completely unrelated reasons and I have a dinner date with Sam Ramji (the Open Source Strategist with Microsoft) as well as a few other MS folks and I'm going to make it a point to discuss this issue at length. There are some stellar people at Microsoft and I think we can definitely get them to listen and help in this regard. Sam, is this true?

I would really, really appreciate any comments that any of you have on this matter and I'll make it a point to bring it up to them while I'm there.



Related


Gravatar
Ryan - Saturday, June 16, 2007 - First off, I am shocked that you would stop working on SubSonic when you could continue your work using Mono! Your interaction with Miguel and subsequent task of porting SubSonic to Mono seemed very promising for this reason.

Second, Jamie is being persecuted by MSFT for making their free (and crippled) product better. Why make an addin when you could keep it seperate (and let us make our own addin and take the responsibility for what we do on our own machines)?

Third, Do you think Microsoft would target you / SubSonic because of Linq / DLinq?
Gravatar
Scott - Saturday, June 16, 2007 - So here's my two cents.

First, MS hasn't sued Cansdale yet. They contacted him first before sending in the lawyers. So far the lawyers have sent letters. No summons or court dates yet. So it seems to me that you could put the code out there and if you get a C.A.D. letter, pull it. It looks like Cansdale had several opportunities to do that, but he chose to play chicken with the train. Usually in those situations, the train wins.

Second... Well there is no second really. You do what you have to do. But I think you should do whatever you want to do, and if they tell you to stop it. Stop it and put up a big post/write an article in Code magazine/take out a full page ad in the Seattle Times explaining exactly WHY you pulled the project.
Gravatar
Rob Conery - Saturday, June 16, 2007 - @Ryan: good point RE Mono :). In terms of what MS would do - well I don't know really. That's what I want - just to know what I can't do. Linq crossed my mind, yes.

@Scott: Thanks for the points - I'm assuming that Jamie won't back down. We'll see - I want this all to end happily.
Gravatar
Ibleif - Saturday, June 16, 2007 - I havent read all the background info on the case so I will not comment on that. But I do have a comment on the SubSonic.

I would like to know as soon as possible if you pull the plug on SubSonic, so I can begin using another "framework" for my DAL generation. Don't want to use a dead-end system.

I love using SubSonic and finds it very sad if that is your decision.
Gravatar
Rob Conery - Saturday, June 16, 2007 - I'm NEVER EVER pulling the plug on SubSonic. There are directions I might not go down (like a VS Addin) and I might delay things a bit until I know what's going to come of the TestDriven.NET deal - but I won't yank SubSonic :).
Gravatar
Jon Galloway - Saturday, June 16, 2007 - Simmer down, hoss...

Microsoft's going after Jamie for extending Visual Studio Express editions, which (from what I understand) takes a good amount of COM-FU to accomplish. It's not like Jamie said, "Whoops, I accidentally enabled an addin on VS.NET Express..."; he put some significant work into getting it to work in an unsupported environment. Then Microsoft contacted him and he removed the support. Later, he changed his mind and re-enabled VS.NET Express support.

That's not to weigh in on either side, just to say that Jamie's issue doesn't have anything to do with a SubSonic Addin unless you plan on getting your addin to work on VS.NET Express...
Gravatar
Jamie Cansdale - Saturday, June 16, 2007 - @Jon Galloway: "he put some significant work into getting it to work in an unsupported environment"

We're talking one rather simple COM interface and less than a day to get it working nicely (including work on the installer). There is a lot of FUD out there. Don't believe the hype!
Gravatar
Jon Galloway - Saturday, June 16, 2007 - @Jamie - I didn't know it was that easy. However, my point was just that it's not something a developer would do accidentally, so Rob shouldn't be worried about MS banging on his door in the middle of the night.

I agree that using that specific clause in the EULA to enforce just about anything is a poor idea. If they don't want Express extended, they should make Express non-extendable. I think that's it's possible that MS may be technically right, but foolish to enforce it in this case. However, my point is that Rob shouldn't stop developing a SubSonic addin unless he had plans to enable Express support.
Gravatar
Rob Conery - Saturday, June 16, 2007 - @Jon (and @Everyone) I won't stop SubSonic - Ever.

I don't think I stated clearly why I'm so freaked. Here's the deal: Jamie didn't violate a EULA - a EULA is for an end user. As Frans Bouma stated, he could have created TD.NET in Notepad and never seen the EULA. Moreover, the statement in the EULA is so vague even IF he did use VS Express. So what you have here is a simple statement from Microsoft: don't bend our product, even though we made it bendable and will most of the time let you (and encourage you) to bend it. Frans likens this to a command :) - I won't be that strong.

This is all very arguable and I really don't want to take sides. I simply don't like the vaguery of it all and I especially don't like how MS is handling this in light of the vaguery.

Gravatar
Mike - Sunday, June 17, 2007 - Did you read all of the emails Jamie posted?

My opinion it was a hack, and MS was very kind for two years, giving him plenty of opportunities.

For me there is a bigger concern here with MS. The client applications and services are getting to the point that they compete with there dev customers. MS should stick to server and tool technologies and stay out of the ISV and SaaS markets.
Gravatar
Chris - Sunday, June 17, 2007 - I am with Jon on this one - this post seems a little reactionary / knee-jerkish to me. Make a good add-in for VS Standard+, avoid the Express Editions and no one will be sending you letters or coming in the middle of the night.

The Express Editions "probably" have all sorts of way to extend them, but MS wants to circumvent that because then it could stiffle VS Standard+ sales. Imagine if 20 Jamies created add-ins for Express Editions, what would become of VS Standard+ sales? Hell, take 1 Jamie clone and allow him to add debugging support and I'd bet you would see a fair amount of drop off in sales. Not a smart move for MS - akin to shooting oneself in the foot I'd say.

As for vaguery - we've all been developing software long enough to understand there is always vaguery, so I don't get what makes this vaguery any different than the other types of vaguery we habitually deal with in this industry? Few other engineering disciplines have to deal with the vagueries that we do, not to mention the dopey timelines, dopey licenses, and dopey you name it. But that's a post for my blog . . . :)

Gravatar
Rik Hemsley - Sunday, June 17, 2007 - "it's a defining moment for us as Open Source Microsoft developers"

You keep mentioning open source, so I thought I should point out that TestDriven.NET isn't open source.
Gravatar
John - Sunday, June 17, 2007 - Rik has it right. TestDriven.NET is a commercial product. Jamie knew exactly what he was doing in his "end run". Vaguerys aside, we all all know the intent of express editions. Maybe Jamie has a legal case, but his ethical case is suspect.

Just when I was seriously getting into SubSonic, this knee-jerk reaction!
Gravatar
Rob Conery - Sunday, June 17, 2007 - @John: Knee-jerk? I've been sitting here watching this thing unfold and I'd hardly call it knee-jerk. I've invested a lot of time into this thing and I feel threatened right now. This issue is far greater than some COM hack. MS doesn't have a legal position to ask Jamie to do anything and they've yet to respond to the people who keep asking "what did he do". That's the point here, and I keep hoping that they'll settle soon and clear that whole thing up. Dan Fernandez is quite cagey on the matter.

@Rik: Yes, it's not Open Source and I didn't mean to liken it to OS. I don't think it matters whether Jamie is making money or not - if SubSonic did the same thing, they'd have written the same letter to me. And like Jamie, I'd ask "what did I do" and like Jamie, if I didn't receive an answer I'd have a hard time with it though admittedly I'd probably play ball.

@Chris & @Mike: You're missing the point. People keep saying "they asked him for 2 years and he ignored them" (summary). While they did ask him, he asked "why" and never got an answer. I know you well Chris and I don't think you'd respond kindly to someone telling you to stop anything without a clear reason.
Gravatar
Evan - Sunday, June 17, 2007 - @Rob

I think you hit the nail on the head. Did Jamie violate the EULA? What if he wrote TDD.NET in SharpDevelop? The *use* of his product may violate the Express EULA, but then why would they sue him? If you were in his shoes with SubSonic, would you have even known? Jamie lives in England (I believe), so I'm not sure how/if the DMCA reverse-engineering stuff applies..

I know that if I decided to write an Express AddIn, I would probably develop it in Professional Edition (which is what I use day-to-day). That Express EULA would be no where to be found on my machine (unless I took the time to read the *entire* thing when I installed it to test, yeah right).

If I were a betting man, I'd bet that clause was meant to keep Visual Studio from going the way of Eclipse. But what does that mean? Maybe they feel threatened by the quality of community-developed tools and don't want them to run on a free IDE.

In short, the whole thing is a PR nightmare for MS. First revoking his MVP status, then threating with a lawsuit. Then backing it up with a "technical limitation" clause. Just how do you define a "technical limitation"?

If the lack of unit-testing support is a "technical limitation", than is connecting to MySQL also a "technical limitation"? I realize in context, that we are talking about AddIns specifically, so creating a Server Explorer like add-in for MySQL is out. Would adding a new ODBC driver to your system also be a workaround for this "technical limitation"? If no, what's the difference?
Gravatar
Seth - Sunday, June 17, 2007 - Rob,

I can understand your concern because of the vagueness of the MS standpoint. Who knows where "technical limitation" begins and ends - surely there are many products that work with VS out there that could be said to extend the limitations...

You right I guess you could say that your SubSonic tools work around the limitations of the software but I think that maybe there is a little difference between TD.Net and SubSonic....

Isn't unit testing in versions of the product that you have to pay for? So TD.Net is actually giving users of the Express product functionality that MS were probably wanting them to pay for.

Whereas the functionality subsonic offers is not in any versions of the product.

However that probably doesn't give you a lot of comfort.

I love the external tools of SubSonic that work from VS... don't get rid of them they are great!

Cheers,
Gravatar
Kevin Isom - Sunday, June 17, 2007 - Rob,
It seems that the biggest thing with the whole TestDriven.Net is what Jamie did by allowing it to work in the express editions, and by the fact that he is charging for it. You don't see the people at Developer Express worrying about CodeRush, or jetbrains worrying about Resharper. Why? They don't work in Express.

Now I agree that the EULA is entirely too vague and I think it needs to be rewritten, unfortunately I don't think MS will listen to me or anybody else, and I have a feeling the legal system won't either.

Microsoft needs to come out and clarify these things for the benefit of the community, otherwise they will be used to help generate more FUD.
Gravatar
Rob Conery - Sunday, June 17, 2007 - @seth: It's such a subtle point here and I don't think I did it justice with the writeup above - hopefully people will keep reading the comments or maybe I'll follow it up with another post.

Here goes another try:
I have all sorts of wild ideas, and they hinge on increasing productivity of a developer, and offering as many "that's SWEET" moments I can. One of the top "tsm's" is when the BuildProvider goes off - and so far I've made it very one-dimenstional. But that (up til now) hasn't always been my plan.

You can "script" the abp file to the point where you can do a lot - such as script out your DB, fire some custom code using reflection, and even hook into the IDE. In fact we could go the route of what TD.NET was doing and harness your Unit Testing framework (i didn't intend on this - but it's an example) and run some tests.

The unit testing thing is just an example - but who knows what Eric, me, or any other creative member of our community might come up with?

The only case MS has here is a case against all the VS Express users who are using TD.NET, as that's who the EULA applies to. They won't go after them (I hope) so they go after the guy who's writing the tool that allows this. I can completely understand MS's point - "Dude you've created a hack that allows our users to break our EULA" - but they didn't say that did they? They claimed he was breaking the EULA and are threatening him with a suit. That's the point - the tactic's they're using when they clearly didn't do a good job of protecting the VS Express SKU.

If you look at the situation that way, you begin to see that 1) Yes Jamie is hacking the SKU 2) That's not forbidden and 3) MS is creating a PR debacle here when they really should 4) Ammend that EULA and 5) Admit that they goofed and protect the Express SKU better.
Gravatar
Rob Conery - Sunday, June 17, 2007 - @kevin: Dan Fernandez said as much on Robert McLaws blog and called it a "hard-learned lesson".

But the EULA's NOT the point, is it? He didn't violate any EULA - that's the MS position but it's not accurate.

The thing they are clarifying here, to me at least is that if you write some software that "works around" any "limitation" in their software, you're a target. The EULA is for the END USER - not the developer right?

Make sense?
Gravatar
John - Sunday, June 17, 2007 - Maybe "kneejerk" was a little strong. Sorry!

I suspect it will come down to intent (a mainstay in law). Microsoft's intent in releasing limited versions and Jamie's intent in subverting those limitations. I think the EULA is a smoke screen being used by both sides and will probably have little to do with the outcome.

Anyway, I hope y'all continue with SubSonic which makes DB access easy, even for a geezer like me.
Gravatar
Josh - Monday, June 18, 2007 - If I can add my two cents....having come from being a Linux developer to becoming a .NET developer this is very disheartening. I do not believe Microsoft understands this kind of action is exactly why they are hated by the OS community. Jamie should be applauded for adding functionality to free software of Microsoft, it may get more developers to try it out and start developing in .NET.

Microsoft can make all the agreements with Linux distro developers they want, but that doesn't make them any more OS friendly. They are trying to appeal to the OS community while they are attacking them at the same time, that doesn't work. I myself want to go back to Linux development after the crap I have seen over the last few weeks.

In my very humble opinion Microsoft should make all versions of Visual Studio except for Team Foundation free. Visual Studio is already respected in the development community even if you hate Microsoft it is a good IDE. Microsoft should not be worrying about the sell of their Visual Studio line, they should cultivate it and get more and better software out for Windows. This will allow them to keep such a commanding lead in the software and Operating System market.

But then again I am not Ballmer so who cares what I have to say.
Gravatar
Robert - Monday, June 18, 2007 - Jamie has read the EULA for VS Express. I don't know how can anyone think differently ... In order to see if the intergration with VS Express worked he was obliged to install it in the first place.
Gravatar
Joe Brinkman - Monday, June 18, 2007 - People keep saying that TD.Net didn't violate any EULA's, but that is like saying Napster didn't violate any copyright laws - the user's did. The courts didn't exactly see it that way. When you right software whose normal use requires people to violate copyrights (which are the rights that the EULA conveys to a user), then you are just as liable as the person using the software. Why heck, under many people's definitions even viruses and worms are totally legal since it is the end-users machines that propogate the software, not the original author. In his most recent blog, Scott Cate discusses writing software that you know will be used for unethical/illegal purposes.

Personally, I take just the opposite view of this situation than Rob. This issue tells me that if I step over the line into some vague area that Microsoft will bend over backwards to avoid bringing lawyers into the picture. That gives me more comfort knowing that I am free to innovate and that if I stray into a gray area, I will have lots of warning before anything drastic happens.
Gravatar
Josh - Monday, June 18, 2007 - @Joe Brinkman

I can't disagree with you more. You are putting an enormous amount of liability and responsiblity on a programmer if you truly feel that way. With that same argument you must argue that Bit Torrent is liable then for all the piracy that goes on there. It is not the my responsiblity to write software that people can't use in a negative fashion. It is my responsbility to innovate and what people do with those innovations is their own doing.

That is equivalent to the people who say that those who manufacturer guns are responsible for the murders that are carried out using a gun.

Microsoft should embrace people adding on to their products. It makes the economy around their products that much stronger. To me this is being greedy and not having foresight...
Gravatar
Vinicius Rocha - Monday, June 18, 2007 - Ok! I understand all your point of view. But I work for a big company in Brazil and we have compromises with our clients and we want to write software that can last as much time as it could stay in market and, seriously, how do you expect a big company like the one I work for adopt Subsonic as our main DAL framework if you threat discontinue the tool just because Microsoft ask someone to stop publish his software for a free version of VS. TD.NET may be judicially right, but ethically he is completely wrong in my point of view! That's one of the main reasons why so many companies don't trust the open source world.
Gravatar
Vinicius Rocha - Monday, June 18, 2007 - Ok! I understand all your point of view. But I work for a big company in Brazil and we have compromises with our clients and we want to write software that can last as much time as it could stay in market and, seriously, how do you expect a big company like the one I work for adopt Subsonic as our main DAL framework if you threat discontinue the tool just because Microsoft ask someone to stop publish his software for a free version of VS. TD.NET may be judicially right, but ethically he is completely wrong in my point of view! That's one of the main reasons why so many companies don't trust the open source world.
Gravatar
Seth - Monday, June 18, 2007 - @Rob - yes I hadn't thought of it that way before, an ELUA is just that a license agreement for the end user and I think you are right Microsoft's agreement is lacking and if they want to stop certain things then they need to be more specific about what they mean for everyone's benefit - I mean Ms are only talking about express but funnily enough isn't the term in question in all the EULAs?

Is it really a developers responsibility to ensure that their software doesn't violate the end user agreements of every version of software that their software works with?

@joe - and when there is gray areas who determines when you have crossed the line when the terms of the license in question is so vague? Surely developers aren't going to spend 100s of hours on a project just to throw it all away because becuase they have stepped the grey line? A gray line which is determined on a case by case basis by microsoft might I add!

They gave him an MVP for goodness sake! Are they seriously threatened finacially by one guys idea - I think not! We all contribute amounts to their bottom line every single year.

I can understand robs predicament - am I going to spend hours conributing to the developer world with the possibility of one day being told to pull it because I have crossed the line... Wherever it is. What is required from Ms is a solid documented statement that everyone
Gravatar
jpantuso - Monday, June 18, 2007 - He worked around deliberate limits imposed on the free Express version of the devenv. There is no question he knew what he was doing and that he shouldn't be doing it. MS gave him ample warning. I really don't see what all the fuss is.

Are you planning to deliberately circumvent the limitations of the Express devenv? I don't think so. So don't sweat it.
Gravatar
Troy - Tuesday, June 19, 2007 - @Seth - Not to mention TD.NET would not be out of business after 100s of hours of development, he still can "sell" his product to the mainstream VS SKUs (which in my opinion is where his sales really should be targeted), just not for the Express SKUs.

So as jpantuso says, don't sweat it.
Gravatar
Rob Conery - Tuesday, June 19, 2007 - @jpantuso, @joe: You ever use Reflector? How many EULA's do you think that breaks? How many people USE that tool to break EULA's?

I'm really tired of people attaching the word "clearly" to this issue - really. There are LOTs of tools out there that fit the description of "EULA-Violator" including PopFly.
Gravatar
Shawn Oster - Thursday, July 05, 2007 - Any update on how your Redmond meeting went?

I'm very curious what actual developers inside of Microsoft think about this. I'd assume they'd be more along the lines of anything that makes the Express edition better is a good thing.

It seems that Microsoft has become more concerned with the concept here than the actual reality of it. It's very easy to twist and turn and worry about the EULA and debate the finer points but the reality is that it comes down to two easy pathes.

1. Microsoft fixes their horribly worded Express EULA, to simply say "Add-Ins in any form, using any method, using any technology, are not allowed." It's simple, it makes sense and while Express users will be disappointed at least it's cut and dry.

2. Microsoft backs off, says sorry, plays nice and trys to recover some goodwill. They allow TD.NET to continue and all those hobbiest programmers using Express start using Std and Pro when they get real jobs with a company that pays for VS.

What makes this so poor is that MS could have protected their Express line easily by just ammending the Express EULA and I think everyone at the beginning would have understood. A simple "Hey Jamie, our EULA sucked, here is a revised one." Of course MS *didn't* do this because they want the flexability to pick and choose which add-ins are allowed so Express still seems "open", even though it's not.

As an aside I've noticed many commenters saying "You don't have to worry SubSonic doesn't compete against any up level features". Well, anyone see Jasper that just came out of Mix '07?