The Mono Project: You Might Expect the Unexpected

Back in February, Ralph Green asked me to speak at the North Texas Linux Users' Group. I discussed Linux administration and then took questions. Some one in the audience asked me about Mono. I gave a cavalier answer having a bias against it. Then someone else in the audience said that I needed to get my facts straight.

So, I asked him to elaborate and he did in an intelligent and enlightening way. He explained that he had a day job as a .NET developer and that's how he made his living. He worked in the evenings porting projects from one platform to the other. I found him convincing as did most of the LUG members in attendance.

Even so, I still left with a bias.

You can probably guess what happened next. I wound up with my foot in my mouth working on setting up a Sourceforge style hosting environment for a client. The only free Open Source project I could find had a BSD license. The project is SharpForge And you got it, the author wrote the project in C#.

That's about the time I had to look deeper into MonoDev, an IDE that reminds me of Visual Studio. I also researched Mono looking for people's comments in various Open Source forums and community mailing lists. I saw some negative comments, but I saw more positive ones and I saw plenty of new projects programmed in .NET.

Maybe people have a positive attitude in general about Mono because the code can run on Linux, FreeBSD, UNIX, Mac OS X, Solaris and Windows.

More Investigation

I decided to join the SharpForge project to investigate this Mono thing further. Now I'm coding again - only instead of using C, I'm using C#. That's OK with me at the moment since I'm learning and having fun. Joining an Open Source project always feels satisfying to me. But, I'm wondering if my bias will re-emerge. Here's a run down on the bias:

When Miguel de Icaza began touting .NET technology in late 2000, I immediately considered him a traitor. He was the recipient of the Free Software Foundation's Award for the Advancement of Free Software in 1999 for his work on GNU Network Object Model Environment (GNOME) - the Windows-like desktop environment. Then FSF kicked him out for failing to adhere to the policy of referring to the Linux operating system as GNU/Linux and referencing it that way in any interviews that he gave.

As I have researched C# I found that Miguel has some legitimate intentions. Legend has it that the Mono project began when Miguel looked at the byte code interpreter and found no specifications for the metadata. In February 2001, Miguel looked for the metadata file format by going on .NET mailing lists. He must have gotten enough information because he began to work on a C# compiler.

In April 2001, Emca (formerly European Computer Manufacturers Association) published the missing file format, and at the Gnome User's Conference in April, 2001 Miguel demonstrated his compiler.

I have not read or heard any negative comments about Miguel or .NET in Linux from the informed community. To the contrary, people who understand the technology and what Miguel has accomplished hold him and the project in high esteem. That says more than enough for me.

Where are We Headed?

This may sound pessimistic, but I have seen so many Open Source advocates start projects that thought they had the next Microsoft killer. But, the vast majority started with enthusiasm and haven't touched their code out on Sourceforge for years. So, Kudos to Miguel and his support system at Novell. Almost eight years have passed and the project continues its progress and innovative development.

You may know it or not, but .NET applications are probably running on your Gnome desktop right now. Do you use Beagle, F-Spot, Tomboy. Banshee, SkyNet. Maemo, NUnit and so forth. Then you're using Mono applications.

Do I know where we're heading? No. But, the Open Source community is expanding exponentially because developers from various platforms have started working together. If you rather align with Red Hat, the biggest Linux company according to them, they have a $400 million investment in JBoss, a Java centric technology.

We're in the early stages of digital convergence and people want cross platform compatibilities. If we can use a tool to achieve cross platform compatibility I'm for it.

For those readers who have a bias toward Mono, I understand. I mean, I feel your pain. In the mean time, it might help to get off it and take a real look at what Miguel and his development team have accomplish. Download MonoDev and grab the source code to SharpForge. It's all free and it's all good

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Nice article i visit this

Thermage's picture

Nice article i visit this site first time and i really happy for visit the site thank u

Project

Sarkari naukri's picture

I don't use Gnome, I've always preferred KDE. And while Mono may be a great project, I seriously question the judgement of someone who has been quoted as saying, "OOXML is a good standard." Besides, we haven't really seen what Microsoft has decided to do with its .Net platform yet anyway... I'll take my Linux in a purer state, thanks Sarkari Naukri

That is Right

Full Oyun Oyna's picture

hello that right man that is right ı agree have a nice day by uçak oyunları

hi my brothers real love is not sretresing it is so good man ıf you live like a real man by dailymotion videoları

hi man ı dont thınk so your ideas have a nice day by trt1 sınıf 2010 dizisi full izle

hello man that's right ı agree 3d araba oyunları

hello man that's right ı agree by gönülden sevenler

healts

SaglikDostu's picture

Thank You ! ..

www.saglikdostu.net

Software Development

irishpoetry's picture

I was very encouraged to find this site. I wanted to thank you for this special read. I definitely savored every little bit of it including all the comments and I have you bookmarked to check out new stuff you post.

irishpoetry

MONEY TALKS

accident claims's picture

Lets be fair the free software community is never going to be able to compete with the product quality of professioanl business because for obvious reasons they haven't got the money to throw into projects.

mkm

mkm's picture

Récupération de données

récupération de données's picture

Thank you for all the information. I am a newbie on Linux platform and this article helps me.

Microsoft and Lunux....

Sarkari Naukri's picture

What is funny of all I'd say is to expect Microsoft to play fair. The fact is that a majority of users are not aware of the open source movement, and a majority of developers and other IT related professionals are still not really interested in the open source movement. So all stay in darkness. And both Linux and Microsoft will not make anything free! Even their lately developed signature verificator is so unaffordable to most...

????

Anonymous's picture

I don't intend to sound annoying, but be aware that Microsoft gave Novell 'protection' for Mono (lasting 5 years) and explicitly excluded it from the Xandros and Linspire contracts. I haven't faith in Microsoft's plans for Mono. It can pull the rug at any time by changing licences (at the least).

Start Forex & CFD trading

Anonymous's picture

Start Forex & CFD trading online with LEADER FOREX. Regulated & Licensed, Real-Time Execution, 24HR Trader Support, Low Fixed Spreads, Commission Free, 200:1 Leverage. http://www.leaderforex.com/

Goodd

film indir's picture

Novell has shown itself to be more than willing to cooperate with MS at the expense of the free software community.

I have to agree I share the

lightbulb's picture

I have to agree I share the same bias but know what mono can do I've started to look into it myself and already starting to feel moved that way!

some things to clarify

Anonymous's picture

This IDE will get its users their class information from the source files and also from the libraries or other references.

I can't fully grasp the ideas

Anonymous's picture

I can't fully grasp the ideas. Anyway, what I understand from all of these things are the main points that Mono provides a class view which allows users to list properties, projects, and methods.

A software development system

Anonymous's picture

This article is quite vague, I think the writer has to use some layman's term. Anyway, I search some of those hifalutin terms until I have a full grasp (but still not enough) of some things.

Portable.NET is a decent

kevinsend's picture

Portable.NET is a decent project if you like the whole C# world. Their major problems as compared to Mono are completeness and execution speed. That isn't to say the p.net is bad, or not progressing nicely but when you get into a moderate sized programming project you may find it doesn't have enough there.

I certainly learned C# on p.net, it was easier to get running than Mono, certainly for the gui stuff. The dev team was much more responsive, and it seemed like it had made many more sane fundamental choices. I did however encounter various pieces of simple functionality that did not work correctly, implementations of functions that no one could have ever tested. p.net seems more like "an assortment of people programming for fun" sort of effort, while Mono has very focused goals.

Kevin Sender

hi

hikaye's picture

I agree, but it will take sometime before it is accepted. The already established ones are easy to use. So, this one definitely will take time.

Great

facilities manager jobs's picture

Great site thanks very much!

I used to like novell.

felsefe's picture

I used to like novell. Hopefully there will be other alternative development systems and mono can go in the can.
Regards,
edebiyat

I agree, but it will take

Althaf's picture

I agree, but it will take sometime before it is accepted. The already established ones are easy to use. So, this one definitely will take time.

Mono is good but...

DMA's picture

Two years ago we (a UK government agency) decided to redevelop our software using open source technology not dependent on the whims of a single company. We considered Mono but rejected it, not because it was bad or a 'betrayal' of notional open source values, but because it was inherently weakened by the historical behaviour of .NET's creator - Microsoft.

That Mono was backed by an ECMA standard was irrelevant - another poster (jeffcob) has already asked:

"what is the value of a standard when Microsoft has already
said that if it decides business needs dictate they deviate
from the last "standard" they submitted to Emca[sic], they
will, instantly negating the value of a standard?"

We settled on Java and, despite concerns over taking Sun's tools, it was quickly proved a better decision. Sun released Java under the GPL, while Microsoft, in its bizarre drive to ram OOXML into the market, subverted the ECMA and damaged ISO's ability to function (see here for why).

Mono is excellent technology, and Miguel de Icaza deserves every bit of credit he gets. It is sad that all the good work could be undone overnight if a certain company decides it wants to deviate .NET (a company with a history of doing exactly that).

D

As Usual -

Anonymous's picture

You are saying something like "everything that I do not use and related to MS is a piece of crap. PERIOD! .................................... ................ .............. But wait, I need to use it now and guess what? I actually am wrong earlier, this is really god send .. yada yada yada ..... ... .... .... ................. ............."

This sounds like -
open source is about freedom of choice ,
but trust us , you shouldn't have too much choice as it will confuse you ,
so we've build GNOME so simple and hide everything that no one needs to know how to make changes even if they need/want to ,
and this model is proven in the free market (read MS) that is worth billions.

This is the best piece of crap that I've read !

Thank's

Alex Bromberg's picture

Thank you for this story.

wake up

Joan of Arc's picture

Anyone who expects Microsoft to play nice in the worlds of open source and open standards is hopelessly naive and ignorant of almost 30 years of consistently hostile behavior. The sabre rattling over Linux IP and the pathetic attempt to buy votes on the OOXML decision are only the latest examples:

"An employee at Microsoft's Swedish subsidiary offered to pay partners to vote to approve the Office Open XML document format as an ISO standard, the company admitted Wednesday"

http://computerworld.com.my/ShowPage.aspx?pagetype=2&articleid=6155&pubi...

To say that Mono has nothing to do with MS is silly; it's an open source implementation of .net, a Microsoft technology. .net itself is Microsoft's lame attempt to have their own Java.

What could be worse than helping MS make its code a cross-platform standard? And more importantly, how can open source ever offer a BETTER (not just free) alternative to Microsoft code if its applications have the same technical underpinnings?

more naive

James Little's picture

I'd say what is more naive than expecting Microsoft to play fair, is to expect Microsoft products to vanish is the open source community roles over and plays dead. The fact of the matter is that a majority of users are not aware of the open source movement, and a majority of developers and other IT related professionals are still not really interested in the open source movement.

Mono and other similar technology provide developers, previously uninterested in the open source community, a community that is open. From my experience, once professionals have experienced the difference, they become advocates that extend the community. It is much easier to show people solutions that are similar to what they currently do, than it is to show people a completely new way of thinking.

Corporations play the same way, Microsoft has noticed the open source movement as more than a passing fad. It is competition for almost every aspect of their business, so they are starting to get involved.

nice very

Anonymous's picture

The main problem with linux is that it's so hard to get people who are comfortable with their usual

Last time I checked, Mono was a disease

Anonymous's picture

I don't use Gnome, I've always preferred KDE. And while Mono may be a great project, I seriously question the judgement of someone who has been quoted as saying, "OOXML is a good standard." Besides, we haven't really seen what Microsoft has decided to do with its .Net platform yet anyway... I'll take my Linux in a purer state, thanks.

You never bothered to check

tracyanne's picture

Last time I checked, Mono was a disease

You never bothered to check, if you had you would know that Mono is a Free software, licensed under the GPL (LGPL), and it no more a "disease" than the dual licensed QT libraries that are the core of KDE.

lol

Anonymous's picture

Develop a sense of humor already. :) In accordance with the author's remarks, I still have the bias against Mono, mainly because it's built on M$-based technology. Miguel de Icaza may be an incredibly smart guy, but the fact that he and Novell, the company he works for is allied with M$, I'll probably be biased against it until I'm dead. Free or not, I will not run Mono. I will do my best to not support companies that don't support free software, or support it simply to embrace, extend, and extinguish it, or ally with those who would.

How open do you have to be?

MidnightDragon's picture

As I remember it, Mono was an attempt to hold MS to their statements that the .NET runtime and specs were to be non-closed. If what they had said was true they should have no problem with someone building a functional equivalent cross-platform implementation. They also should not hinder that effort.

I think the Mono team partly wanted to test this, which I think it a very good thing to do. How can this be viewed negatively? The only way I see is if you think the very fact that MS originated the CLR and C# taints them for all time.

The success of Mono allows much software now being written for .NET to be enjoyed by a much wider audience. How can that be bad?

sharpforge?

Patches and Hacks's picture

Sharpforge is not the only open source project that can be used to create a Sourceforge style hosting environment..Savane and Gforge and just another two that can do the same thing and both are under an open source license (GPL). Savane is actually the project that sourcefoge is based on.

I forgot to mention that

Patches and Hacks's picture

I forgot to mention that neither Savane or Gforge require mono, so don't add just another VM to your system for this.
And the fact that Miguel bundled mono with gnome is similar to what they do when they bundle adware and spyware with free stuff.

arrant nonesense

tracyanne's picture

.And the fact that Miguel bundled mono with gnome is similar to what they do when they bundle adware and spyware with free stuff.

Mono is a Free Open Source Project licensed under the GPL (LGPL), it has nothing in common with adware and spyware. You really have no idea what you are talking about.

For the mono supporter

jeffcobb's picture

I would like to approach mono with an open mind. Conceptually, having a non-patent-encumbered cross platform application development framework is a great idea. I make my living writing cross-platform code and the easier this job is made, the better things I can write since I can spend less time worrying about the low-level details and concentrate on the application.

However, to use Mono in anything will take some serious convincing. I like others are concerned about using Microsoft IP in Linux or any free system. The Mono supporters point to it being a standard of some-sort with the Emca and therefore it is somehow safe. To that I ask, what is the value of a standard when Microsoft has already said that if it decides business needs dictate they deviate from the last "standard" they submitted to Emca, they will, instantly negating the value of a standard?

And on the topic of IP,you claim that there is no encumbered IP in Mono but to be blunt, we have only your word on that. The problem you have to overcome is three-fold:
1. Microsoft claims there is MS IP in Linux and related software but refuses to specify what it is.
2. Microsoft through Miguel and other bought folks at Novell are pushing Mono and related technologies into the heart of Linux via things like Moonlight, thus even if there are no lines of code, there are still methods and concepts and even though we all know that is horse-hockey, that didn't stop SCO from playing that card and if SCO tried it, Microsoft will. Prove that they will not. It doesn't matter if they cannot technically prove the whole method and concept thing, they have enough money to grind all but the largest companies into the dust.
3. More that 2 decades of unrepentant antagonism to open source and open platforms, still on-going to this day.

For these and more reasons I do not run anything with Mono and no, I do not run Samba either. After witnessing decades of bad behaviour from them, I find the trust coming hard. I would love to be wrong though because anything that makes my job easier is a good thing.

But Microsoft has GOT to give some kind of reason/proof they will stop...acting like Microsoft.

Jeff

arrant nonesense

tracyanne's picture

And the fact that Miguel bundled mono with gnome is similar to what they do when they bundle adware and spyware with free stuff.

Mono is a Free Open Source Project licensed under the GPL (LGPL), it has nothing in common with adware and spyware. You really have no idea what you are talking about.

C# troubles are not technical

Bart van Deenen's picture

C# might be the greatest tool ever, but that's not the reason it is being shunned. The problem with C# that it is highly likely being used to stuff Microsoft "IP" into Linux distros. Once that is happened, the protection racket will start up; ask Ballmer.

It's the old Embrace, Extend, Extinguish strategy, currently in Embrace mode. You are like the little fish looking at the juicy worm on the hook. Fortunately a lot of the smart fish (including LJ editor Nick Petreley) see the threat also.
LJ, LJ and infoworld

Not technical

tracyanne's picture

C# might be the greatest tool ever, but that's not the reason it is being shunned. The problem with C# that it is highly likely being used to stuff Microsoft "IP" into Linux distros.

There speaks the voice of ignorance. There is no Microsoft "IP", The C# specification, that is the basis of Mono, is an open specification publicly available through ECMA, there are no "IP" gotchas.

I suppose you also don't use SaMBa, because the core specification for it is SMB/CIFS, which Microsoft uses for it's networking protocol.

Re ECMA

gtdavies's picture

ECMA standards can have patents. The only requirement for an ECMA standard is that the patent holder licenses are RAND: http://www.ecma-international.org/memento/codeofconduct.htm

We come in peace

ricegf's picture

There is no Microsoft "IP"

We come in peace. [zap! zap!] We are your friends. [zap!] There is no Microsoft "IP". [sue! sue!]

(With apologies to "Mars Attacks!")

Brilliant argument, love your facts

Tracyanne's picture

We come in peace. [zap! zap!] We are your friends. [zap!] There is no Microsoft "IP". [sue! sue!]

But that's the level of insight and ignorance I've come to expect. Mono has nothing to do with Microsoft, it's a Free implementation of a publicly available specification, in exactly the same way as SaMBa is a free implementation of a publicly available specification. I suppose to your mind SaMBa is a Microsoft trap too.

zap! zap

jeux video pc's picture

Mono has nothing to do with Microsoft i agree with you

Samba

Steve Stites's picture

"Mono has nothing to do with Microsoft, it's a Free implementation of a publicly available specification, in exactly the same way as SaMBa is a free implementation of a publicly available specification. I suppose to your mind SaMBa is a Microsoft trap too."

Samba is not a Microsoft trap but it is not for want of Microsoft trying. Samba is owned by Jeremy Allison who was working for Novell at the time that the Microsoft-Novell agreement was signed. Part of the agreement was that Microsoft would pay Novell to develop open source software to Microsoft proprietary specifications. Jeremy loudly protested the Microsoft-Novell agreement, quit Novell, and went to work for Google in order to get Samba away from Microsoft's embrace, extend, and extinguish agreement with Novell.

--------------
Steve Stites

My 50 Cents

Roy Schestowitz's picture

I don't intend to sound annoying, but be aware that Microsoft gave Novell 'protection' for Mono (lasting 5 years) and explicitly excluded it from the Xandros and Linspire contracts. I haven't faith in Microsoft's plans for Mono. It can pull the rug at any time by changing licences (at the least).

More like half a cent

tracyanne's picture

I don't intend to sound annoying, but be aware that Microsoft gave Novell 'protection' for Mono (lasting 5 years)

No they didn't. First Mono is a Free Open Source project Licensed under the GPL (LGPL). Second the Microsoft/Novell agreement is about interoperability, and has nothing to do with Mono. Mono wasn't excluded, any more than any other FOSS technology was.

Trusting Microsoft to Not Swindle

Ibinhad Goldfarb's picture

Microsoft will not respect the GPL and have already taken steps to attack it and undermine it, some of which have backfired. The GPL alone will not protect you or your product from Microsoft, though the GPL and some expensive litigation might slow Microsoft down just a bit. (It has been more than two years and that RedHat guy is still eating primo food and not out of a dumpster as planned.)

Contract? Agreement? Microsoft has demonstrated again and again that they cannot be trusted as a business partner and they are more than willing to throw a contract under the bus. Contracts are what Microsoft uses against business partners. Trusting Microsoft to respect and uphold the publicized intent of the Novell agreement is foolish; they already disagree about it. Look at their past performance with other agreements with other business partners. Trusting Microsoft to not infiltrate Linux-based C# technology with actionable intellectual property is also foolish. If they can find a way they will. I'll hate to see good folks get used when (not if) Microsoft swoops in with the lawyers.

There is no moral component to Microsoft. It is a legal fiction whose manifestation in reality is an un-repenting multiply-offending and largely unpunished abusive monopoly. No person should have any expectation that this particular incorporation should behave in any manner than as it has.

The government will not help you. The government will not protect you and your product from Microsoft. Do not expect the government to improve the patent system or copyright law as it applies to software. Microsoft has government action covered between lobbying, WGA and encryption keys for LEA's and other agencies. The government may not punish Microsoft after they crush a company using their monopoly, and the government cannot prevent Microsoft from crushing a company; they only step in once there is a body.

Microsoft is not any more evil then a rattle snake, or a black hole. It is functioning as it has since its inception. Based on its past behavior and trajectory, the skeptics are correct in their advice to decline the invitation to its gravity well and snake den. Microsoft today is just more Microsoft: they innovate with marketing and lawyers. They have gained so much mass and momentum that they soak up technological innovation and crush it, from Companies like Novell which cannot maneuver out of the way. Using C# is moving in closer to get a better look, pet the snake, give it a good squeeze and feel the gravity well. The audience shouts "Stay away! Send a probe! Red Shirt!"

Relax. It's just business. Software has no merit other than solving a problem. Taking it so personally just adds to Ballmer's and Gate's and few other folks' personal enjoyment. Your screams of terror are merely special sauce on the inevitable next meal.

limited mono

Anonymous's picture

5 years is a joke. we no longer use gnome...... I used to like novell. Hopefully there will be other alternative development systems and mono can go in the can.

Alternatives

jt's picture

There are plenty of alternatives, including Java, Python, Ruby, or combination of the same, like Jython.

Forgive me if I am wrong, but from what I understand, Miguel's reasoning about why Mono is beneficial for Linux is as follows:

1) C# is an excellent programing language and environment. Well, I can't argue too much against that. After all choice for one programming language or another is largely a matter of personal preference. Personally, I prefer Python.

2) There are many Windows developers that already know C#, or will soon learn it. So, by making C# available in Linux, they all become Linux developers as well. That may be true to a point. However, I doubt that the mere availability of a familiar language on a different platform is enough motivation for developer to target a different platform that the one he is already targeting. For a competent developer, switching programming languages is not that hard, if the motivation is there.

The problems with C# are many, however. First and foremost, is the fact that MS controls the language. MS could at any time decide to break compatibility with the ECMA specification, in the name of 'innovation', and that would leave Mono out in the cold. They would have to choose between staying true to the ECMA specification, which would eliminate the second benefit described above, or try to stay in sync with MS's implementation which would likely require some form of licensing from MS, which would of course further MS's ends and hurt free software in general. I think it is a given that Mono would chose the latter option since it is already trying to do just that with portions of the C# stack that are not part of the ECMA specification, and because Novell has shown itself to be more than willing to cooperate with MS at the expense of the free software community.

thanks.

kale kapi's picture

2) There are many Windows developers that already know C#, or will soon learn it. So, by making C# available in Linux, they all become Linux developers as well. That may be true to a point. However, I doubt that the mere availability of a familiar language on a different platform is enough motivation for developer to target a different platform that the one he is already targeting. For a competent developer, switching programming languages is not that hard, if the motivation is there.

+1

Webinar
One Click, Universal Protection: Implementing Centralized Security Policies on Linux Systems

As Linux continues to play an ever increasing role in corporate data centers and institutions, ensuring the integrity and protection of these systems must be a priority. With 60% of the world's websites and an increasing share of organization's mission-critical workloads running on Linux, failing to stop malware and other advanced threats on Linux can increasingly impact an organization's reputation and bottom line.

Learn More

Sponsored by Bit9

Webinar
Linux Backup and Recovery Webinar

Most companies incorporate backup procedures for critical data, which can be restored quickly if a loss occurs. However, fewer companies are prepared for catastrophic system failures, in which they lose all data, the entire operating system, applications, settings, patches and more, reducing their system(s) to “bare metal.” After all, before data can be restored to a system, there must be a system to restore it to.

In this one hour webinar, learn how to enhance your existing backup strategies for better disaster recovery preparedness using Storix System Backup Administrator (SBAdmin), a highly flexible bare-metal recovery solution for UNIX and Linux systems.

Learn More

Sponsored by Storix