This /. article has responses from Microsoft Linux Lab manager Bill Hilf. I responded to this post from a Microsoft employee. My response follows.
The basic thing that Napolean, the /. poster, said, was that Microsoft doesn’t force users to use its products, but does believe its products are better, and therefore plugs them every step of the way. He writes,
Anyway, the customer is the priority. If I’m working with someone who has standardized on MySQL but wants to use ASP.NET to serve web apps, then I’m going to help that person.
Am I going to plug SQL Server along the way? Yeah, sure, just as an OSS consultant would probably push for PHP instead of ASP.NET. That’s normal – it’s competition. Even if you’re like me and have an appreciation for both sides, there’s a bias toward one of those sides. My bias is toward MS.
I appreciate your comments, Napolean. I think what most people complain about with Microsoft is that they rarely make it easy to use another product (F/OSS or otherwise) with their own products. The example you stated (MySQL with ASP.NET) is not due to any achievement of Microsoft. MySQL is an database system that was designed by its creators to run on Windows, Linux, Mac OS X, and a host of platforms. But Microsoft SQL server only runs on Windows, and it’s that way with most of MS’s products.
PHP runs on any platform. But Microsoft’s ASP/ASP.NET only runs on Windows/IIS. .NET is supposed to be a cross-platform framework, but so far the only ones working on making it cross-platform are a bunch of open source developers at the Mono project, who don’t even have assurance from Microsoft that their efforts won’t be squashed when MS sees a competetive threat. Meanwhile, Java and Python, two non-Microsoft languages and runtimes, run on everything under the sun, including Windows.
I remember six months ago when my brother was starting to manage his small web development business out of our house, I was tasked to setup a system to manage contacts in some sort of sane, unified way. One option I saw available was what Microsoft calls their Business Solutions CRM, or Customer Relationship Manager. I tried the online demo, and I liked what I saw. So I started to price it out.
Well, MS CRM required Microsoft Outlook 2003, which we had, but it also required a web server, ASP.NET support, a database server, and an e-mail server.
Now, with any other product of its kind on the net, the web server, DB server, and e-mail server are just “options,” because these have become in today’s software ecosystem components with very clearly-defined roles, on top of which a lot of components can be layered due to the standards at each of these product boundaries. This is great because it allows you to build up complex systems by choosing the components that make sense for your needs. If you want to do Apache, MySQL and Postfix/Courier-IMAP or if you want to use Savant, PostgresSQL, and Argosoft Mail Server, the choice is really up to you.
But MS’s CRM product wasn’t like that at all. It required Windows Server 2003 (so much so that it wouldn’t install unless I had it installed, with a MsgBox that said, “Sorry, you must have Windows Server 2003 to install this product”). It required IIS with ASP.NET support. It required MS Exchange. And it required MS SQL Server 2000.
Suddenly, CRM’s cost (which was already pretty high) went through the roof for me and my brother. Sad, considering that I would have been able to afford CRM if it had been built atop standards, rather than every proprietary MS solution under the sun.
One could go on and on with examples of Microsoft’s general “lock-in” strategies.
MS Office file formats weren’t open until recently (and, not having done the research, I’m not sure if they really will be fully open when the new XML format takes hold), and the only way you could view those files on Linux was by reverse engineering the specification (as projects like AbiWord tried to do).
You talk about hooking up MS products with MySQL as if Microsoft is the enabler here. But it’s really MySQL who is the enabler. And it’s that way with basically every open source project that “can be used” with MS products. Microsoft isn’t porting anything to their platform that could possibly compete with something they have coded themselves. Major desktop applications that originate in the Linux/OSS world get ported to Windows due to the smart design of the underlying toolkits (GTK+ applications are ported to Windows all the time; I run Abiword, Workrave, GAIM and The Gimp under Windows). That’s because OSS developers really just want to give the users freedom to use their products on whatever platforms they want. If OSS developers thought and acted the way Microsoft developers do, Apache would only run on Linux, and so would PHP, Perl, Python, as well as other useful products.
And what’s more, Microsoft has definitely made it less than easy to use MS technologies on any platform but Windows, for obvious reasons (selling more copies of Windows server and workstations).
That’s why all us technologists with a head on our shoulders have known for years that MS is anti-competetive and monopolistic, almost by definition. They’re an OS maker, which means the only economically sane thing to do is make it difficult for users to have an easy migration path to another OS. If the OS division of Microsoft were on its own (in its own company), the other divisions would have no incentive to only allow products to run on Windows, and would instead have an incentive to make products run on the widest variety of systems and platforms, so that their customer base could grow. This, in turn, would actually lead to more innovation, since otherwise impossible combinations of OSS/proprietary Microsoft technologies would be possible.
Since Microsoft hasn’t been declared a monopoly here in the States, we’re stuck with the anti-competetive behavior. It’s not Microsoft’s fault; they would be unfair to their shareholders if they didn’t do everything possible to keep their own company profitable. But Microsoft, at this point, due to its position as the major operating systems vendor in the world and the major IP-holder of many of the software development frameworks used in corporations, will inevitably continue to lock its customers into its solutions. That means the “little guys” in the OSS world aren’t given as fair a shot as they should, especially considering the oftentimes innovative stuff churned out of the F/OSS community.
“Would we prefer that you exclusively use our products? Of course.”
It’s not a matter of preference. It’s actually Microsoft’s goal. Microsoft doesn’t just prefer that clients use all-Microsoft solutions. Microsoft actively tries to attain a position where it becomes difficult to do anything else. That’s business. And that’s called anti-competetive behavior. It’s not Microsoft’s fault, it’s just how Microsoft is obliged to act in our corporate system, given the economic circumstances it finds itself in.
Microsoft shouldn’t be destroyed, it just needs to be broken up, for its own good, and for ours.
You do realize we’re installing CRM on SBS 2003 …which can be purchased pretty cheaply that includes SQL 2000… …it’s not the barrier to entry as you think…
Thanks for the comment Susan. You’re right, I should have pointed that out (truthfully I had forgotten abot SBS, but at that point we already had a Win2K Standard Server licensed and installed).
Unfortunately, the fact that SBS is available cheaply still doesn’t change my point. The basic problem is that CRM is, in reality, just a web application. Most web applications don’t make such specific demands as to what platform, DB server and mail server they require. But MS’s CRM does make these demands, and, surprise surprise, all their demands involve MS products.
I understand it makes sense for a company to eat its own dog food and build its products atop products it has developed in house. But for something that is essentially just a web application, doesn’t it strike you as a bit absurd?
(For those who say MS CRM is not “just a web application” only because it includes an Exchange connector, please remember that Exchange connector is just a mail proxy server that tracks who receives what emails, and could easily work with any mail server.)
I think what I’m more angry about is .NET, anyway, and the way it lured developers away from existing cross-platform technologies (like Java or Python), which were working and actually had cross-platform implementations. I’ll put it this way: hell will freeze over before MS creates a complete .NET implementation for OS X or Linux.