LWN.net Logo

Mono 2.0 lets .Net apps run on Linux (InfoWorld)

InfoWorld takes a look at Mono 2.0, which is being released today. Mono is a project sponsored by Novell to implement Microsoft's .NET framework for Linux and Mac OS X. "He estimated that 45 percent of applications will run on Mono 2.0 out of the box while 18 percent will require developers to spend a couple of weeks to make some changes due to operating system differences. About 20 percent will require significant work, taking about three to six months, if the application is tightly integrated with Windows, de Icaza said."
(Log in to post comments)

Mono 2.0 lets .Net apps run on Linux (InfoWorld)

Posted Oct 6, 2008 16:14 UTC (Mon) by syntropy (guest, #54409) [Link]

This...is disturbing for many reasons. I don't want Mono, and any self respecting programmer wouldn't want it either. My thoughts on Mono and it's introduction to Linux are here.

Mono 2.0 lets .Net apps run on Linux (InfoWorld)

Posted Oct 6, 2008 16:53 UTC (Mon) by kirkengaard (subscriber, #15022) [Link]

For the love. It's a C# implementation. MdI talks about it as a migration path because Microsoft's interest in C# is geared toward top-to-bottom program implementation -- this makes "Windows" programs written in good C# simply C# programs. This is like complaining about Java implementations because of Sun's interest in Solaris.

Mono is not principally a tool for Windows anything. It is an LGPL-licensed implementation of an ISO-standard programming language, with its own ecosystem of GNU/Linux software. The fact that Microsoft has made .Net into the new VB for Windows "programmers" who just want to be able to write applications that run, is gravy for us. It means we can eat Microsoft's lunch.

Mono 2.0 lets .Net apps run on Linux (InfoWorld)

Posted Oct 6, 2008 17:22 UTC (Mon) by allesfresser (subscriber, #216) [Link]

Ah yes, ISO standards. Wonderful things, aren't they? So reliable as a fair and unbiased process unburdened by political maneuvering and commercial lockin intent. Like OOXML, for example. Oh, that's right, C# and OOXML are from the same company. What a coincidence.

No thanks. I'm not that desperate for a programming language, and as so many people have so aptly observed, an apparent free lunch offer needs to be viewed with a certain amount of self-preserving suspicion, especially when the offer is made by a convicted criminal whose previous offenses were also related to free lunches.

I'll keep supporting languages and environments that really are free, and so hopefully when people wake up and finally kick the Redmond crack habit, they'll have a viable community around to move to.

Mono 2.0 lets .Net apps run on Linux (InfoWorld)

Posted Oct 6, 2008 17:28 UTC (Mon) by salimma (subscriber, #34460) [Link]

FWIW, Microsoft seems to play with the community rather well with .NET -- whether it's because they are still in the "embrace" phase is open to question. They recently relicensed the Managed Extensibility Framework to the open-source MS-PL license: http://tirania.org/blog/archive/2008/Oct-02.html

Not a good example

Posted Oct 6, 2008 20:11 UTC (Mon) by man_ls (subscriber, #15091) [Link]

After complaints from Miguel de Icaza. Eternal vigilance is far from the ideal situation (although more common already than we would probably like).

Not a good example

Posted Oct 7, 2008 9:44 UTC (Tue) by Los__D (subscriber, #15263) [Link]

So, changing the license when a community member complaints, is not playing well with the community? I must have misunderstood something.

Maybe a good example

Posted Oct 7, 2008 20:45 UTC (Tue) by man_ls (subscriber, #15091) [Link]

Okay, maybe the biased reporting of The Register got to me. On a second reading it is not a bad example of playing ball at all. Still, it was not "a community member" but de Icaza, Mono's leader and foremost proponent.

ISO standards

Posted Oct 6, 2008 20:11 UTC (Mon) by kirkengaard (subscriber, #15022) [Link]

Please consider the logical fallacy you're making. Yes, OOXML became an ISO standard through a large amount of misbehavior on Microsoft's part. However, you're using this as a reason to taint a separate standard that was submitted, processed, and accepted normally, well before any of this brouhaha. OOXML and the revelation of the susceptibility of ISO systems to brute-force attack doesn't taint standards that were composed, processed and passed without such brute-force methods. It isn't the ECMA fast-track to ISO process, common to both, that is the problem. OOXML is void because of the brute-force stacking of its ISO committee, the procedural irregularities, and the blatant ignoring of objections. You cannot void C# on the same events, because C# happened differently.

Whatever Microsoft's intent in releasing a .Net specification through ISO, the fact is simply this: C# is an ISO standard language, independent of what Microsoft does with .Net, because it is codified publicly. This is why we advocate for standards. Whatever Microsoft does with .Net is part of C#'s existence as a living language. Whatever Miguel de Icaza's team does with Mono is also part of C#'s existence as a living language. Whatever the dotGNU team does is also part of C#'s existence as a living language. And they can all coexist precisely because *C# is standardized*.

TANSTAAFL. And you will note that I never said anything about *free* lunch in the first place. Mono, as a living C# project, is able to take advantage of what benefits Microsoft's .Net project in ways that would not exist without the C# standard. Nobody is offering a free lunch. Miguel de Icaza and the Mono hackers certainly wouldn't say Mono cost them nothing. And the [L]GPL exacts a toll of its own. Mono is a liberated lunch, because if it weren't for standardization, only Microsoft would be eating.

Microsoft is not offering you C#. They are not offering you Mono. They are offering you .Net tied into their platform, so they profit. Don't eat the poisoned lunch, by all means. But because they are obliged to release the underlying language as a standard, C# exists, governed by its own ISO committee. Mono can offer you a lunch you can eat, without Microsoft profiting.

ISO standards

Posted Oct 6, 2008 22:03 UTC (Mon) by allesfresser (subscriber, #216) [Link]

The two standards are sponsored by the same entity, which has a history of deception, unethical dealings and criminal conduct. So why should I use something that depends on a specification which that entity ultimately controls? How long would ISO C# remain viable if Microsoft decided to change their specification and call it something slightly different, or even just to promote something else as the new flavor of the month? How long do you think a proposal for enhancement to ISO C# would live if it made things even slightly incompatible with Microsoft's business plan?

And again, why not support a truly free language instead?

ISO standards

Posted Oct 6, 2008 23:14 UTC (Mon) by kirkengaard (subscriber, #15022) [Link]

Which is why some people also don't (or didn't) use Java. So don't use it. But don't discount the people that have worked to make it a viable platform, and continue to work to keep it a viable platform. No matter what MS may bruit about on encumbrances, they have not demonstrated any. They don't own Mono. WRT Mono, you can only complain about the difference between MIT/X11 and [L]GPL about its freedom. If C# can be implemented freely, by our own standards of freedom, that is significant. You can't make people not scratch itches. You can't dictate the itches people are allowed to have. And Mono scratches a valuable itch in Free Software.

Don't mistake market forces for freedom. You had as well say Samba isn't free by the same logic. Only, C# has a standardized form. I realize full well that the Mono team is still playing catch-up with .Net as a C# implementation. I know that they're fighting Microsoft for C#. In that respect, it's the same game as Samba, but here the terrain is enhanced in Mono's favor in a way that it isn't for SMB/CIFS compatibility. Mono has leverage in this fight that Samba has lacked for the majority of its existence.

And you would do well to remember the ways in which this is not like trying to properly handle Office 97/2000/XP formats. Word processors, to be live projects at all, need to correctly interpret a shifting, unpublished target. The standard is always, "Does Word read my document? Can I read Word's documents?" Do you think that the Gnome components, like Beagle and Banshee, care about Microsoft interoperability?

ISO C# is a live game precisely because someone other than Microsoft cares about it. More, it is leverage to keep MS's pet projects from being able to lock out Linux. The standard may not be everything, I'll give you that, but what it is is a guarantee of leverage on MS's self-interest. And what it has given us goes far beyond Microsoft. Screw Moonlight. So what if we can take MS's proprietary technology and duplicate it in a way that works and is free -- something we never would have taken for granted a decade ago, or even five years ago. Linux programmers have done things using C# that Microsoft has no interest in. It's a tool. And people will use it based on how well it works. And they are using it. Without Microsoft. For their own purposes.

Sit on your high horse about the morality of using a specification that came from Microsoft. You're welcome to it. But you overestimate their influence and the mutability of the spec, and underestimate the free communities. MS is not the only interested party, and C# does not lock users to MS in any way. And if it disappears, we'll all do something else, I'm sure. Look at Hugin, and autopano-sift-C. There's always a way around, and nobody has to be stuck with C# for their projects. Algorithms are still more important than languages.

ISO standards

Posted Oct 6, 2008 23:58 UTC (Mon) by syntropy (guest, #54409) [Link]

I, nor anyone else, criticises the language (C#), but it's implementation in the aforementioned libraries and runtime (Mono), which are inherently required to compile programs using C#.

Yes, a language is just a form of expression.
Yes, C# is a standard.

> So what if we can take MS's proprietary technology and duplicate
> it in a way that works and is free -- something we never would
> have taken for granted a decade ago, or even five years ago.

Your logic is flawed here. Taking "proprietary technology" and "duplicating" it is exactly the problem. Once is is duplicated and used, Microsoft can claim that Mono, and it's derivative projects, infringe on it's "intellectual property" and "stole" from Microsoft.

> Linux programmers have done things using C# that Microsoft
> has no interest in.

Like Banshee Music Player? Or Beagle? Or GNOME's help viewer Yelp? They all depend on Mono.

Yes, there are utter hordes of Windows .NET programmers. Yes, they are eager to "port to Linux". It's the newest fad... ..isn't it?

ISO standards

Posted Oct 7, 2008 1:50 UTC (Tue) by jamesh (subscriber, #1159) [Link]

> Your logic is flawed here. Taking "proprietary technology" and
> "duplicating" it is exactly the problem. Once is is duplicated and
> used, Microsoft can claim that Mono, and it's derivative projects,
> infringe on it's "intellectual property" and "stole" from Microsoft.

Let's be clear. There is no suggestion that Mono has illegally copied code from Microsoft's compiler or runtime. If this was the case, it would be pretty easy for Microsoft to identify from the public version control history. So claims that Mono is a derivative work would seem hard to support.

Now there is definitely overlap in the functional aspects (as you'd expect with two pieces of software implementing the same specification), but this area is generally covered by software patents. Microsoft agreed to license the patents necessary to implement the ECMA specs royalty free, so the core of Mono should be safe (reneging on such an agreement is difficult leagally -- see promissory estoppal).

ISO standards

Posted Oct 7, 2008 7:50 UTC (Tue) by syntropy (guest, #54409) [Link]

They haven't copied anything yet, no.

Got any conclusions as to why Microsoft would 'allow' Mono, and then Release their own .NET implementation an a "you can look but not touch" license?

ISO standards

Posted Oct 8, 2008 2:32 UTC (Wed) by jamesh (subscriber, #1159) [Link]

I'd say that Microsoft's goal is to get as many people using .Net/C# as possible, in the hope that they'll write Windows applications.

If anything, Mono probably helps here because it reduces the problems of using a single supplier platform. If they were seen to be cutting off customers' exit strategies (without something like Mono, customers would need to change language as well as replace Windows-specific API usage), then it would greatly diminish the appeal of the platform.

As for the shared source release, I don't really know what their reasons were. Perhaps their aim was to get people to use it as a base for research at universities.

Now if we put aside Microsoft's motivations and consider Linux application development (as you see in F-Spot, Tomboy, etc), you're using the core CLR APIs that Microsoft has promised not to assert patents on and non-Microsoft APIs (e.g. GTK and Mono/UNIX-specific APIs). You are pretty much as safe as you'd be using any other framework.

It isn't one that I'm using for development personally, but I don't really have a problem with other people using it or using applications built on top of it.

ISO standards

Posted Oct 8, 2008 22:11 UTC (Wed) by sbergman27 (subscriber, #10767) [Link]

"""
You cannot void C# on the same events, because C# happened differently.
"""

Or, at least, if there was misconduct it was better hidden and we don't know about it.

Mono 2.0 lets .Net apps run on Linux (InfoWorld)

Posted Oct 6, 2008 17:28 UTC (Mon) by syntropy (guest, #54409) [Link]

Yes, C# is a programming language. Yes, Mono is an implementation of an ISO standard. Where is the limit to that standardization and where does Microsoft's 'intellectual property' come into play?
Mono is a library which essentially allows Windows programs which were written in Microsoft's proprietary .NET libraries to be easily ported to Linux. For some, this is fantastic. For others, like myself, I believe it will eventually (if it has not already) become a hindrance. Mono is meant to apply the concept of interoperability.
As a project in the open source community I applaud the idea and philosophy, but when I take a step back and see what the implications are, I shudder to think what will become of the general standard of Linux programming will become.

Mono 2.0 lets .Net apps run on Linux (InfoWorld)

Posted Oct 6, 2008 18:29 UTC (Mon) by chrislee (subscriber, #4460) [Link]

> Mono is a library which essentially allows Windows programs which were
> written in Microsoft's proprietary .NET libraries to be easily ported
> to Linux.

Mono is an _extremely_ nice Linux development and runtime environment in its own right, *without* scary proprietary dependencies. Windows compatibility helps mitigate many practical organizational and political issues. There is nothing here to make you shudder. Relax! :-)

Mono 2.0 lets .Net apps run on Linux (InfoWorld)

Posted Oct 6, 2008 19:46 UTC (Mon) by vmole (guest, #111) [Link]

...*without* scary proprietary dependencies

Until MS starts enforcing patents on various pieces of it. Until MS starts making mods that are not put under an Free license, but are pretty much required and widely used by Windows coders. You don't think MS would do such things? Then you haven't been paying attention for the last 20 years.

Mono 2.0 lets .Net apps run on Linux (InfoWorld)

Posted Oct 6, 2008 20:11 UTC (Mon) by chrislee (subscriber, #4460) [Link]

My understanding is that if you use it for programming with free software libraries etc... (e.g., use Gtk for your desktop interface) then all is verifiably fine. So if you use it like you would its "competitors" in the free software world (Python, Java, etc...) there is no worry (or rather, the same worries as for all software development these days).

I'm not worried about nasty future mods. Worst case, Windows users would have to use Mono instead of MS .Net then, and Mono cannot implement all of .Net 3000 or whatever. Yawn. This is no longer a world in which MS can afford to piss off developers.

Mono 2.0 lets .Net apps run on Linux (InfoWorld)

Posted Oct 7, 2008 18:32 UTC (Tue) by oak (guest, #2786) [Link]

> This is no longer a world in which MS can afford to piss off developers.

And the MicroSoft's paying C# customers aren't stupid either. Once they
have portability to other widely used platforms besides Windows, why they
wouldn't complain if MicroSoft tries to take away their freedom to make
money also on those other platforms (if those are widely enough used
either within their own organization or their customers' organizations)?

Mono 2.0 lets .Net apps run on Linux (InfoWorld)

Posted Oct 6, 2008 17:14 UTC (Mon) by epa (subscriber, #39769) [Link]

Thank you for this informative and sober analysis.

Mono 2.0 lets .Net apps run on Linux (InfoWorld)

Posted Oct 6, 2008 17:25 UTC (Mon) by cyrus (guest, #36858) [Link]

I believe that Mono is really important for Linux. A friend of mine works for a company that used Windows CE with the .NET-compactframework on ARM-based embedded systems. After they found out that Linux could run on those machines, it was a matter of one or two weeks for porting the applications (mainly different pathnames and other minor stuff, they don't use any GUI).

Now they're saving lots of money :-)
If I remember correctly a Windows CE licence costs them roughly 10 €.

Mono 2.0 lets .Net apps run on Linux (InfoWorld)

Posted Oct 6, 2008 17:50 UTC (Mon) by AJWM (guest, #15888) [Link]

Now they're saving lots of money (emphasis added)

The question is how much more money would they have saved if they'd started the project using Linux and any of the numerous free (in both senses) development platforms (Java, Python, C++/Qt, or even Tcl/Tk) available for it.

Mono 2.0 lets .Net apps run on Linux (InfoWorld)

Posted Oct 6, 2008 17:53 UTC (Mon) by syntropy (guest, #54409) [Link]

That would depend on if the developers in question had the technical ability and skill. I've seen lots of code, but very little of it (very, very little as a matter of fact) was even remotely close to sanely and safely made.

Mono 2.0 lets .Net apps run on Linux (InfoWorld)

Posted Oct 6, 2008 18:28 UTC (Mon) by allesfresser (subscriber, #216) [Link]

And how would this be different with C#? Technical ability and skill doesn't magically appear just because you're using one particular product, despite the constant barrage of marketing.

Mono 2.0 lets .Net apps run on Linux (InfoWorld)

Posted Oct 6, 2008 18:50 UTC (Mon) by syntropy (guest, #54409) [Link]

Funny, last time I check there was no ANSI C#.

Mono 2.0 lets .Net apps run on Linux (InfoWorld)

Posted Oct 6, 2008 22:37 UTC (Mon) by salimma (subscriber, #34460) [Link]

There are more C# code monkeys than people well-versed in traditional Unix tools and languages.

Mono 2.0 lets .Net apps run on Linux (InfoWorld)

Posted Oct 6, 2008 23:33 UTC (Mon) by syntropy (guest, #54409) [Link]

I would define that as a problem, not a solution.

Mono 2.0 lets .Net apps run on Linux (InfoWorld)

Posted Oct 9, 2008 5:23 UTC (Thu) by lysse (guest, #3190) [Link]

I think everyone on this thread is actually in violent agreement...

Mono 2.0 lets .Net apps run on Linux (InfoWorld)

Posted Oct 7, 2008 8:53 UTC (Tue) by aleXXX (subscriber, #2742) [Link]

> free (in both senses) development platforms (...C++/Qt ...)

I like Qt and I'm a KDE developer, but...

Qt is GPL, but if you are doing embedded development, you probably don't
want to open source your application, so you need a commercial license
for Qt (something like 2000 euro per developer or something like that).
If you are using Qt/Embedded / Qtopia / Qt/Extended you probably also
have to pay a per-device fee (at least the last time I checked, which is
more than one year ago).

Alex

Mono 2.0 lets .Net apps run on Linux (InfoWorld)

Posted Oct 7, 2008 12:41 UTC (Tue) by jengelh (subscriber, #33263) [Link]

So use... wxWidgets?

Mono 2.0 lets .Net apps run on Linux (InfoWorld)

Posted Oct 7, 2008 7:39 UTC (Tue) by eru (subscriber, #2753) [Link]

I believe that Mono is really important for Linux. [...]

I have to agree for similar reasons. Even though I dont' particularly care about the C# language programming environment, anything that helps in porting Windows apps towards Linux is a Good Thing for Linux fans like me working deep inside predominantly windows-using corporations. It is far easier to promote Linux usage when you can credibly show that in-house apps written for windows can be ported. Like the utility I recently came across that may well be needed on Linux-based development, but which was written in C#. People writing such apps in C# are not incompetent (the tool I have in mind is very sophisticated, and a challenge to write in any language). MS just provides tools to get a job more easily done (and the entry-level versions can be downloaded gratis), so in-house developers with other things on their mind than portability (or limiting the reach of the Evil Empire) will use them.

Mono 2.0 lets .Net apps run on Linux (InfoWorld)

Posted Oct 7, 2008 8:25 UTC (Tue) by dgm (subscriber, #49227) [Link]

Looks like, in fact, Linux is important for C# developers.

Mono 2.0 lets .Net apps run on Linux (InfoWorld)

Posted Oct 7, 2008 12:41 UTC (Tue) by jengelh (subscriber, #33263) [Link]

But C# is not as important to Linux developers!

Copyright © 2008, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds