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.
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