mono: linux + ms
By anders pearson 30 Jan 2002
if nothing else, i’ve been going to lots of good lectures lately. i just got back by a talk that Miguel De Icaza gave at columbia.
Miguel is the founder of the GNOME foundation, founder of ximian, author of Gnumeric, and, most recently, founder and lead developer of the mono project which aims to create an open-source implementation of microsoft’s .NET architecture.
mono was the focus of miguel’s talk since that’s what he’s been doing for the last few months. microsoft has done a really poor job of explaining in non-marketing hype terms exactly what .NET is, so i was quite pleased when miguel explained it in a fairly straightforward manner. .NET is basically an application framework that aims to be an improvement on the existing windows COM object model. it’s got a bunch of new features, aims to be platform independent, network aware, and does your dishes for you too but all that is less important. what’s important, at least from miguel (and GNOME’s) point of view, is that it lets you reuse software components between programs and communicate between programs easily. .NET is composed of a virtual machine (similar to java’s), an object oriented, platform independent programming language (C#, which is almost like java), a large standard class library (kind of like java’s), an intermediate bytecode language (CIL, which is kind of like java bytecode), a just in time (JIT) compiler, an interpreter and a set of developer tools. basically, microsoft spent a lot of time studying java’s strengths and weaknesses and then took as many of the good ideas from java as they could and came up with improvements for the bad parts and made a framework out of it. since microsoft has a history of similar “innovation”, this isn’t much of a surprise. however, in this case, it looks like they did a pretty good job with the design at least.
the talk was wonderfully technical. he went into great detail on the C# compiler and JIT compiler that he and 4 other full-time developers plus about 40 part-time contributors have written in the last 6 months or so. issues like compiler optimizations, garbage collection, thread handling and IO libraries were fully discussed.
the highlight of the talk was when someone in the audience asked how such a small group of people managed to implement a working compiler, JIT, and about 900 of the 3500 classes in the library on 3 different platforms in just a couple months when it took Sun many years with many more programmers to do the same for java and microsoft has already spent a few years doing the same work with their army of programmers. miguel’s modest response: “because, we’re Coding Gods.”