I like Martin Fowler. As a veritable lighthouse of the patterns and agile communities, he's both a resource and a calm steady voice for change in an industry that cannot succeed without change.
So, when he posted his recent entry on "Ruby and Microsoft" I was eager to take a look. He cites a general willingness of the Ruby community to work with Microsoft and I'm glad of that. He also points out, and rightly so, that Microsoft has some pretty strict rules designed to prevent open source code from creeping into the product code base, rules that get in the way of open source collaboration. That's what happens when the company is sued repeatedly for two decades by our competitors and government agencies.
Just as IBM suffered under long running, financially and politically motivated, anti-trust suits, which knocked them down a step and opened up the computer hardware market, Microsoft has been similarly affected. Hopefully, we are making the turn quicker than our friends in big blue did, largely by observing their example. They did turn the corner, and IBM makes money. We will turn the corner, and we make money too. I'm sure of that. But the lawsuits matter. They really do.
That said, I have to say that I disagree with Martin about many of the aspects he hit upon. I refer readers to this excellent post from Peter Laudati.
In this response to Martin, Peter argues eloquently for including tools in the toolset that support ALL developers, not just Martin's "alpha geeks." I agree with Peter. The MS Platform should encourage all developers to succeed. I also resent the term "alpha geek." Truly awful.
I would add that Microsoft should NOT deliver open source tools built in to the Visual Studio platform, because we cannot possibly support those tools. If the community develops a tool, they should support it. I have no problem linking to the alt.net stuff and encouraging folks to use it.
I think it would be great if a group of Open Source developers would create an all-up "add-on" install that contains all their favorite tools like NAnt, NHibernate, NUnit, Spring.Net, etc in a single package, complete with documentation and samples, that allows folks to easily add the alt.net tools to their setup in one jump.
Mr Fowler's being unfair to suggest that MS treats open source differently than "technology companies" like IBM, Sun and Apple. We aren't wildly supporting open source. We don't oppose open source either. (not anymore). The vast majority of software companies are "friendly but not too friendly" with open source. (There are tens of thousands of software companies. Martin doesn't name a single serious software company on the open source side.)
It's not the entire industry on one side with Microsoft on the other. It's an industry segment who support open source and make their money on hardware and/or services vs. the segment of companies who make their money selling software licenses. That latter group pretty much ignores open source (or releases bits into open source when we don't want to support it ourselves). Microsoft happens to be in the latter camp, and we are a big player... but we are far from unusual. (Note: I include OSS vendors like Redhat as services companies because, face it, you aren't paying for the operating system... you are paying for the support, and support is a service).
Oh, and I remember when the uber-geeks of yesterday went to Powerbuilder (and declared the death of VB) and then to Delphi (and again declared the death of VB) and then to EJB (and declared the death of everything). Nothing happened. Those platforms are not serious threats. The uber-geeks don't have a great track record for picking winners. I'm not worried.
Why would open source developers want to use your tools? After reading about the current fiasco with http://www.testdriven.net/, I would not want to do anything opensource with the Visual Stuido environment. Many of the opensource developers will probably use the Express version. Since plugins are not allowed on the Express version, what incentive is there to create addons?
Perhaps there are other ways to add on to the Visual Studio Enviornment, I don't know since I don't use your development products.
As a self-outed Omega Geek, I am more concerned with the question, "Why should I give a shit about Ruby?" And apart from fanboys giving me answers like, "Dude, check it out: 'print "ruby" * 4' prints 'ruby ruby ruby ruby'!!!!" Big. F***ing. Deal. Its getting harder to keep my mind open about RoR. From the outside, all I see is hype and no substance. Definitely nothing that makes me go, "Hey, that's interesting enough for me to take a closer look at it!"
You've got me confused. I'm not aware of the fiasco that you refer to. (I'm an IT architect). Can you provide me a link to follow up?
Are you wanting to use Express because it is lower cost? What's the driver there?
>In this response to Martin, Peter argues eloquently for including tools in the toolset that support ALL developers, not just Martin's "alpha geeks."
I don't think you are getting that point. MSFT is making tools for Morts (the priority) at the expense of every other user (especially Enterprise Developers and Architects). They have nothing for TDD. And I would further contend that making these tools "dumbed down" has significantly contributed to why Morts are Morts in the first place and why they are kept there. Think VB6 and the disatrous code that was unleashed everywhere. If Microsoft took some responsibilty and created tools that advocate good software design principles and supported them then things would be different. You and Peter (which is a friend of mine) are covering the corporate butt. It's a cop out.
Sorry, I should have posted the blog link too. (http://weblogs.asp.net/nunitaddin/) The author of TestDrive.net is in trouble with MS. The reason is that his commercial (available for free for non professional users) product is usable as a "plugin" under VS Express. Something that apparently violates either the "intent" of the license or it is a technical circumvention which is expressly forbidden.
If the plugin that was free, would it be alright for it to act as a plugin in VS Express? I don't believe that I'm capable of making that determination. I've not read the current EULA but I alway get that queasy feeling in my stomach when I read them. They don't really tell you anything. The BSD, GPL, and some of the other more popular opensource license are much more understandable. As a developer my rights are better understood and they don't constantly change with a new revision posted on a website.
I don't really want to use the VS Express Tools. I rarely ever boot into windows. When I need to do development under windows, it's typically java. The Eclipse tools and various plugins usually meet my needs.
James is referring to this:
Check out the latest four posts, starting with http://weblogs.asp.net/nunitaddin/archive/2007/05/30/microsoft-vs-testdriven-net-express.aspx. This was even Slashdotted a week or two ago.
James is referring to the current legal issue with Jamie Cansdale of Test Driven .NET fame. FYI
The URL regarding James' comment is this one, the TestDriven.Net blog:
I won't repeat the merits of that case as the whole thing is required reading for this particular discussion. (I'm a little surprised you're not familiar with it.)
Also, I have to call you on a leap of logic near the top of your post. You said,
"... Microsoft has some pretty strict rules designed to prevent open source code from creeping into the product code base ... That's what happens when the company is sued repeatedly for two decades by our competitors and government agencies."
Microsoft got sued by the government for anti-trust violations. Had your software been more interoperable (perhaps if it were open-source friendly), maybe some of the claims of monopolistic behavior would have been weaker. Regardless, US v. Microsoft does not help your argument.
More relevant are the patent lawsuits e.g. Eolas. In that case, Microsoft probably should have licensed Eolas' patent when it was offered in 1994, especially since Microsoft is in the pro-software-patent camp. If you believe we should have software patents, crap like Eolas is what you get. So yes, Microsoft took a blow there but mostly due to a poor legal decision; it had nothing to do with open-source code sneaking into Microsoft's products. Eolas was proprietary and Microsoft actively sought a fight.
To me, a more believable explanation for Microsoft's behavior is that some key decision makers think all open-source successes come at Microsoft's expense. That view would explain much of MS' behavior, including the scandal at TestDriven.Net. Unfortunately, I think that view would be self-fulfilling: if Microsoft undermines open-source software or their advocates, they would only widen the gulf between the camps and create more animosity. Ultimately, there would be few influential developers left in the MS camp who aren't on the MS payroll.
Lots of people are watching this ruby thing closely to see if it's safe to work with Microsoft.
>>I would add that Microsoft should NOT deliver open source tools built in to the Visual Studio platform, because we cannot possibly support those tools. If the community develops a tool, they should support it.
Developers are not asking Microsoft to 'support' open source tools. Developers are asking Microsoft NOT TO close the door for more developers to learn and appreciate these excellent, 'tried and true' tools. Microsoft doesn't have to 'support' NUnit and NAnt. We just wish Microsoft just doesn't 'try to compete' with these tools. Microsoft has every right to compete with these tools. Just as we have the right to be upset that Microsoft's tools are actually not compatible, or even worse than the commonly supported practices/tools.
WOW... lots of responses. I should check my blog more than once a day, I guess!
Thanks for the head's up on the Visual Studio Express thing. So it looks like the point is that Microsoft made an IDE that we sell, and a stripped down IDE that we give away. And we don't want people adding value to the stripped down one.
I do not agree with the business decision to restrict the product in this way. Says nothing about the legal position. I'm not a lawyer. But from a business standpoint, we're not coming out looking all that good.
Sorry I wasn't aware of it.
@James - I understand that the TD.NET dust up is leaving a bad taste in some mouths. There are various editions of VS.NET available at different price points. There is a huge market of add-ons for VS.NET and lots of incentive to build those add-ons (even open-source add-ons) in order to reach the large number of developers who use .NET.
VS.NET is quite extensible, and in fact, Microsoft recently announced how they are making extensibility even easier in the upcoming version: Visual Studio 2008 with the new "Shell" feature.
Express is the free hobbyist edition of VS.NET and currently, add-ons are not supported in that version. Hence the issues with TD.NET. I'm not a lawyer, so I won't comment on who's right or wrong in that situation.
Suffice to say, as a lay person, I can understand the negative perceptions it might leave. All I can say is that there are always two sides to any story.
Microsoft needs to listen to the feedback of its community in deciding what features to make available in VS.NET. And lately, there's been plenty of it!
Thanks for responding. No apology for not knowing about these things. MS is huge after all. I found the following June 7 article about MS licensing about Windows Desktop licensing today by accident. http://blogs.zdnet.com/Bott/?p=250 I suppose I should read the EULA for the VS products to see how onerous they are.
Here's a quote:
"When 44% of your customers believe that they’ve legitimately bought and paid for something and you think they still owe you more money, you have a big problem."
The above is the reason why at my previous employer (2001) we were using Linux for all of the backend infrastructure except where apps required Windows NT.
I find the thread unfortunate. I believe in community-contributed software and I know a lot of folks in the company who do as well.
That said, if a company makes a product, they have the RIGHT to control what is done with it. If the open source community makes a product, the open source community has the RIGHT to control what is done with it. It is called intellectual PROPERTY for a reason.
I cannot and will not comment on the merits of the legal case. I think the BUSINESS of going after open source guys is bad business. There are better ways. We could have resolved this by offering a $50,000 cash bonus for turning off the ability to install the code on VSExpress.
I'll bet the negative publicity alone is worth more than that.
@Sam - I get your point, I just don't agree with it 100%. Suggesting that it is the tools that create non-expert developers is an extreme statement. There will always be developers with varying skill sets making careers as developers. The majority of folks are not going to be super experts regardless of what tools they use. If you give a novice developer tools on any platform, you're likely to get novice results. That's just a fact of life.
Does Microsoft make tools that make it easy for a novice developer to productively solve business problems? Absolutely! Those tools and their success have made the Microsoft platform one of the most popular choices for building business applications. I don't think that acknowledging Microsoft caters to folks who may not be super experts is a corporate cop out. It's acknowledging the reality that has made Visual Studio a success.
Now, I will concede that there have been hits and misses with features in the tools. While the intent with all of these tools has been to reduce complexity for developers, you are correct that sometimes 'bad' behavior has been encouraged. (The SqlDataSource control in ASP.NET 2.0 comes to mind personally!) That said, I don't agree that the majority of tools have been "dumbed down" to the detriment of the expert developer. I think many would agree that Visual Studio gives expert developers the power to do what they need to do to.
As the technology and development practices evolve, there will always be the need for better tools to support them. Given the long release cycles of VS, it will usually be the community developed tools that rise to fill the gap. And that's a good thing. Microsoft may not always get it right on their first stab (MS Test), but that's what vNexts are for. Unfortunately, because of those release cycles, it just takes time. In the interim, I encourage developers to explore the community based tools and use whatever tool gets the job done the best for them.
"That said, if a company makes a product, they have the RIGHT to control what is done with it. If the open source community makes a product, the open source community has the RIGHT to control what is done with it. It is called intellectual PROPERTY for a reason."
I'm not disagreeing with all of this statment. The company or person that developed the software/code owns it. I wholeheartedly endorse that idea. I believe that copyright is good. It protects those that do opensource as well.
I will disagree with the "makes a product" portion. As an example if I pay cash for a car, the automaker does not get to tell what I can or can't do with it. The blender maker can't force me not to make mixed drinks after I've purchased it.
All that you're getting at purchase for closed source software is a license to use it and possibly the storage materials that is included with the physical package in a retail location. For me, the real turn pff has been the vendor lockin and not knowing where you'll stand with the next release. (Okay, in this release you'll not be able run this version of the product in a virtual machine. Only 5 other computers can access this version of the software. This release will let you play your own music, but you can't play any music that you download without the proper digital rights label......)
Here's a list of licenses, but it doesn't appear to be complete. http://www.microsoft.com/about/legal/useterms/