Why Can't Microsoft Ship Open Source Software?

I’m sure the biggest issue for MS WRT open source is the ‘not invented here’ syndrome. Lawyers, APIs, etc are all secondary considerations to a mind-set that says we’re the only ones that matter, everyone else must use our software, we don’t use other peoples. Several other departments (including the US office in my company) have this same mindset.

The ironic thing is now that MS is partly embracing .NET, that all that source code is freely available for view - just drop the dlls on ildasm (or get a more friendly disassembler). It may not be free to use but its free to look at … and there are lots of companies that would happily reuse such code regardless of the legalities.

Microsoft is a software company that writes code in order to sell.

Whilst I’m all for open source projects to make all our lives a little easier, producing them is not the goal of a software company.

The goal should be to make money for the shareholders, otherwise, what’s the point in being in business?

Microsoft is not a charity or a public service, let them build what they want and sell it.

As for the carbonated drinks analogy, Coca Cola make the drinks and sell them, they don’t tell everyone the recipe and let them add their own ingredients.

Robin

Just as a followup to my earlier about how I would have gone about putting up a software development repository I wanted to share with you folks the steps for obtaining the software.

(I run debian testing btw)

Step 1: Fire up konqueror, because it’s my chainsaw application of choice (web browser, ftp client, man browser, info browser, file manager, etc.)

Step 2: In the url, because I don’t know the name of the package I’m looking for type: apt:/search?forge return

Step 3: Wait a few second while the 20,000+ software packages are scanned (Debian is a leviathan among Linux distros for sheer volume of software packaged and ready to go).

Step 4: Look down the list of hits and follow the one called gforge (Here’s how the link for gforge reads:
gforge collaborative development tool - meta-package)

Step 5) Read the description for gforge:
collaborative development tool - meta-package
GForge provides many tools to aid collaboration in a development project, such as bug-tracking, task management, mailing-lists, SCM repository, forums, support request helper, web/FTP hosting, release management, etc. All these services are integrated into one web site and managed through a web interface.
This meta-package installs a complete GForge site.

Step 6) If I was going to install it, I could do either
a) Open a terminal, make myself root, type apt-get install gforge or
b) Run synaptic, the graphical package interface, search for package name gforge, check the install box, press the Apply buton

Wait a few minutes for gforge and all the dependencies to be installed and configured.

Step 7) ???
Step 8) Profit!!!

BTW, for those interested gforge’s immediate dependencies and descriptions are:
gforge-common collaborative development tool - shared files
gforge-db-postgresql collaborative development tool - database (using PostgreSQL)
gforge-dns-bind9 collaborative development tool - DNS management (using Bind9)
gforge-ftp-proftpd collaborative development tool - FTP management (using ProFTPd)
gforge-lists-mailman collaborative development tool - mailing-lists (using Mailman)
gforge-mta-courier collaborative development tool - mail tools (using Courier)
gforge-mta-exim4 collaborative development tool - mail tools (using Exim 4)
gforge-mta-postfix collaborative development tool - mail tools (using Postfix)
gforge-plugin-mediawiki Mediawiki plugin for GForge
gforge-plugin-scmcvs collaborative development tool - CVS plugin
gforge-plugin-scmsvn collaborative development tool - Subversion plugin
gforge-plugins-extra collaborative development tool - extra plugins
gforge-shell-postgresql collaborative development tool - shell accounts (using PostgreSQL)
gforge-web-apache transition package to gforge-web-apache2
gforge-web-apache2 collaborative development tool - web part (using Apache)

After doing that research (about 2 minutes), it simply stuns me again that Microsoft chose to waste its resources on a dead issue. I guess the problem I have is that I keep forgetting that Microsoft doesn’t just provide an operating system for others to develop on, but also software which competes with all other developers on its operating system.

I guess they couldn’t make use of a solution that isn’t one of theirs no matter how easy or how good it is because then they would lose face?

This is not the only time they are reinventing the wheel. Just take a look at the Enterprise library’s logging application block. After working with it I came to the simple conclusion to stick with Log4Net.

I’m sure the biggest issue for MS WRT open source is the ‘not invented here’ syndrome. Lawyers, APIs, etc are all secondary considerations to a mind-set that says we’re the only ones that matter, everyone else must use our software, we don’t use other peoples. Several other departments (including the US office in my company) have this same mindset.

The ironic thing is now that MS is partly embracing .NET, that all that source code is freely available for view - just drop the dlls on ildasm (or get a more friendly disassembler). It may not be free to use but its free to look at … and there are lots of companies that would happily reuse such code regardless of the legalities.

Subversion is such a great tool. Have never used TFC, but my interest is peaked now. A book I can never recommend enough is the Subversion book written by the tool’s author(s). Not only is it obviously useful - but it’s easy to read, and fun.

Nice post.

Wix is open source and released by Microsoft…Hey Rob Mensching. if you do read this, I found a quite serious bug in Wix…it is regarding CreateFolder/ and Permission user…/…

Dr Pepper is a bad example.
We’re talking about software not carbonated sugar water. The former is much easier to fuck up and as we all know software sucks. Surely our customers deserve our best efforts and we should be working towards their needs instead of needlessly duplicating our efforts and duplicating the technologies we need to learn.

I have one answer to most of the people who complain that Microsoft cannot use opensource - IBM

They are a software company (amoungst other things)
They write opensource, contribute vastly to OS projects
They use opensource and distribute it,promote it, advocate it’s use
They are a larger legal target than Microsoft
I don’t see them going broke anytime soon …?

That’s why you Americans are so f-fat! Cherry-Chocolate-flavoured cola! I bet you also deep fry children and eat them with shitloads of ketchup

All version control systems suck! End of discussion.

The idea of version control is great, but all existing systems suck to some amount. Some suck more, some suck less, but they all do suck. Since they all suck, it plays little role which of the sucking systems you are using, since it’s pointless to argue about which one sucks more in which aspect.

There are systems that tried to get out of the sucking state by leaving the path that CVS once created (and SVN took over). E.g. darcs, but darcs is written in Haskell and even getting it compiled is so much PITA, it’s reason enough to dump it.

A system that does not suck too much is monotone. It’s written in C++. You can argue if that is a good choice, but it’s crossplatform, builds on all major platforms and the author himself states I know that C++ sucks, but if you use it wisely and carefully and make sure your code is really clean, it’s a usable OO language and working with it has many benefits over using plain C code and the source code looks pretty good IMHO.

Microsoft has shipped open source before.

In the resource kit of NT, there were a number of GNU things, with source on the CD, perl or REXX was one of them.

there were GNU utilities, I forget with one. There was source code with Microsoft Services For Unix as well.

the cutting edge will always be outside of Microsoft or any other corporation for that matter.

Not true, Apple pioneered things like GPU powered desktop compositing, new UI concepts such as Expos.
The open source world had even longer to come up with these things, and it has taken them 5 years to even begin to catch up by purely ripping off.

Remove the or any other corporation for that matter and yes you are correct

It’s all about integration and vendor lock-in:

  • The whole .Net eco-system (which is mostly great in my experience) is about this:
  • Why provide first class ASP.Net support if you could just support Apache/PHP?
  • Why create a new language (C#) if there are already tons of languages around?
  • Why create WinForms if there is already plain old WinApi-Window-Stuff around?

The whole TFS is just the next evolution of this. Instead of letting developers choose their tools they just provide them bundled and most people probably don’t even seek out for alternatives.

Why don’t IronPython and IronRuby ship with Visual Studio? Why
can’t I select, File, New, IronPython Project and have a
first class integrated experience, just like choosing VB.NET or C#?

I was thinking this was because these are not yet finished when the last visual studio was set to release.

Jeff, I think you’re missing the point a bit. His rant didn’t seem to be so much about the differences between SVN and TFS as it was a segue into a critique of the industry as a whole. Is he right about the SVN/TFS issue? Perhaps, perhaps not, but that shouldn’t the thrust of the article.

Engineers love writing/rewriting new code and smart engineers are always keen enough to find reasons to do it. They then use these reasons to convince less tech-savvy suits that it’s the Right Thing To Do™, and they do so at their own peril.

Worries for Microsoft

  1. They’re worried about being responsible for outside code.
  2. They’re afraid that someone will inject malicious code into their product and they won’t notice in time.
  3. They’ll reveal previously unnoticed security holes.
  4. They’re worried about shipping unreliable software (probably not their PRIMARY concern here)
  5. They’re arrogant, and don’t like the idea of depending on outside software.

But, you’ll argue, all software, what about Apple, IBM, or Open Office, or Mozilla has survived these issues.
Microsoft is bigger. Not a little bigger. Apple has what, 10% market share, Unix has 5%, and Microsoft has THE REST. EIGHTY-FIVE Percent.

If I add something malicious to OpenOffice Writer, and it slips through, it’ll affect hundreds, maybe thousands.
If I do the same to Microsoft Word it will affect billions.
That also means that I can be much subtler about my maliciousness. I don’t need to steal $100 from each user, I can just steal a dime, and I’m rich beyond my wildest dreams.
And at the same time, due to Microsoft’s unavoidable backwards compatibility issues, their code can be fiendishly complex. For reference, see Joel Spolsky’s article on the freakin’ WORD file formats. http://www.joelonsoftware.com/items/2008/02/19.html
Now imagine what they have to deal with at the lower levels. More complexity = more vulnerability.

Basically the sheer ubiquitousness and complexity of Microsoft code means that adding devious code to their work is more valuable to your time. And as they’ll never find l33thaxx0rsb0tt, the asshole who added viral code to VS2010, the lawsuits will just be addressed to Microsoft.
And, as a final cherry on the top, there are entire legions of idiot savants who have dedicated their lives to screwing with Microsoft. The fact that screwing up Microsoft affects everyone won’t occur to them.

Is this a decent justification for not including OS software as part of the package? Almost certainly not. But if your job, the jobs, and a sizeable chunk of the US economy rested on that almost, either you’d tend to be conservative, or you’re utterly irresponsible.

The reason that MS will not ship IronRuby as part of Visual Studio is that they accept code contributions. If someone decided to sue MS for patent infringement in this code they would have to modify the Visual Studio binaries etc etc. This is the reason IronRuby will be a separate download

I was thinking this was because these are not yet finished when the last visual studio was set to release.

Maybe that’s another problem – Open Source software is never truly done, is it?

et tu, Jeff, et tu?

For a minute, I thought I was reading slashdot.org when I saw this Microsoft copies everything we open sourcers do rant. Also, like /., this opened the floodgates of anti-Microsoft me too-ers.

The reality is pretty much what Robin Day states. I don’t see why everyone gets on the Microsoft are a bunch of bullies, anti-this, anti-that bandwagon.

Microsoft generally makes products that work. Sometimes those products work better than OS equivalents, sometimes worse. It’s the same as open source projects, some of those work better than other software, some don’t.

What about all the Microsoft software that has been copied by open source projects? I don’t see a lot of people bitchin’ about that.