Monthly Archives: February 2005

First impressions of Mono/C#

For a taste of something new I’ve recently been learning about Mono, an open source development platform which currently implements C# and a large part of .NET.

My first impressions of the language is that it’s a nice mix of the features of C, C++, and Java, with a decent standard library. Turns out that being forcefed Java at uni might actually be semi-useful here, as there are many close similarities with C#.
As well as having a lot in common with “older” languages, Mono/C# brings some new things such as properties (convenient accessor/mutator methods), and the entire environment is object oriented. There’s also a nice central documentation browser (monodoc) which is easily searchable and well structured, and even has collaboration features where you can edit the content and submit your changes for inclusion in later Mono releases. Best of all its open source and benefits greatly from the community surrounding such things. For such a young project, I’d say Mono has matured very quickly.

monodoc - The Mono documentation browser

My only complaints so far is that quite a bit of documentation is missing, and the memory footprint gets a bit out of hand (although this is greatly improved in the development releases).

Mono is being used to develop quite a few exciting desktop applications, such as Beagle, F-spot, Tomboy and Muine. Interestingly, Novell seem to be a major player behind Mono and software based upon it, and they seem to be very friendly and approachable about development of their projects. More on them some other time, I’ve got some beagle bugs I’d like to solve :)