Recently, the noisy debate over whether Mono poses a real threat to Linux has gotten even noisier. I’m not a lawyer so I’m not going to comment on matters I don’t fully understand, but I want to offer a constructive suggestion. No number of blog posts or vitriolic Reddit comments can by themselves generate a viable alternative to Mono. The Mono opposition needs to get serious, get organized, and channel their passion for Free software in a useful manner. Here’s how:
- Create a mailing list where people interested in replacing Mono and/or Mono-based applications can subscribe. A quick perusal of Google Blogsearch, Reddit, Digg, and Slashdot will turn up many vociferous individuals who appear to be willing to contribute. These people need to start working together instead of participating in the same fruitless arguments over and over again.
- Interview stakeholders. Figure out why developers like me are using Mono; I love Mono and would be happy to tell you why.
- Conduct a competitive analysis, evaluating Mono and technologies like it. Look at C with GObject, Qt, Etoile, GNUStep, Squeak and others. Document the strengths and weaknesses of these tools for creating Linux applications. How complete are they? Are they actively developed? Why do developers pick them? Why are they popular or unpopular?
- Using this competitive analysis data, decide on the best existing alternative to Mono.
- Using the data about why developers choose Mono, begin to address the deficiencies in the chosen alternative. The mailing list subscribers from step 1 should be eager to help — get them involved writing documentation, reference applications, libraries, and new language features.
This will result in a compelling alternative to Mono. If it pleases developers, great new Linux applications will be made using it.
72 comments
I agree. Rather than bashing Mono blindly, people (including me
) should have view it using more objective view.
Thanks for pointing it out. Nice post. ^^
I just like Mono. I don’t really care about it being a Microsoft technology: I like the ability to easily write applications that will run on all major operating systems, and will have first-class support on Windows. As a hobbyist programmer who creates simple applications for friends and family to use, this is a big deal, because most of my friends and family use Windows.
The ability to target Windows with a minimum of dependencies needed is great. Most people already have .NET 2.0 or later, and I have written up some routines for Inno Setup to download Gtk# automatically for people who don’t have it, and do a silent install of the MSI file. It makes my distribution file small and it makes things seamless for my mostly nontechnical users.
Then there’s MonoDevelop, which is really great and easy to use. For someone who just wants to code and not futz around with build systems and switching between different applications for different tasks, MonoDevelop is wonderful. It truly lives up to the IDE moniker.
I don’t use mono that much ’cause i’m a web developer but i’m aware that we need that technology in the FOSS world.
Bashing mono is like bashing samba
“Figure out why developers like me are using Mono; I love Mono and would be happy to tell you why.”
I would be interested in hearing this. You’ve probably written about it before so perhaps you could provide links to a couple of articles, or write a new one?
Why do you need an opposition to Mono? No matter of you knowledge, Mono is one of the best free and open source project. Instead of holly ghost war against Microsoft, better try to think how to help Mono to stay free and open, if you ever seen any possible threat. We and You must helping any free and open source project! But what are you doing? You try to deny the right to choose. You should know that the main strength of the free & open source projects is that it gives the right to choose and not limit it. Please think about it. Who are you to decide for others and impose their views?
I’am agree with Alex. If you want to defend their interests, you must protect and advance, rather than surrender their position and accomplishments.
People are entitled to their own views, and competition can only be a good thing. This is how the entire situation should be handled. Kudos.
The debate has gone far enough, the way forward is as follows:
If you don’t like mono then don’t use it and make applications which are better then the mono ones.
If like me you do love mono then continue to use it, and make mono apps better.
In the end let the best applications win. Currently some of the best application are written using mono. Including F-Spot, Banshee and Gnome Do.
The only thing that worries me about it is there is no official evidence to say Mono is either here nor there. I wish Novell would get something from MS and put it on their website so that these worries (which are creating this mess) are either cleared or confirmed.
@Daniel: If the Mono community throws a fit if a Mono app is ported to C again, there is no way this debate will cease.
Don’t get me wrong, C# is my main language, I just want some hard evidence and no more hearsay.
.NET is patented technology, and only Microsoft and Novell customers are licensed to LEGALLY use/distribute/implement it:
http://www.novell.com/linux/microsoft/openletter.html
The only way we can stop debates about the illegality of Mono, VLC, ffmpeg and the Linux kernel is to end software patents.
It doesn’t matter if mono is better than any other environment out there. This discussion centers about it’s legally dubious state, about it being an attack vector that gives MS a chances to make money off Linux, about making software non-free because the underlying environment is non-free.
It’s a more complex version of the Java debate (before it was opened). Software is only Free if it’s dependencies are also Free and in the case of mono, there is sufficient evidence to doubt this Freedom.
For this reason, mono has always been shunned from RHEL and is being booted out of Fedora.
We have a free implementation of a de jure ECMA standard – and its not enough. Amazing.
The only possible issue would appear to be that Microsoft got something into that standard that can only be sanely implemented with something they have a patent on – otherwise their patents threaten C# no more and no less than they threaten implementations of Java, Python, Ruby, and everything else.
It soverhyped and a cheap shot that says more about anti-MS fanaticism than anything else.
@nocturn
I don’t think this is the Java debate. Java as a dependency was non-free. Mono has been free from the very start of the project. There is absolutely no doubt about the freedom of mono.
Patents are an entirely different beast. Patents don’t care if the software they could apply to is proprietary or free. Microsoft announced Linux violates 235 of its patents. Does that make Linux a non-free environment?
Being ECMA standard has nothing to do with being free to use or implement it.
http://www.ecma-international.org/publications/standards/Ecma-334.htm
License is NEEDED for that.
Question is: how come MS can easily promise not to sue over bunch of stuff (like OOXML), but not for .NET (mono) ?
Answer: so that only Novell and MS customers can use mono (paying for license, of course).
http://www.microsoft.com/interop/osp/default.mspx
@James
The ECMA standardization does not cover the patents on .NET. I wrote about this here: http://nocturn.vsbnet.be/node/152. Note that the linked article from Sam Varghese includes a response from ECMA itself pointing this out.
Secondly, MS has done everything in their power so far to fight Linux. calling it a cancer, setting up FUD campaigns and sueing people (TomTom). No, I do not trust them as they have proven to be aggressive time and again.
@Foxfire:
MS does not own the intellectual property of Linux. It does own the intellectual property of .net.
If you don’t like Mono, don’t use it.
If you don’t like dotGNU, the FSF implementation of the .NET runtime, then don’t use it.
If you feel that the GNU implementation of .NET somehow manages to dodge any legal doomsday scenario that Mono doesn’t manage to, then use dotGNU.
In my opinion the history of Java on the Linux platform has been a lot more legally fraught than .NET but I don’t really care much as I think the whole thing is about FUD
You could be welcoming the opportunity of easing the openning of the Linux platform for Windows developers, but the truth of the matter is that many in the community actually want to remain apart.
Do what thou wilt is the whole law… get on with it, and quit gnashing your teeth over what other people are doing. Sometimes the OSS movement looks more like the fundamentalist Christian right wing.
@Foxfire
The Java debate was clear because Java was non-free in a copyright sense and since you needed it to run the programs, they themselves where non-free by nature.
Mono is clouded by patents which potentially make it non-free.
About the 235 alleged patents: it could hit parts of the Linux system, but we don’t know which parts and to what extend hence we cannot deal with them.
Mono is based on MS own technology, so there is little reason to think those patents won’t hold up.
Why do we shun MP3 and DVD support in Ubuntu because of vague patent threats yet include mono which has the same concerns? If patents can be discarded as you suggest, then we can safely inlcude all of these features, it would benefit the user’s experience.
@Guy Murphy
FLOSS is an ideology. That is the only thing that sets us apart form MS and Apple.
If you disregard that ideology, than why FLOSS? What is wrong with proprietary software with closed protocols and formats besides ideology?
One more thing. Linux kernel guys, as soon as they find out there’s a patent violation in kernel, they make a patch/workaround to avoid it.
http://lwn.net/Articles/338941/
Shouldn’t desktop guys do the same?
Problem is no one has managed to find a patent which mono is in violation of. The mono project has said many times that if such a patent is found mono will work around it or remove the code.
Until someone comes up with a such a patent this argument is all just smoke with no fire.
This whole pointless debate centers around a non-issue about Debian *allegedly* being “forced” to accept/include/whathaveyou Mono because GNOME “needs” Tomboy and Tomboy needs Mono. Well guess what? GNOME does not need Tomboy to work properly. Nobody is forcing Debian to install Mono by default[1]. Debian will not be forcing you to install Mono, not unless you want to use the applications that *depend* on Mono.
Thankfully, GNOME is not yet at the point wherein it has an operational dependency on Mono. Hopefully GNOME developers will try to keep it that way in future releases. If at some point in time GNOME decides that it is a really, really good idea to introduce an operational dependency on Mono, it’s not going to be the end of the world (except for GNOME). There are still other desktop environments that you can use under Linux.
[1] http://np237.livejournal.com/23901.html
@Jessie Bullwinkle
KDE remains an alternative (which I’m watching), but though it is a very cool desktop and plasma is really nice, I don’t like to use it as Gnome’s focus on usability has made it unique.
So, let’s end the dependency with Tomboy (which can be replaced with Gnote). But there seems concern enough from the Fedora guys to boot mono. I think Ubuntu shoudl follow that or just ignore patent issues and include MP3 and DVD playback by default.
@nocturn
> FLOSS is an ideology. That is the only thing that sets us apart form MS and Apple.
I find it rather amusing that people who advocate FLOSS by forcing people not to use package so-and-so because it is “non-free” are doing more to limit freedom than their pragmatic counterparts.
Case in point here is Fedora who has, in recent releases, made it increasingly difficult to play MP3’s and other proprietary media formats[1]. “Want to play your MP3’s, go try to figure that out for yourself, along with the other users who want to play MP3’s. Why not just use Ogg/Vorbis?”
Contrast that with the Ubuntu approach[2]. “You want to play your MP3’s? Click here to install the MP3 codecs.”
[1] https://fedoraproject.org/wiki/Multimedia/MP3
[2] https://help.ubuntu.com/community/RestrictedFormats/
@nocturn
> So, let’s end the dependency with Tomboy (which can be replaced with Gnote).
That concern is best taken up with the Debian installer or GNOME team. But as already pointed out by Robert Millan in his blog[1], you have the option to install GNote instead of Tomboy. It is entirely up to you to choose what to install on your computer. Tomboy was made the default dependency for a note-taking app because as it stands right now, the latest version of GNote does not yet have all the features that the latest version of Tomboy has.
[1] http://np237.livejournal.com/23901.html
I don’t know whether I’m too naive or something, but I’m really interested in how everyone here gives their opinion/perspective regarding this problem.
I like those “take it or leave it” phrase about Mono. It’s about freedom to choose, not freedom to bash. ^^
@nocturn
Since you are so enthusiastic, I propose you create the suggested mailing list
That way you will serve your GPL ideology better (FLOSS is a bit too vague, you look more like a GPL guy than a BSD/MIT one). Any debate here is useless…
@Gizmo
Yes, I’m on the Free Software side, not the Open Source side.
But the thing remains, either we ignore patents and include MP3 support and DVD playback or we do consider them… I don’t get why mono is being treated differently.
@nocturn
“If you disregard that ideology, than why FLOSS? ”
Because it’s free.
I’m a developer. I make choices about what I use to provide solutions weighing up a variety of factors… as do all developers… one of those factors is cost.
One of the key factors of free software is the fact that it’s free. For myself it has nothing to do with ideology, although for some I understand it does.
I don’t factor into my choices your fears, anxieties and concerns any more than I would somebody telling me that the Little Baby Jesus thinks that Mono is evil. Hence I have no interest in your ideological concerns.
Less ideology and more technology please. If you insist that ideology is a necessity, might I suggest meritocracy is a reasonable direction to head in for practical reasons.
As animaster commented, there’s a freedom of choice issue here also.
In that joint letter (from Microsoft and Novell), it’s clearly stated that patent coverage is provided to Microsoft and Novell customers (only!). If mono devs (Novell guys) want any good to FLOSS community, it’s up to them to clear that up.
Using mono now, is like using pirated windows. It’s free too, but ILLEGAL. Unless you pay.
Piracy is meritocracy too, isn’t it?
“C with GObject, Qt, Etoile, GNUStep, Squeak and others. ”
Taking a look at this list, Qt seems like an obvious choice. The drawback of using it instead of Mono is the compile time of c++ aps, but it’s not really that bad (and it pays back generously at runtime).
For most apps, PyGtk should be enough though. Or PyQt if GPL license is tolerable. The annoying thing about much of the anti-mono crowd is indeed that their energy goes to ranting, instead of advocacy of the options.
One thing is clear though – every year the Gnome project insists on sticking to the C+GObject mess plays directly for Mono’s favor. Direct discussion about exploring Qt for wider Gnome use would be the best move ATM, for Mono sceptics.
@nocturn: There are plenty of reasons to use FLOSS than just FS purity. The FLOSS software I use, I use because it is better than the proprietary alternatives (for the most part, some is arguable).
I also use and develop FLOSS because I like the idea of sharing code. It allows me to more easily debug what is going on when libraries I depend on are broken (or not doing what I expect) and it allows people who use my software to contribute back.
Personally, I prefer BSD or MIT-X11 (or, hell, even MS-PL) over GPL, because it allows FLOSS developers/projects who aren’t interested in purity to use my software too. If I’m going to spend countless hours of my time developing a really good piece of software, then I want the BSD developers to be able to use it too. No sense forcing them to reinvent the wheel that I just perfected.
To me, FLOSS is about helping your neighbor, not about forcing my views on him/her.
“I think Ubuntu shoudl follow that or just ignore patent issues and include MP3 and DVD playback by default.”
You are being pretty disingenuous in your comparison. The difference between Mono and MP3/DVD-playback is that MPEG-LA and the MPAA are very sue-happy. They are constantly suing over those patents.
Microsoft hasn’t sued ANYONE over any .NET-related patents in the 8 years since it was released. No one. Not a single entity.
That’s why the anti-Mono crowd are full of FUD. There is absolutely no certainty that Microsoft will ever sue Mono or anyone using it. There is only fear.
You can’t live your life in fear of something that is very unlikely to happen. If you do, you’ll never get anything productive done.
@CR:
“MS does not own the intellectual property of Linux. It does own the intellectual property of .net.”
This shows your complete lack of understanding. Microsoft may own .NET, but they do not own Mono.
It does not matter that Linux is not a clone of Windows, if Linux infringes those 235 patents, then it infringes those 235 patents and Microsoft can sue.
Will they sue? Doubtful. I do not think it is any more likely that they will sue Linux over those 235 patents than I have that they’ll sue Mono over any patents.
For those who fear .NET patents, you do realize that Java is a perfect example of prior art, don’t you?
The improvements that .NET has over Java have also been done before in other languages/platforms like Delphi and smalltalk.
The amount of prior art is incredible and so it really destroys pretty much any chance Microsoft even has at suing over patents.
@Jeff
“You are being pretty disingenuous in your comparison. The difference between Mono and MP3/DVD-playback is that MPEG-LA and the MPAA are very sue-happy. They are constantly suing over those patents.”
MS is investing heavily in the destruction off Linux, needless to mention Get-the-facts and SCO?
We’re not talking about Sun or Oracle owned patents, this is a dangerous company.
“Microsoft hasn’t sued ANYONE over any .NET-related patents in the 8 years since it was released. No one. Not a single entity.”
It didn’t sue ANYONE over FAT patents either, but that didn’t help TomTom very much…
I’m guessing that in the case of Mono, they would wait it out until the damage is that much greater.
@nocturn
“But the thing remains, either we ignore patents and include MP3 support and DVD playback or we do consider them… I don’t get why mono is being treated differently.”
If you can’t see the difference then there is no way of helping you. MP3 DOES have patents standing that are PROVEN in court. It is patent-encoumbered.
For mono there are
1) no known patents that apply (at least not for the mono runtime/libraries we are talking about)
2) *if* there would be patents they would likely be void because of prior art (java, others)
3) *if* there would be patents and *if* they wouldn’t be void mono would do the same that the linux kernel team does in that case: work around the patent
4) *if* there would be patents and *if* they wouldn’t be void and *if* you couldn’t work around them the patent would still be under guaranteed RAND terms or you could simply not use it anymore
As it stands today (and for the past few years): nobody even managed to get the the FIRST “if” true for mono.
Can you stop arguing about Mono (web is full of that already, with exactly the same arguments repeated over and over again) and discuss alternatives, as requested in the blog post?
@nocturn
If the GNU/Linux codebase was evaluated on the terms you’re evaluating Mono, there would be no GNU/Linux. The codebase is riddled with dependencies that are covered by patents.
The concern is that there are those that aren’t evaluating Mono on an equal basis. The argument boils down to “Microsoft is evil!”… Well Sun (as was) took some very agressive actions over Java. We could argue the merits of Sun refusing license to Java to competitors and whether it was justified but they did just that.
They are all 800lb gorillas. MS is just another, and Mono really is no different in this regard than Java except that MS showed a lot more good faith in standardising the CLI. One could even argue that MS standardising .NET was the final motivator to make Sun start to open up Java as it effectively removed their fig leaf.
IBM and Oracle have their histories too, as does the 400lb chimp Apple.
If Mono concerns you, don’t use it. If you are convinced that Mono is a ticking timebomb, don’t go anywhere near it.
I’m a .NET developer. I like Mono. That’s my choice.
And MS is not investing heavily in the destruction of Linux. MS knocks Linux as and when convenient. MS invests a lot less of its energy in the destruction of Linux than the Linux community invests in the destruction of Windows… so again, please stop with the hperbole.
Try and avoid becoming that which you declare to oppose. Avoid engaging in FUD.
I’m primarily a Windows developer. I do however use Linux as an when it suits, and I have developed LAMP solutions… Linux is great. It’s a choice I have, and that’s really good… The holy war really is being waged largely on the OSS side, and it’s slightly psychotic.
We need to make Pyhton as capable as mono (C#)… it already has GC and I think this Mono debate could stir up enough excitement to bring Python to the next level. I resist falling into using Mono because it’s easier to make cute little apps with it. Indeed, that’s the thinking we had to break free from to leave the Windows world. (but it’s EASIER)
So instead of bashing Mono, let’s use all that energy to make Python a better modern language, then by default developers will want to use Python instead.
BTW, Gnome and Mono were founded by the same person, VP of Novell. Look it up.
@Murphy
AFAICT Java never really became important for making desktop applications anyway (neither was Java never touted as “leading” approach for Linux programming).
I.e. Java was non-free but harmless. The perceived “danger” of Mono is in that it’s from MSFT and has a good chance of becoming popular at some point.
@nocturn: “It didn’t sue ANYONE over FAT patents either, but that didn’t help TomTom very much…”
There you go being disingenuous again.
Microsoft has historically only cared that hardware vendors license their FAT patents and TomTom refused. There are lots of people/companies that Microsoft could have sued over FAT patents if they were interested in “destroying Linux” and done a lot more damage.
Let’s also note that the FAT patents were only a minor portion of the lawsuit, most of the patents were about GPS navigation devices.
Add to that the fact that it is well-known that Microsoft licenses their FAT patents.
And then ad the fact that FAT is not an ECMA nor ISO standard.
What you are left with is nothing at all similar to Mono, so your comparison is nothing but FUD.
So, why won’t Microsoft PROMISE not to sue over .NET (and mono), like they do with other stuff?
http://www.microsoft.com/interop/osp/default.mspx
@Jeff
Do you not find it suspicious that MS did this after TomTom told them they wouldn’t use the Windows embedded platform for their OS?
Microsoft promised not to sue over ECMA-376 (OOXML), but ECMA-334 & ECMA-335 (C# & CLI) – it’s a no-no
I like mono.
Technically it’s awesome (except the debugger needs some serious work).
However, as a .NET professional developer I feel like mono has been a crutch, allowing me to justify my continued dependence on Microsoft. I’ve spent nears telling myself that “it’s OK, I can just port these apps to Mono and it will all be good.”
The reality is, that even now, porting apps from Windows to Mono can be painful, and their are many technologies (MSMQ, WCF, EF, WPF, MVC, L2S, etc.) that do not run on mono, but constantly tempt you on windows.
I’ve finally told myself enough is enough and I’m forcing myself to learn Scala. After that I’m forcing myself to learn Elrang. I already know Perl and Python very well, and am fairly familiar with Ruby.
You know what? I don’t see any reason why I can’t be as productive using those languages (amongst others) as I am using .NET, and I won’t have that crutch anymore.
I wish you guys the best of luck going forward. I don’t think what you are doing is wrong. I think you should continue to make mono the best you can, I just don’t think it’s the right platform for me anymore and many other seem to feel the same. There’s nothing wrong with that, we’re just not willing to make the same compromises.
Bryan
@rel
Python is already modern enough, and most developers do prefer it to Mono at this point. Mono is not *that* big a player.
It’s mostly a matter of educating the “new” developers (among whom Mono is gathering momentum).
Foo B., as a developer I can tell you that you’re dead wrong, and all you would have to do is ask the people who write applications whether this is true.
There is a world of difference between Python and C#. Yes, Google loves Python (I’ve worked for them) but they don’t use it to write desktop apps. Static typing is a must.
The release of Gnote caused the reduction of start up time required for tom boy … now thats a by product of mono hate…
@Foo B
It’s quite a reasonable argument you make, but it’s not about new developers.
I’ve been using .NET since it was a technology preview. I was using Python before .NET, and I still using IronPython for some automation scripts… I choose to use C# because I have a lot of time and code invested in it. My company has a lot of time and code invested in C#… Mono therefore is compelling. This isn’t a hobby. I don’t need reeducated (although I know you didn’t mean it unkindly).
@Dave
This depends on the application & programmer.
We have 2 good contenders to challenge Mono:
1) Python + $GUI_LIB (dynamic typing, fast development of “backend” stuff)
2) C++ Qt: statically typed & fast.
#1 is a good choice for small scale hobby development, #2 for big end user apps. Mono falls somewhere in between, but I doubt Mono development is faster than #2 to significant extent.
Yes, I’m a developer too, so patronizing attitude is unnecessary.
@Guy
I indeed meant education of new developers – long time developers will know about the options already, and make their choices based on real knowledge of the factors at play.
Foo B., sorry, I didn’t mean to sound patronizing. 99% of the time, when someone says to me “you should have written GNOME Do in python instead of C#”, they’ve never written a C# program, and never written a python script longer that 100 lines or so
I wrote another blog post a year or two ago where I mention why I chose C# over Python. I do think Mono is a direct competitor with option 2 (C++ Qt). Yes, it runs on a VM, but it has a sophisticated JIT and C# is arguably saner and faster to develop than C++.
@Dave,
Qt C++ development is quite like Java/C# development – very quick & concise, and all the classes have the methods the developers have come to expect (as opposed to stdlib stuff, which only provides the minimum you need to get by). The memory management ceased to be a drag as well. It basically resurrected my faith in C++, for a long time I was “sold” about vm-driven langs killing it any day now.
@Dave
I have been looking at D and I think that would be a great language for fast Gnome applications. A real compiler, C like language with OOP constructs and doesn’t make your head hurt like C++. It does have garbage collection in a background thread but other than that is like a sane version of C++. Understandable when you consider the man behind it has written way too many C++ compilers and Java compilers.
It is sad that the D people seem to live in Windows so it is not well known in Linux.
I like the intent of this blog post although it seems to be lost in all the rhetoric.
Take care fellow programmer.
Embrace, Extended, Extinguish.
How soon they forget..
@Bjorn
The big advantage of C++ over D & likes is that it’s a well established & optimized language with a solid implementation. Gnome crew would be shooting itself in the foot by choosing yet another “oddball” platform (to complement C+GObject, Vala, Javascript…
.
The search for mono replacement should perhaps start by collecting examples doing the same things in C#, Qt C++, Gtkmm, PyGtk,C, …
Then, we could compare real code instead flailing around guided by our prejudices alone.
Mono is the future.
Lets embrace it.
DONT FEAR THE FUTURE!
MIGUEL ICAZA IS A GENIUS!!!
We already had an initiative at https://launchpad.net/mononono which has as goal to try to collect all concerns with Mono, discuss them and find a solution for them.
Please not we’re not anti-Mono, personally I hate everything that’s fundamentalism, religious or digital. However, there are some problems and whether they are real or imagined, they should be dealt with so the community can get some rest and focus on things that do matter.
Wow. There sure is a lot of blather about something that’s pretty straight-forward. Good job David. Keep up the good work.
@Sense Hofsted
I think this is the right step. But maybe we should digg deeper.
If we understand the common main goal or goal hierarchy of Ubuntu than it is easier to discuss parts of Ubuntu e.g. Mono. As community you have to pull together in one direction and not in different ones. We should check from time to time if the mission statement of Ubuntu is understood by the community members. So everyone can decide if he/she really wants to support this mission statement or better has a look for another distribution.
I think Vala is a good alternative to Mono.
What do you think?
Vala is great, but it’s only a language with a very buggy source-to-source compiler (Vala -> C with GObject) at the moment, as far as I’ve heard.
Mono is a well-documentation framework, a well-organized, well-defined project with roadmaps, a debugger, an IDE, etc. Vala is a great start and can be compared to C#, but Vala cannot yet be compared to Mono.
I’d love to chat about why you chose Mono for an article I’m doing for LinuxPlanet.com
using mono is only furthering ms interests. Richard Stallman will be seen in the future to have been right. It will of course be too late by then. To bad for Linux. Thank God for KDE…
That’s such a great post. I like the fact that the mono community doesn’t reply in the same aggressive childish way they is facing from the anti mono community. Keep up the good work!
Vala is a possible alternative to Mono. I like that it’s a C#-like language with C-like performance.
But seriously FFS there is no point to removing Mono. It’s a open source RAD development framework with good performance! It’s not like Vala which is new, it’s got a large base of professionals already versed in it’s development practices. It’s sheer existence encourages Linux development. It’s a very good thing ™.
IMO if we ignore Mono we hurt the Linux desktop.
My suggestion:
Switch to KDE and Kubuntu.
If enough people are seen to be switching because of Mono, it will be dropped.
Hey David,
I think you might want to make a post (when you have time and your fingers stop bleeding from Paper Cuts) on why you like C#. I’m about to learn C# for my CS degree here in Canada and it seems to be of significant debate to the FOSS community so I think many people, including myself would be interested in hearing what you have to say.
Also, I read that you worked for IdeaLab and now you’re working for Canonical, but above you also said you did some Python programming for Google. Your work background sounds pretty extensive, mind making a post or a quick comment on it?
Best of luck to you at Canonical! Hope your dream of Banshee becoming the default audio player comes true too!
“Interview stakeholders. Figure out why developers like me are using Mono; I love Mono and would be happy to tell you why.”
I would like to know why, as a developer who is considering Mono but tends to prefer to stick to more established, long-tested platforms, for futureproofing.
(I really should get around to writing my ‘version of make which actually works correcly for complex projects, like PROLOG does’, though. It’s hilariously absurd that nobody has done this correctly in *any* of these postmodern development environments — I guess nobody studies PROLOG any more)
Why? Could you point us to some such explanations?
Brett, you’ve summed up my career — I interned for Google working on Google Talk, and worked for Idealab for a year and a summer, and now am at Canonical.
Brett, Nathaneal, I have another post on this blog about the decision to use Mono. I decided on it by a process of elimination, after exploring writing Gtk+ apps in C, Python, Vala, Java, Boo, Haskell, Clojure, and OCaml. I am kind of a PL weenie and I know many languages, so I implemented basic Gtk+ examples in most of those languages (the ones that had Gtk+ bindings in a reasonable state) and found that C# on Mono gave me a statically typed language, pretty good performance, tons of support, preexisting applications to learn from, well maintained documentation, bindings, and libraries, and published books on .NET/C#/Mono.
At first, I viewed C# as merely a better version of Java and became a bit bored with the language about a year and a half ago. I started writing a lot of Haskell, and C# just didn’t seem fun enough to warrant coding in my spare time. After C# 3.0 came out, I fell in LOVE with the language — LINQ, lambdas, and type inference made it really easy to do the kind of higher-order programming I thoroughly enjoy. Microsoft Research employs a group of really brainy PL researchers like Eric Meijer and Simon-Peyton Jones, so a lot of functional features from languages like F# and Haskell are making their way into successive generations of C#. It really is a cutting-edge language in mainstream language clothing
The reason I use Mono is because it combines a safe high-level language with low-level features, C interoperability, good development tools, and bindings to all the standard open source libraries. Oh, and Mono has a large developer and user community, in part because of its overlap with .NET
The only language that even comes close right now is “D”, but “D” is a niche language with a small community. Another platform that might replace Mono is LLVM, but that, too, is a long way off.
I have yet to see a convincing legal argument against Mono. All the claims of patent threats seem like FUD to me.
More importantly, anybody wanting to replace Mono with something else needs to go further than merely providing a better technology: they need to come up with a reasonable strategy to make that language mainstream.
Another reason to avoid any closed-source SDK: If the SDK changes features and your software will not build on the newer SDK version, you may have to re-write the portion of your software that depends on the broken SDK.
This happened to me when MS stopped supporting and dropped MS Macro Language in Excel for Visual Basic. Apparently MS had Excel stop supporting macros to force developers to upgrade. My project didn’t have the funding to re-write, so the thousands of lines of code became useless with little warning. After 2 years, MS began supporting macros again, but by then, the project (and business) was dust. If this had been an open-source language, I could have forked the project, if only locally. Live and learn: I won’t depend on closed-source SDKs again.
Please, the question about patents is ok (at least theoretically possible or may be not I dont know).
But if you tell Mono a Closed Source SDK, you have absolutely no plan what it is.
And I think what poeple really like is C#. And the “plain” approach –> a Language of your flavor, a compiler, and the CLI. You don’t need anything more.
Mono is just a framwork build on top of it.
There arent much languages out there which can really be compared to it (to be honest, I like the new version of java). But C++ and Python and completly different.
But JAVA was to restrictive in the past (my opionion).
Trackbacks/Pingbacks (3)
[...] David Siegel, a Canonical employee and the man behind the incredibly useful GNOME Do (a QuickSilver-alike written in C#), writes a great article about five straightforward steps to get rid of Mono. You can read David’s article at http://blog.davebsd.com/2009/06/28/five-steps-to-vanquish-mono/. [...]
[...] http://blog.davebsd.com/2009/06/28/five-steps-to-vanquish-mono/ [...]
[...] http://blog.davebsd.com/2009/06/28/five-steps-to-vanquish-mono/ [...]