Promises, promises

Microsoft made an interesting announcement, they are promising not to sue people for using Mono. Jolly good of them really, it is nice not being sued.

Lets just assume for the moment that this promise means what they say it means (forgetting about the partial implementations exclusion and the fact that the promise needed to be made in the first place) and it makes Mono totally safe to use now, even in countries with broken patent laws. I still won’t be using Mono. Mono is a useful tool for solving the problem “how on earth am I going to run all this .Net code I wrote when I switch to Linux?” I for one don’t have that problem, but for those that do, Mono is the tool for the job.

The reason I won’t be using Mono is that the .Net framework is already embraced by Microsoft, it is already extended by Microsoft. It was from the beginning and will probably always remain so. Mono is playing catch up and people want to be using the leader. This goes for Moonlight and Silverlight too. Silverlight 2 came out, some misguided websites moved to it, Moonlight 2 is in progress, but following. The only glimmer of hope for Mono as something that is more than a specific problem solving tool is GTK#. In this, the Free software community is taking the upper hand by extending Mono, in ways that Microsoft won’t follow. Maybe if .Net/GTK# applications become the norm on Windows this would be a good thing overall. Personally I will stick to Python/GTK on Ubuntu for my fairly limited desktop app programming requirements.

Tags: , , ,

6 Comments

  • Jadd says:

    By that logic (it’s always catching up so we shouldn’t be using it), why should we use GNU/Linux on the desktop?

  • Alan Bell says:

    Firstly I don’t think Linux on the desktop is following anything. It is ahead of other operating systems in many areas and importantly there is the freedom to innovate (a Microsoft term as I recall) in any direction. It is what it is and it is it’s own thing. As I see it Mono is more like Wine. It is an implementation of a specification defined by someone else. There is little point in adding innovative new function calls to Wine because if they are not in the Windows API they won’t get used. Now this doesn’t mean Wine (or Mono) are not useful tools. They just are not platforms that are free to grow because their functionality is defined by what someone else does.

    • Alan Lord says:

      “There is little point in adding innovative new function calls…”

      Also, the “promise” only covers complete implementations of the specification. Not anything outside of that. And as Glyn Moody has just noted from their FAQ:

      “Q: Does this CP apply to all versions of the specification, including future revisions?

      A: The Community Promise applies to all existing versions of the specifications designated on the public list posted at /interop/cp/, unless otherwise noted with respect to a particular specification.

      That’s a no then.

      • Alan Bell says:

        I think the complete/not complete loophole isn’t worth worrying about, they would be dragged through hot coals if they tried to use that one (plus if there were a lack of completeness anywhere it would be fixed shortly after being pointed out). The future versions is the kicker. So Microsoft will sit and write a future version, implement it, then pass it to the standards committee for rubber stamping. Then they wait. Then when and if they feel like it they promise not to sue for that version and then the Mono developers can start. Of course I may be suffering from a lack of trust and optimism here.

  • [...] promises,” calls them Alan Lord. They are not legally binding. The reason I won’t be using Mono is that the .Net framework is [...]

  • [...] of it is surely to do with Microsoft’s Community Promise made back in July 2009, but I doubt that is really the only reason for the attenuation. I do wonder [...]

Leave a Reply

XHTML: You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>