[clug] Mono in Linux
Paul Wayper
paulway at mabula.net
Tue Jun 2 10:33:53 GMT 2009
On 02/06/09 17:48, Chris Smart wrote:
> 2009/6/2 Francis Markham<fmarkham at gmail.com>:
>> The problem with that argument is C# is not a proprietary programming
>> language. C# is an ECMA-standard. .NET is a proprietary
>> implementation of that standard, Mono is an open source
>> implementation.
>
> Mono might include an implementation of C# and CLI standards, but it
> is more than just that. There are also additional components in Mono
> which are not part of the standards, such as Winforms and ASP.NET,
> etc.
>
> Look at the Mono front page, it says:
> "Mono is a cross platform, open source .NET development framework."
>
> Not:
> "Mono is a cross platform, open source implementation of C# and CLI standards."
I have an objection to Mono which I don't think has been covered by this
discussion. It's not to do with patents.
Observe the Microsoft "Embrace - Extend - Extinguish" philosophy. Think of
what this would mean with the .NET platform. Already we've seen three major
versions, and according to Joel Spolsky
(http://www.joelonsoftware.com/articles/APIWar.html, written back in 2004)
Microsoft has continually changed the .NET framework API without keeping
backward compatibility. Every time they do this all the other software
developers who are trying to use the .NET framework have to go back and fix
the sudden influx of bugs in their programs. Last time this happened this
gave Microsoft a six-month head start on all development - because you can bet
that the internal briefings as to how .NET works and what API calls to avoid
and prefer are going around well before .NET X+1 hits the shelves.
Microsoft has shown that it's quite happy to bastardise any number of
standards - including its own, such as OOXML which it has already announced it
has no intention of following if it doesn't suit it. It would take little
effort on their part to focus change on the bits of Mono that are hard to get
right and would cause bugs in subtle ways. It doesn't even need to target
Mono - it just keeps on adding new features and changing old ones, keeping all
those developers trying to keep Mono compatible across the board jogging
around until they give up out of exhaustion. I know which group will win that
particular test of endurance.
The original purpose of Mono was not (as I understand it) to provide a way to
run Windows programs on Linux; it was to provide a way for programmers
familiar with .NET with a way to write applications on Linux with minimal
transition. In this, it currently succeeds admirably - we can keep all those
.NET 1, 1.1, 2.0, 3.0 and 3.5 coders with the existing Mono framework (because
we're up to version 4.0). But if the purpose of Mono is to try to track .NET
into the future, then that to me is a losing game.
To me it comes down to a very simple question: do you trust Microsoft to not
compete with you for your job? (They're competing for your job as an
applications programmer, by the way, if they ever plan to release a product
that is similar to yours in any way.) If you do, then you trust that
Microsoft will always alter .NET in a way that is easy to learn, doesn't break
backward compatibility, requires minimal reworking of your existing code to
use, and gives you features you really need. Unfortunately however, to take
this view in my opinion is also to deny what Microsoft has done in the past,
both with .NET and with everything else they've been involved in.
Have fun,
Paul
More information about the linux
mailing list