"Mono," the Open Source .NET, Ready for Developers

On the first anniversary of the launch of The Mono Project -- an "Open Source" version of .NET, which is based on C# and will run on Unix/Linux platform -- the technology is ready for developers. Integration Developer News spoke with Mono's creator Miguel de Icaza, who has also spearheaded work on the GNOME open source desktop.

Tags: Mono, Developers, Support, Microsoft, Windows, ECMA, Improving,

with Miguel de Icaza
Creator of Mono (Open Source .NET for Unix/Linux)

by Vance McCarthy
On the first anniversary of the launch of The Mono Project, Mono's creator Miguel de Icaza says the technology is ready for developers to begin working with. Integration Developer News spoke with de Icaza in an indepth conversation to to give developers a sense of where they might begin looking at this an "Open Source" version of .NET, which is based on C# and will run on Unix/Linux platform.

IDN: What's the status of Mono?

de Icaza: Well, the core is pretty much done. Everything, which we said would be done with the ECMA spec some months back has been finished. But Mono goes beyond the ECMA spec. We're also implementing other pieces which offer a log framework, like ASP.NET, ADO.NET, or Windows Forms, enterprise services, web services. So all of that stuff is part of Mono. And on top of that we're also building our own set of class libraries for integration with GNOME.

IDN: So is the Mono JIT (Just-in-Time) compiler also fully complete?

de Icaza: It's complete now. What we're doing now is moving from feature completeness to optimization work. So we're improving the reliability and the speed. So the work in the past few weeks has all been about improving the JIT -- especially the speed of the JIT.

IDN: And this is compared to the native .NET compiler?

de Icaza In some areas we're faster and in some areas we're slower, so faster than .NET is really not the objective. I know that the JIT compiler from Microsoft has room for improvement, and their people are going to be improving it. And, we're doing the same thing with our Mono compiler.

IDN: Can developers get that now and begin to work with it?

de Icaza: The Mono website [http://go-mono.com] has the links to every website. The Mono project only distributes source code, it's not a 1.0 thing. We'll only distribute source code at this point. If you want to get these snapshots, you'll have to get it from volunteers. [The Mono website also offers a link of snapshots, by date, at http://go-mono.com/snapshots/. In addition, Mono patches are available at:

IDN: What kind of response have you got on downloads? What kind of community do you see now that are actually playing with it?

de Icaza: No, I don't know, I've never tracked the downloads. It's a good question - the first time it's been asked. It's hard to track because we have a bunch of mirrors. The binaries are not actually hosted by Ximian, but are hosted by third parties so that makes it hard to track. We have a non-CVS server, so people checking out the non-CVS code don't even reach or touch our server.

IDN: So you don't have an idea at all how big the Mono user universe really is?

de Icaza: No. The only thing I know for sure is that we have a hundred developers, including those from Ximian, but that's all I know.

IDN: Tell us about that, the kind of grass-roots support you've gotten for Mono over the course of your first year?

de Icaza: Well, Mono has the advantage over other Open Source projects. It's very clear what we're doing. It's a very large task and it's also clear what they [developers] have to do. Mono is very easy to partition; it's easy to focus on a piece, so you can work individually on one piece of the equation without knowing what anyone else is doing. So I think that's what makes approaching Mono easy.

IDN: What do Mono developers tend to focus on in their development?

de Icaza: A lot of these people focus on implementing classes. Everything in .NET is a class. So you have a large collection of classes, maybe seven-hundred classes, So we have large collections of classes for ASP.NET, ADO.NET, Windows Forms, gtk# [(gtk# is based on GTK+, a multi-platform GNU Project toolkit for creating GUIs, offering a complete set of widgets.] and so on. So doing classes is really easy to jump into the project.
For longer term development, Ximian is actually financing that. We have five developers and two interns working full-time on that, and they do things like compilers, noting problems like increasing speed, building out the ASP.NET infrastructure. So anything that requires a larger time commitment are things that Ximian is doing, and those things that can be approached by people on the weekend or in their spare time is left to the community.

IDN: You mentioned the JIT compiler is complete. Is that part of Mono's Virtual Execution System (VES)? And what is the status of the VES?

de Icaza: Yes, the JIT compiler is a piece of the VES, and the VES has a number of components. The most complex is the JIT engine. Then, there is the Garbage Collector, the Security System, the Loader, the Verifier, the Threading System. The most complex is the JIT engine, and now that we're done with that we should say that VES is pretty much complete.

IDN:: Oh, very good. So all of the VES is all complete.

de Icaza: Everything in the ECMA spec is there.

IDN: So, what is there left for the Mono project to work on, to provide developers with a working framework for them to begin working with web services using Mono?

de Icaza: Lots of classes outside of the ECMA spec. As I said, the ECMA core is done, so we want to do some other things. There is always room for optimization, for improving the reliability, the performance, improving memory usage, so there's a lot of work in improving things. So, like where Linux 1.0 was pretty good, Linux 2.0 was all about improving the speed, scheduling, and that sort of thing. So there's a lot of work in the existing code, and a lot of work in new code to be done.
There's a lot of work in new things that haven't been done, like program implementation. But these things will be done by Mono Espano people.

IDN: Mono Espano?

de Icaza: Mono Espano is a community of Mono developers in Spain.

IDN: Really. That's very interesting.

de Icaza: Language is always a barrier, so what is interesting about this is that we've spun off a community that is based around Spanish. They contribute but they do not interact with the rest of the Mono team of databases because of language issues. So it's interesting. They have their own tutorials. The Mono team doesn't have tutorials, but the Mono Spanish people have five tutorials already for different pieces of Mono. It's a very strong part of their work.

IDN: On that point, given the different language backgrounds and technology backgrounds that are reflected in the 100 or so developers now working on Mono worldwide, is there a coordinating influence to bring together these different international Mono developers?

de Icaza: We started from zero, so we had to build things. And, we had to prioritize the things that needed to be done first. Now that the Mono project has reached a little maturity it's a lot easier for people to move into their own thing.
At the beginning, we had a bottleneck. We wanted to get some things out first, so we could enable a lot of things to happen afterwards. So now the bottleneck has been solved and now people can pretty much do whatever they feel like doing.

IDN: Are you getting any flavor for the kind of initial projects people are trying to build with Mono?

de Icaza: Ah! Too many. People are doing audio, desktop applications, gtk# new GUI things. We have a photo management application now called I-photo, and I'm actually writing a new widget for that thing.

IDN: Now are these Linux or GNOME driven?

de Icaza: The GUI stuff is mostly GNOME-driven.

IDN: So, what would that mean to a traditional developer in a large corporate enterprise who may not be supporting GNOME?

de Icaza: For those people, we'd support Windows Forms because that's what's required with Microsoft .NET. But for our purpose of advancing GNOME, and giving us a better platform to develop GNOME applications we really care about gtk#.
But for people in the enterprise who want to move their applications from Windows to Linux, o.r want to plug in a vertical application that they've built, you want to have Windows Forms for ASP.NET
IDN: From some of your earlier comments at the OSCON (O'Reilly Open Source Conference), you're not real happy with Windows Forms?
de Icaza: . Well, it's not a great toolkit. I guess it's OK if you're just doing VB or VB-like applications, but it's not something you would base Gnumeric [spreadsheet] or Open Office on. Windows Forms is ok for very small applications. But it's a little toolkit. Microsoft realizes that they're building a new version.

IDN: So Mono will support the new version of Windows Forms?

de Icaza: Whenever it's specified, and it comes out -- which should be in 2 or 3 years. They just came out with Windows Forms, and it's got to take them some time to upgrade it. But I don't know exactly, there's no official statement from Microsoft, so there's no plans at Mono right now.

IDN: Is Mono getting any corporate support these days?

de Icaza: Intel is interested in contributing a GC (Garbage Collection), it's a high-performance GC system that's going to be used for server but we're not using it right now. And there's a number of companies that are interested in pieces of Mono, using Mono to really play things in Linux.

IDN: Now why is Intel interested in supporting Mono?

de Icaza: You should really talk to them because anything I say is mere speculation on my part.***

IDN: So Intel hasn't shared with you exactly what they'd like to see in Mono?

de Icaza: They have a bunch of research projects that investigate these issues. I'm glad that they contributed the code but I didn't ask what they were doing with the research. My impression is that they want to study manage-execution systems for their CPUs. But this is my impression and pure speculation. So if you want to get the real story you should talk to them.

IDN: And from Microsoft, what kind of support is Mono receiving from them? There seems to be growing support for Mono at a recent Microsoft developer's conference.

de Icaza: I met some guys there. I don't know what you mean by support. I met the guys - two guys and that's it.

IDN: That's it? No sense from them that Microsoft wants to lend more formal help to Mono?

de Icaza:. No. No sense of that. They answered by questions, but these are developers, not executives. So, today there is no official Microsoft involvement, and there's no official Microsoft relationship.

IDN: How about relations or visibility with other big firms?

de Icaza: We were invited to the ECMA meeting by IBM. And we're attending the ECMA meetings because of Sam Ruby at IBM. [Sam Ruby is a member of the Apache Software Foundation and an employee of IBM].

IDN: So IBM is interested in Mono as well, that's what you're saying?

de Icaza: I wouldn't say that. IBM did invite us to ECMA, but you'll have to speak to IBM to get the official status.

IDN: So, all told, I'm trying to get a sense of whether Mono is still considered a rogue technology among big software firms and corporate developers? Or is Mono starting to attract legitimate business interests from companies?

de Icaza: Up until now Mono was an un-evolved project. Now, we're complete. The ECMA core is complete. So I expect some people will be now interested in it, in using it, because it's a real thing.