In my continuing attempt to listen to pro-mono points and address them, we have a question to consider!

In which zekopeko makes a proposition

In a comment to my Totally Awesome Rocks and Excellent article “Ubuntu Free Speech Zones”, zekopeko makes a very interesting proposition:

MS position certainly is “entrenched” on the market, but as we can see it’s slowly but surely being eaten by FLOSS solutions. And in part thanks to Mono, whether you like it or not.

This is a powerful proposition, and deserves serious consideration.

In which a zealot who is not part of the real community zealously expresses his zeoltry with zeal

BEWARE! Crazy zealot beliefs coming up. This is what I think when I’m not eating babies and trying to destroy Freedom single-handedly:

  1. Microsoft has a much larger influence than FLOSS on the computing industry.
  2. Microsoft influence needs to be reduced.
  3. Microsoft influence is likely to decrease over time, for many reasons.

I know that is some crazy juice negative hateful talk, and I can only hope you are seated for the next part, because I’m really going to let the freak flag fly:

  1. FLOSS has a much smaller influence than Microsoft on the computing industry.
  2. FLOSS influence needs to be increased.
  3. FLOSS influence is likely to increase over time, for many reasons.

I know that is some insane stuff there, and I probably deserve to be roundly condemned for such “faux community” ideals. Why it’s almost if I had …shudder… principles!  Here are some logical extensions of my belief:

  1. I am generally opposed to those things that help Microsoft.
  2. I am generally supportive of those things that help FLOSS.
  3. I am generally supportive of those things that hurt Microsoft.
  4. I am generally opposed to those things that hurt FLOSS.

Well, now that you have seen how irrational I am, I can only hope you will read on.

In which a few facts are established

  1. .NET is a key Microsoft technology / initiative / mouthwash / salad topping.
  2. Microsoft discussed standardization before doing it.
  3. We can know some, but not all, of Microsoft’s motives.

From these facts I think we can derive some logical conclusions:

  1. Microsoft is aware that .NET is a valuable technology for Microsoft.
  2. Microsoft did not standardize portions of .NET for no rational reason whatsoever.

Am I going to fast for anyone? You in the back with the gnome cap and the drool, pooping in your hand and flinging it at that poster of Richard Stallman, still with us?

In which some insight is given

Let us look directly at what some people in the Microsoft camp internally thought about the release of .NET to the Unwashed Masses:

Bill Gates (2001):

We have to spend a lot of money to make sure the openness of C# is well understood and that it is accepted at a level that allows our innovations to have traction. [...] The strength of this platform and the innovation around it is the key element in preventing commodization by Linux, our installed base and Network Appliance vendors.

It is important to understand when Bill Gates says “well understood” he means “thought of the way Microsoft wants”. He uses this exact euphemism frequently. He also likes to say “innovation” when he means “proprietary closed extensions”.

Charles Fitzgerald, Microsoft GM (2001):

[Working on cross-platform .NET CLR] is terrifying. A x-plat strategy is not a winning strategy.

[...]

[The .NET CLR cross-platform strategy is] potentially worse than that – we both validate x-platform and then demonstrate conclusively we not prepared to deliver on it.

Srivats Srinivasan, Microsoft PM (2001):

We understand the need for DMD to proliferate the format … however, if it is at the expense of our embedded OSs, I fear that it can hurt us in the long run. Especially when you consider that part of enabling the .NET vision is to embed our OSs in devices of all forms going forward – hence our apprehension.

Graham Clark, Microsoft GM (2001):

I would like to understand the x-plat strategy, because I don’t get it and nor does anyone in the field. It doesn’t seem to make ANY sense.

By putting CLI into ECMA, we are inviting x-plat implementations. With Rotor we are even doing some work on Linux and Solaris.

For enterprise customers/partners, wanting to build enterprise apps, all this is meaningless as there is no mechanism to provide transaction (and other core services) support on these non-Windows implementations. J2EE clearly has a mechanism, albeit faulty, to enable these x-plat services.

I can think of four explanations for our current strategy (as I and the field see it):

1. There is something happening to provide these applications services x-platform that I don’t understand (based on Joe [Long]’s proposition, I doubt it is this).

2. We think that our customers/partners/analysts are stupid and that they won’t see our approach as insufficient for real enterprise apps.

3. We are going to evangelize to IBM and others to plug their own transaction services under CLI on Linux (without specifying how). Joe’s proposal is to tell them how.

4. We haven’t thought thru a strategy that will make sense after anything more than a superficial inspection – if so why are we doing all the Rotor work?

If the answer is (2) then we have learned nothing from the past 5 years and J2EE will continue to kick our butts. I would rather see Microsoft say x-plat is BS rather than make a half step (Rotor, CLI) that will confuse everyone and lead to continued distrust of our motives for doing it.

Dan Neault, Microsoft GM (2005):

Maintaining Gap vs. Linux

1. Keep network effect with Applications

  • Migrate applications to .NET framework
    • BUT keep framework proprietary to Windows
    • Patents required to implement clone

[...]

Maintaining Gap vs. Linux

  • The .NET framework contains the latest developer platform for the future, and it must be licensed like Windows. Subsets have gone about as far as they should go in the standards bodies, but we need a compact subset for phones and TVs. It was noted that we have to be careful because once the horses are out, they are out forever. At the right royalty, we can have discussions around technology beyond this.

[...]

  • The plan in that images, inks, and still formats will not go to Linux like some of our digital media formats will. This would mean that if someone downloads images, it might violate patents. There was a discussion of a new format where as one takes pictures, the pixel resolution compresses.

[...]

[...]Strategy Axioms
Technical Axioms

  • Invest in formats/protocols (ensure we are not blocked; gather IP advantage if possible)

Eric Rudder, Senior VP (2005)

As many of you may know, we’ve actually kind of broadened the product portfolio of Visual Studio, targeting all the way from the low end with students and hobbyists, kind of competitive in that Linux space, making sure that every developer has a copy of .NET and is trained in writing .NET solutions. We introduced the low-end version we call Visual Studio Express, so we have Visual C# Express, Visual Basic Express, and Web Developer Express. These products are still in their beta phases, but we actually had more than a million downloads of Visual Studio, which is quite healthy for a developer tool. I think it will really help us in our competition with open source.

These are all court exhibits or public statements made not by janitors or interns or mouthpieces hired to spin doctor Microsoft’s image; these are decision makers. They are Microsoft, and this is discussion that went on for years surrounding the relase of parts of .NET for standardization.

No matter what level of supervillian-like nefariousness you care to read into such quotes, you will surely agree that the decision to standardize parts of .NET was throughly considered by Microsoft before doing it.

In which a point is made

Why exactly do you think Microsoft decided to standardize parts of .NET?

There can be no doubt they discussed the ramifications of such an action. Do you think that Microsoft would act against its own best interests?

Then it is reasonable to assume that Microsoft thought standardizing parts of .NET was in Microsoft’s best interests.

We should be able to stop there, but I know my Gentle Readers clamor for ever more elucidation. Plus, I’m not leaving until the poop-flinger in the back does.

Alright, one may say, Microsoft released parts of .NET because it was in thier best interests? So what! Mono still helps Linux and Open Source development! So neener neener to you, Mr. Mono-Hater!

Fine, Mono may indeed help FLOSS to some degree. The question is, does it help Microsoft more than it helps Linux? This is an important question, because if you help your competition more than yourself, you are in effect harming yourself.

What is Mono doing?

We know Mono must help Microsoft. Microsoft would not have allowed for the ECMA standardization if they did not come to the same conclusion.

Here are some ways Mono helps Microsoft:

  • Spreads Microsoft standards
  • Spreads Microsoft mindshare
  • Increases FLOSS dependency on Microsoft
  • Good PR value for Microsoft
  • Mono apologists are often obliged to defend Microsoft
  • Mono evangelists are often obliged to be Microsoft evangelists
  • Divides, distracts and delays the community
  • Makes it easier for FLOSS developers to develop on Windows
  • Provides some nice FLOSS applications for Windows
  • Provides developer tools
  • Helps in Microsoft’s fight against Flash
  • Helps in Microsoft’s fight against Java
  • Decreases effort in general for non-Microsoft tools

Think on that. When a Mono developer stands on stage with a huge slide that says:

“Moonlight is an Open Source implementation of Microsoft’s Silverlight technology … and it is awesome”

They are evangelizing Microsoft. They are promoting Microsoft. They are increasing Microsoft’s mindshare. That is good PR for Microsoft. Microsoft actually pays some people money to do that! That is actually a career for some people!

Now, here are some ways Mono helps Linux that are unique to Linux (i.e. not covered in the above list):

  • Provides partial compatibility with some Microsoft offerings

There are almost no unique benefits to Linux from Mono. Microsoft enjoys almost every benefit that Linux does from the Mono project, as well as some unique ones. I think it is quite clear that Mono benefits Microsoft more than Linux.

A difficult question

Consider this: Say that Microsoft released .NET for Linux in the same manner they did for Windows. Do you think that it would enjoy the same adoption, enthusiasm and support that Mono enjoys?

If you answer is not “Yes. Absolutely”, then you are acknowledging that ideals and ethics do matter. Quit pretending like people that have them are some sort of embarrassment holding Linux back.

That is the problem with a purely “pragmatic” approach. That is the problem with preaching that “users just want something that works”.

An easier question

And now, I think we can return to zekopeko’s original thesis: Microsoft’s position is slowly being eaten away in part by Mono.

I reject that. I do think that Microsoft’s position is slowly being eaten away; but I do not think Mono is playing a significant role there. I think that Mono helps Microsoft at least as much, if not more than it helps FLOSS. So, it can not “eat away” at Microsoft’s position, because it is in fact bolstering Microsoft’s position.

So I ask you, should the community support something that harms it?