Linked by Thom Holwerda on Thu 24th Sep 2009 13:35 UTC, submitted by Hiev
Mono Project If you don't like personal, blog-style reporting, you might want to skip this item. A few days ago, during a speech at Software Freedom Day in Boston, Richard Stallman has, at least in my book, crossed a line that I thought he would never cross.
Thread beginning with comment 386046
To view parent comment, click here.
To read all comments associated with this story, please click here.
elanthis
Member since:
2007-02-17

This "Mono is just chasing taillights" crap is getting silly.

If you take Mono to mean "a project whose sole goal is to enable running Windows .NET apps on Linux" then yes, Mono will always be behind.

If you take Mono for what it actually is meant to be and what it is actually freaking used for, which is "a project that provides a clean, modern language on which to more efficiently develop and deliver Linux applications" then you realize that Mono isn't chasing anything, it's actually 20 steps _ahead_ of anything else on the Linux front.

If Microsoft came along and said, "we're going to assert some mythical patents and Mono can't be compatible with the ECMA CLR or class library anymore," Linux and Mono would not be devastated in the least by it. Mono would drop the offending bits and it would _still_ be a clean, modern language with a helluva-efficient runtime library providing a ton of brand-new non-Microsoft-derived Linux-focused APIs and libraries (from POSIX to dbus to GTK to OpenGL and so on) that real applications like Tomboy or Banshee or iFolder or MonoDevelop or Unity3D or SunUO or Landell and countless others can continue to be built on top of, taking full advantage of the features of C# (or even a "very similar to C#" language, if some change were forced on Mono by MS), the high quality Mono runtime implementation, and the quality APIs and tools developed by the Mono community.

There's no difference in theory behind a project like Mono and a project like Python, other than that Mono leisurely follows a language specification for the sake of being compatible __as a nice side benefit__ while Python just makes shit up as it goes. Oh, and Mono is way faster, has significantly better documentation, has better tools, and is already used in large-scale commercial apps (that have NO dependency on being Microsoft .NET compatible) despite having been around for a far shorter amount of time.

Honestly look around and see how many people try to use or even _care_ about using Mono as a way to run apps developed for Microsoft .NET. You just don't see it. Mainsoft makes a business out of making it easy to get ASP.NET apps running on Linux servers and that's about the end of it. All of the really cool users of Mono are people that are using it either because it provides a top-notch embeddable VM that blows away every other FOSS scripting engine (e.g., Unity3D) or because it provides some of the best APIs around for creating brand-new Linux-specific applications (e.g. Beagle).

The only people who are even remotely hung up on chasing Microsoft's taillights are the people who don't understand what the purpose of Mono is and use their misconception as a strawman argument against the Mono project.

Mono was conceived by the Ximian folks because of their experience with Evolution. They were writing big Linux desktop apps. Writing them in C sucked. Writing them in C++ sucked slightly less. Writing them in Python sucked far less in some ways and far more in other ways. Writing them in any FOSS-friendly language available was a nightmare. They saw C#. They saw it was like Java, except it fixed many of the things that sucked about Java. They thought, "it would be sweet if we had a language like that to develop in." They thought, "we could write a language like that to develop in." They thought, "we could write a totally new language, but then we have to solve a bunch of problems that have already been solved over and over and over" and they knew that good engineers don't waste time resolving old problems. They thought, "if we make a C# compiler and runtime for Linux, not only do we get what we want, but what the heck maybe it'll help bring more ex-Windows developers over to the Linux side and make the world a better place." And, instead of sitting around bitching about all the hard work other people are doing, they went ahead and made the project. Their lives got easier, the lives of quite a few Linux developers got easier, the lives of even a number of Windows developers got easier, and the regular users started seeing some cool software that none of the Linux developers were making pre-Mono because it was such a time-consuming pain in the ass to do it before, and Windows users even started seeing more cool software because now there was this awesome tool for embedding high-performance reliable easy-to-write scripts into larger applications which made the applications more awesome.

Everyone has won because of Mono, and because Miguel and the many other awesome contributors to Mono have done something FOSS never did before. The only thing the FOSS world has that even comes close to Mono is Java, and that was only just recently Open Sourced, and Sun's Java is actually already way behind Mono despite being far older.

So, seriously, quit with the taillight chasing crap. The Microsoft specification is largely irrelevant to just about all users of Mono, it's not even a priority for the Mono developers, and Mono has far surpassed anything else the FOSS community has in the same field.

C/C++ are a pain in the ass to work with and are light years behind modern languages in ease of use and features, and modern VM technology is already more or less on par with C/C++, and upcoming VM technology is quite likely to exceed the performance of C/C++. Python, Ruby, Perl, and so on are all great languages for some tasks but are total whores to work in for a great deal of other tasks, and they'll never be able to match Mono in speed (simple fact -- even if you implement the same VM technology in something like Parrot as you have in Mono, dynamic typing will always be slower; even if you use the same tracing optimizing JIT to compiler both C# and Python to machine code, the C# result will need far less type guards than the Python result would... which you can even prove by just using IronPython on Mono).

The point of Mono is NOT CLR compatibility. It's not even C# the language. The point of Mono is having a runtime and multiple languages that make developing real-world applications easy and making those applications more reliable, which frees up more developer time to work on actual features and performance rather than working on endless layers of complicated framework code or debugging stupid bugs that only exist because of poor language design.

Reply Parent Bookmark Score: 6

sbergman27 Member since:
2005-07-24

If you take Mono for what it actually is meant to be and what it is actually freaking used for, which is "a project that provides a clean, modern language on which to more efficiently develop and deliver Linux applications" then you realize that Mono isn't chasing anything, it's actually 20 steps _ahead_ of anything else on the Linux front.

I keep hearing this. But where are the wonderful Mono apps? Where is the surge in application development rate and quality. What I see are a few alarmingly memory-hungry apps that keep getting passed by C/C++ newcomers. Tracker (C) is moving past Beagle. Gnote (C++) zipped past Tomboy, reimplementing it very quickly. I guess that leaves F-Spot and Banshee.

There may be a good argument to be made for prototyping with Mono. But in that case... why not use Python?

If you are going to claim that Mono is ahead of anything else on the Linux front, and at this late date, it seems like you ought to have more "must have" apps to point to.

Since you have changed the backdrop from "running .net apps" to "providing yet another API for OSS", I would say that "chasing tail lights" is not an appropriate description. "Trying to stand out in the crowd" probably is. But in that case, Mono is not doing so well. Except insofar as it has generated so much bad publicity. But I suspect that was not the goal.

Edited 2009-09-24 19:54 UTC

Reply Parent Bookmark Score: 12

vivainio Member since:
2008-12-26


If you take Mono for what it actually is meant to be and what it is actually freaking used for, which is "a project that provides a clean, modern language on which to more efficiently develop and deliver Linux applications" then you realize that Mono isn't chasing anything, it's actually 20 steps _ahead_ of anything else on the Linux front.


Mono is the slower way of running C# programming. Microsoft CLR is the fast way. So yes, Mono is playing catchup.


Oh, and Mono is way faster, has significantly better documentation, has better tools, and is already used in large-scale commercial apps (that have NO dependency on being Microsoft .NET compatible) despite having been around for a far shorter amount of time.


Mono also doesn't seem too stable yet. I managed to segfault a simple Gtk# program that was actually example code that created a window and tree widget.

Granted, this was on Karmic.

C/C++ are a pain in the ass to work with and are light years behind modern languages in ease of use and features, and modern VM technology is already more or less on par with C/C++, and upcoming VM technology is quite likely to exceed the performance of C/C++.


I'll believe the part about performance when I see it. C++ is quite ok with Qt - to the extent that I don't see much reason to use Mono. I can see why you want to use Mono with Gtk+, but why change the language and the whole environment when just changing the toolkit will do?

Python, Ruby, Perl, and so on are all great languages for some tasks but are total whores to work


Considering Perl "great" for anything raises certain concerns about your mindset ;-).

The point of Mono is having a runtime and multiple languages that make developing real-world applications easy and making those applications more reliable, which frees up more developer time to work on actual features and performance rather than working on endless layers of complicated framework code or debugging stupid bugs that only exist because of poor language design.


Frankly, C#/Mono doesn't really give you *that* much over C++/Qt (or Python/Qt for smaller projects/development teams). It's definitely worth a shot taking a look at Qt and contrasting that with what Mono has to offer before seriously considering drinking the Mono Kool Aid. Qt actually gives you significantly better cross-platform story in addition to superior performance (both in terms of memory and cpu cycles).

And for those colossal server-side behemoths, we'll always have Java.

That being said, and to stay on topic, RMS is obviously overreacting here; he's seeing Mono as a bigger threat than it is, if we consider actual popularity figures.

Reply Parent Bookmark Score: 6

nagnatron Member since:
2009-09-24

Thank you for this beautifull post.

Reply Parent Bookmark Score: 1

blacklistme Member since:
2007-07-16

Maybe you should take a lesson in history. RMS isn't the first to call Icaze a traitor and he has sold out to Sun in the OpenOffice.org versus GNOME Office debat back in 2000. Yes he is a traitor as he sells his beliefs and principles for power. And for what? To be a corporate puppet? This is where difference is between free software and open source. This is where both Theo and Richard agree on. This is maybe why Debian is on of the bigger distro's as people get fed up with corporate interests (get as much money out of your pocket in as little time as possible).

But again, based on history I would say that Icaze is a traitor and hurted a lot of peoples/developers believes and pockets. More are down the road on his conquest to push Mono forward in a way it divides communities. The Tomboy/F-Spot incidents can learn us a lot and should be seen as a sign for the future. The Silverlight/Moonlight solution most likely will divide the community in a way as seen with BSD386 a long time ago.

If people want to see what is coming then pay attention to Novell. I'm not going to repeat how they tried to sell SLES to us, but I gave me a good insight what Microsoft is up to and how it is using puppets like Icaza and Novell to get to there goal.

Reply Parent Bookmark Score: 3