Real World Linux 2004: Bigger and Better - page 4
The True Linux Turnout
No, Linux hasn't caught an illness. Mono is the development platform Friedman used to build Dashboard. Eric Dasque, the Senior Project Manager for Mono with Novell, took a moment to explain what Mono is and why it's important. Mono is the Linux implementation of the .NET programming standard Microsoft placed under the control of the EMCA--yes, Dasque pointed out time and time again that people are always trying to tell him .NET isn't a standard, but that in fact .NET really is a standard.
Dasque and the Mono team want to attract more programmers to Linux, and not just the serious geek crowd. It's the Independent Software Vendors they're aiming at, often the types of folks that want to build vertical market applications like pet shop management utilities. These people are used to working in user-friendly environments such as Visual Basic, and increasingly in .NET.
However, to do serious graphical application development in Linux today, you have to master the cryptic art of C and C++. While the serious geeks have already done so, the ISVs don't often have this level of knowledge, and so have found themselves blocked from the move... until now.
In June, Mono 1.0 will be officially released after two years of development and early adoption, and then a three month feature freeze and Q&A process. Mono 1.0 is a full implementation of the .NET 1.1 standard, consisting of a C# compiler, the .NET virtual machine, and a set of APIs. Mono 1.0 also offers a preview of .NET 2.0, containing a partial .NET 2.0 feature set (something that Microsoft users won't have access to until the big XP service pack Microsoft is promising).
Rather than being like Java, where the virtual machine is entirely self-contained--causing all Java programs to look odd under any operating system, rather than having a unified look with the desktop they're running under--Dasque's team also used what they consider another benefit of .NET and added Linux desktop APIs for seamless integration.
For example, the gtk# language now exists with the Mono project. On top of this, by December the Mono project will have finished implementing the Windows.NET API under Linux, allowing existing .NET code to run on Linux desktops without requiring any porting. This feature is aimed at shops with heavy ASP.NET implementations who are keeping around a Windows server or two just for handling this content.
Even though Mono has not reached its 1.0 release yet, there are several products available already that were built on this platform or that work well with it. The much-vaunted city of Munich has been using Mono extensively for its migration to Linux. There's also SourceGear Vault, which is a version control system for Windows, along with Novell's iFolder and FSpot (a play on f-stop, it's a photo management tool). On top of this, the embedded space is full of Mono applications, and the MonoDevelop IDE is well under way as SharpDevelop for Windows is ported over to Linux.
According to Dasque, the Mono project has a huge adoption rate, as hundreds of other .NET projects contact his one-hundred and fifty person team--fifteen of which are paid by Novell--to learn more about adding Linux support to their .NET programs. Of course, there's also the people who hate anything that vaguely smells of Microsoft, or who insist that .NET is not in fact a standard. "Mono gets a lot of love, and a lot of hate," says Dasque. Still, he seems to think it's worth it.