As you most likely already know, Mono is a project (owned by Novell) to develop implementations of .NET on a variety of operating systems including Linux, Solaris, and OS X. It is for the most part a "clean-room" effort, using no inner knowledge of Microsoft's original .NET code. It's made impressive strides over the year, and has reached the point where Mono will run .NET binaries created with Visual Studio, as well as its own native binaries, and covers a wide breadth of .NET APIs.
On the legal front, Microsoft and Novell have signed agreements to work together on some parts of Mono, and Novell and Microsoft have various other agreements in place. The Mono contributors have also pointed to the published ECMA specs for C# as the basis for their work, and have consistently said they remain ready to rewrite any portion of Mono that Microsoft should some day assert claims against (so far, there have been no such claims).
Despite all of this, Mono seems to still be a marginal player in the open source world. A search of SourceForge, for example, reveals less than 400 projects mentioning Mono, and C# projects (on whatever infrastructure) are vastly outnumbered by others. For whatever reason, the open source community has not widely embraced C# - whether this is due to its Microsoft roots, worries that Microsoft's murky IP policies will someday make Mono an untenable platform, or for other reasons.
What about you? Have you considered moving any of your own open source work to C# to take advantage of Mono's features and cross-platform nature? Or is this a piece of infrastructure that you personally do not care to touch?
Comments
Add CommentBy on Mar. 17, 2008
Most people developing using C# are probably already writing for windows alone. If you truly wanted your apps to run on multiple platforms natively, you would look into this, but I'd imagine this is a small number....
If you wanted wider availability, for the conumer market, you would probably go with a web-based solution anyway.
I have written plugins in C#. They've almost always been written with windows in mind. Running on the mac or on Solaris/SUSE has never been a consideration.
By on Mar. 18, 2008
Well, this sounds like two separate questions: one, what has merit, two, what people are actually doing. Just because someone isn't using something doesn't mean it doesn't have merit. I'd like to see more developers embracing Java for open source, particularly on Linux -- there, as here, the reasons are largely historical, in that it took so long to get open tools available and workable on the platform.
But, oh, yeah -- about Java. My strong preference would be for Java over Mono: a bigger community, a more mature platform, more free and open projects, and more free and open libraries -- particularly for multimedia / rich client support. Java has problems of its own, but because I care about rich media and 3D support, for now it wins out.
That's a choice, though. And having this additional choice I think is good.
By on Mar. 18, 2008
The "mono community" is also the C# community, which is non-trivial and arguably more vital than the Java community at the moment.
Mono is certainly relevant. See: Second Life.
Mono stopped being a "clean room" implementation since Microsoft did a deal with Novell and open-source the .NET framework.
Search SourceForge is not a good way to determine the relevance of a given platform. It's lazy, if anything.
Jeffrey McManus
http://blog.jeffreymcmanus.com/
By on Mar. 18, 2008
Jeffrey McManus: Mono is still a clean room implementation. The Microsoft/Novell deal did not change Mono Project's policies.
See :http://www.mono-project.com/Contributing#Important_Rules
http://www.mono-project.com/FAQ:_Licensing#With_the_new_Novell.2FMicroso...
By on Mar. 18, 2008
My above link wasn't parsed for some reason, so for the convenience of readers her it is again:
http://www.mono-project.com/Contributing#Important_Rules
By on Mar. 20, 2008
I'd prefer Java too, but for my full support, Sun will need to:
1) Fix the generics implementation to NOT be the slow/broken/weak erasure system it is today.
2) Add stuff like pass by reference and properties.
3) Fix double checked locks so that thread safety can be guaranteed from the specification.
Optionally, it would be nice to see a native "decimal" equivalent.
By on Mar. 20, 2008
Until then, I will continue to support C# on Linux via mono.
Share Your Comments
Trackback URL
http://ostatic.com/trackback/158588