Miguel is up on stage now. There's a big Mono slide on the screen.
Background
Mono has been under development for the past 18 months. People inside and outside of Ximian work on it.
GNOME is Ximian's key focus and it's a desktop, development platform, and suite of productivity applications. It was started in 1997, and is mostly developed in C, C++, Python, and Perl. GNOME is component-oriented and supports many programming languages. But for every new GNOME API, GNOME developers needed to develop language-specific bindings. The multi-language problem is one of the things that made .NET interesting to Ximian.
Case Study: Evolution
Evolution is an Outlook clone for Linux in 800,000 lines of code. It took 2 years, 17 programmers. Lots of money, lots of time. The .NET approach to component development would have made this easier and cheaper.
The Problem with Unix Development
Every programming language (Java, Perl, Python, etc.) creates a new platform (new VM, new GC heap, new network APIs, etc.)
Then Miguel learned about the .NET Framework and got excited; it's a single Virtual Execution System for multiple languages and has a large&reusable factored class library. But as well as being a new way to do stuff, .NET's rich support for interop (COM, P/Invoke) means you don't have to rewrite everything all at once.
Mono Today
Mono is an open source .NET Framework implementation. It's based around the CLI ISO standard. Status:
- CLI compliant execution system
- x86 JIT compiler
- Windows, BSD, Linux, Solaris supported
- C# and VB.NET (partially done) supported
- lots of progress on the class libraries
- self-hosting for over a year
- Mono is free software
Why Windows support? Miguel's off-the-cuff estimate is that 60% of Mono developers have a Windows background. (Speaking of Windows,
Miguel doesn't really care about Windows Forms, but some people are working on it independently. Miguel and Ximian are more interested in Gtk#, a managed API for Gtk+ GUI development.) He mentioned that some code that was contributed to Mono was funded by Microsoft grants.
Mono is pretty useful now, but many classes are missing. Builds are available for Red Hat Linux, Debian GNU/Linux, and Windows. You can compile it yourself on other platforms.
System.Xml is very far (nearly 100%), System.Data (ADO.NET) is at about the same but also supports more providers. System.Web is at about 90%, and System.Web.Services is at about 20%.
Gtk#
Gtk# is Ximian's main interest for GNOME development. Cross platform (looks like Windows under Windows, Mac OS X under Mac OS X/X11, and Gtk+ under X11). Miguel demoed a sample app called mphoto that uses Gtk# (he wrote it on a six hour plane flight). It looks kind of like iPhoto. Ooops, it crashed (but we knew it was beta code :-)
Web Services
Miguel says he doesn't "get it" as far as Web Services is concerned. This is not that he doesn't understand them, it's just that he thinks too much has been made of them.
2:57:32 PM
|