Linked by Thom Holwerda on Tue 11th Mar 2008 23:28 UTC, submitted by irbis
Mono Project "Does GNOME co-founder Miguel de Icaza's backflip over the Novell-Microsoft deal a few days ago mean that he has finally been convinced that he is on a one-way path to nowhere? Has he realised that his own project, Mono, is actually putting GNOME on a development track that can leave it open to patent claims one day? And has he realised that creating Moonlight, a clone of Microsoft's Silverlight, (with which the company hopes to trump Adobe's Flash) is not going to advance the cause of free software one iota?"
Thread beginning with comment 304609
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[4]: Destructive
by google_ninja on Wed 12th Mar 2008 04:44 UTC in reply to "RE[3]: Destructive"
google_ninja
Member since:
2006-02-05

Helping in any one of these areas would have far-reaching, cross-platform benefits for massive segments of OSS. Instead, the Mono folks chose to write a VM from scratch and play perpetual catch-up to Microsoft ever-changing language extensions (just ask any other vendor how easy and fun it is to ride the Microsoft protocol bronco without getting bucked off). And for what? Well, let's run down a list of Mono's "strengths"


Novell wanted java without the cruft that they could control. None of the environments you mentioned has the "everything and the kitchen sink" mentality that .net and java have. The only reason they play "catch up", is for binary compatiblity with windows apps. That is a huge thing, but from a purely technical point of view they could stop and take it in another direction any time they wanted.

Mono allows unencumbered, cross-platform interoperability... so long as "interoperability" is defined in such a way as to exclude GUIs, database access, and web development.


Mono encourages users to their own stack. It isn't like they just stop at winforms and ado. There is Gtk#, Cocoa#, and Qt# to choose from.

Well OK, so it's not so great at real, usable interoperability, but hey, if you target Mono, your code will at least run unmodified on Windows... right? As it turns out, it's taken significant porting effort to get Banshee and Beagle to run on Windows (and even then, they're separate forks from the Linux codebase).


I don't know how much experience you have with cross platform apps, I was a java guy for almost 5 years and let me tell you, "write once, run anywhere" only applies for trivial apps. And java is arguably as cross platform as it gets.

Knowing nothing about the specific issues in this case, my guess is that GStreamer on windows wasn't really in state for banshee to be usable, and there had to be alot of api mapping to make things work. Gtk on windows is about the opposit of impressive.

Regardless, you do have a point, if you are expecting zero effort porting on a non trivial app, you are in for a big suprise.


The syntax, though, is the fallback argument. C# is beautiful, concise, fun to program in. It's also available for Vala (without the accompanying memory bloat and speed limitations of Mono) and even Parrot.


Does vala or parrot have frameworks that even come close to the .net API? That is one of the big positives, you are using the same framework to write webapps as you use to write desktop apps, as you use to write mobile apps and everything in between.

Yes, there's a lot of people out there whinging about the Novell-Microsoft deal. Sure, there are loads of conspiracy theories and plenty of high-pitched, uninformed FUD-slinging. But once you actually sit down and examine the facts, it's even more clear that Mono is the software equivalent of the Concorde: a technologically sexy novelty, but a total failure for its stated goals.


Its stated goals is to provide a modern, high quality application framework for linux. I would say they succeded; apart from a few areas, their performance is on par with java, and they have managed to stay about a year and a half behind microsoft so far when it comes to functionality.

Personally, I don't think it is the savior of the free software world the way that Novell is trying to plug it, but it has alot of very compelling aspects to it, especially when compared to other options in the same space. As a .net guy on windows, it is the obvious choice for me whenever I want to bang out a quick app or a small tool on linux (making linux development very accessable to windows developers is not a small thing either)

Reply Parent Score: 4

RE[5]: Destructive
by monodeldiablo on Wed 12th Mar 2008 06:57 in reply to "RE[4]: Destructive"
monodeldiablo Member since:
2005-07-06

Novell wanted java without the cruft that they could control. None of the environments you mentioned has the "everything and the kitchen sink" mentality that .net and java have.


Of course. However, since they were already reimplementing this library from scratch, they could have contributed it to existing projects for the same (or more likely far less) amount of work. (Edit: I forgot to mention that, not only do Python, Perl, and Ruby have the kitchen sink, they often have several competing versions of it.)

The only reason they play "catch up", is for binary compatiblity with windows apps. That is a huge thing, but from a purely technical point of view they could stop and take it in another direction any time they wanted.


Ah yes, but if they do that, they lose perhaps their largest selling point: Cross-platform interoperability. And then they're Just Another VM. And not a particularly fast or slim one, at that.

Mono encourages users to their own stack. It isn't like they just stop at winforms and ado. There is Gtk#, Cocoa#, and Qt# to choose from.


See my comment above. If you use a stack native to a given platform in your code, you can't be cross-platform. It's just that simple. Advocating the use of a native stack renders the project's number one objective moot (I feel like I'm repeating myself).

I don't know how much experience you have with cross platform apps, I was a java guy for almost 5 years and let me tell you, "write once, run anywhere" only applies for trivial apps. And java is arguably as cross platform as it gets.


I'm also a former Java & .NET guy. I'm right there with you on the Great Lie. However, as I've said before, this reality doesn't stop Mono folks from pushing this point as the biggest reason to use their runtime. Just check out their site.

Does vala or parrot have frameworks that even come close to the .net API? That is one of the big positives, you are using the same framework to write webapps as you use to write desktop apps, as you use to write mobile apps and everything in between.


Not as of yet (although Vala is just GObject wrapped in lovely syntax... you really should try it). That's my biggest gripe with Mono, to be honest. Mono didn't inherit the functionalities you're talking about. The hard-working geniuses behind the project had to build them. However, instead of helping out established projects in need of assistance or implementing this stuff at a common layer, they chose to build a walled garden. I'm fine with them justifying it as a business decision (which is what it is), but Novell and the Mono crew explicitly state that their goal is to help out the FOSS community and bring lots of people to the Other Side. This hypocrisy is hard for me to swallow. What they mean is that they want an ecosystem that they control... another beast entirely. That's not FOSS.

Its stated goals is to provide a modern, high quality application framework for linux.


It's stated and heavily emphasized goal is to provide a .NET runtime for platforms not supported by Microsoft. To pretend otherwise is to ignore the very basis for the project.

I would say they succeded; apart from a few areas, their performance is on par with java, and they have managed to stay about a year and a half behind microsoft so far when it comes to functionality.


I wouldn't disagree that they've done an admirable job building a replica of the CLR in Linux. As I've said before, it's an impressive feat. However, as you mention, they're at least a year and a half behind Microsoft. The bad news is that they will never get any closer. In fact, these are the good times, since Microsoft is still playing friendly. They will always be playing catch-up, though, and the effort will be doubly hard when Microsoft realizes it's not making any money helping out Mono.

Personally, I don't think it is the savior of the free software world the way that Novell is trying to plug it, but it has alot of very compelling aspects to it, especially when compared to other options in the same space.


I, unlike many of the religious, am not personally opposed to Mono. It's a remarkable engineering feat and a demonstration of the power of motivated developers. I merely resent the hypocrisy and diversion of resources. It's not here in the Linux world to make my development life easier. It's here to lure business to Linux (specifically, Novell's brand) and away from Windows. The benefit to me and the community at large is minimal or non-existent. The benefit to Novell is huge (free testing and development). It's the programming framework equivalent of astroturfing.

In the open source world, Mono is a solution in need of a problem. Our ecosystem has been designed around giving developers good frameworks since Day 1. In fact, it's often the biggest criticism of open source: It's geared more towards programmers than users. Great development tools, libraries, and languages abound.

As a .net guy on windows, it is the obvious choice for me whenever I want to bang out a quick app or a small tool on linux (making linux development very accessable to windows developers is not a small thing either)


If I want to "bang out a quick app or small tool" in Linux, I can write something in Python, Perl, or Ruby. As an added bonus, it will most likely run just as well on Windows (or *BSD, or Mac OS, or Solaris, or...) without any further porting on my part. Hell, I've found Linux development, even on the system side, to be much easier than Windows development because everything is so much more transparent.

I think the argument you're reaching for here isn't "accessibility", but "familiarity". And if you're looking for both, well then why not use a tool that spits out C(GLib/GTK) code, but has C# syntax (Vala)?

I appreciate the constructive discussion, but I remain unconvinced that Mono is anything more than another "me too" product, however quickly it was brought to market. I'm not more productive, my code doesn't run any faster, and my projects aren't any more portable to other platforms when I use Mono. So what is the point?

Edited 2008-03-12 07:08 UTC

Reply Parent Score: 2