Mono is an open source implementation of the .Net development framework as developed by Microsoft and submitted to the ECMA standards authority. The project, which released version 1.0 last month, is significant in several ways: it offers the potential to unite the open source communities for Windows, Linux, and other platforms; it fulfills the niche for a powerful migration tool; it builds upon existing open source technologies such as Mozilla and Apache; and -- most importantly -- it illustrates the resolve of the open source community to rise to Microsoft's challenge.
Mono provides a unique and significant opportunity to unite the open source development communities for Windows, Linux, and other platforms. Through its use of the C# language, Mono can develop true cross-platform applications with ease. A C# application that adheres to the ECMA standards can be compiled on Windows and run natively on Linux as long as Mono is present on the system.
Projects that choose to write their applications in C# (together with a toolkit such as Gtk#) can now spread their applications outside of Linux. Prior to Mono, that territory was reserved for the big projects such as OpenOffice.org or Mozilla. This portability can potentially expand the size of the developer communities for each project, leading to more mature open source applications available to the benefit of all platform users.
In this way, Mono may be able to win more converts to the Linux operating system, as it displays the advantages of open source software to the Windows users running the applications. At the same time, it will aid in the development of applications for Linux which may otherwise not have been developed as fully within the same period of time.
As a migration tool, Mono has a significant role: It allows ECMA-compliant applications in C# (and other supported .Net languages) to be easily migrated to Linux. This can help to break down one of the final barriers which can prevent businesses from moving to Linux. Without Mono, software often has to be rewritten at a considerable expense in order to migrate.
With the increase in uptake of C# over languages such as Visual Basic, the cost of migration can be lowered. Anything which can help to ease the migration from Windows to Linux in the corporate sector must be seen as a significant development, with far-reaching consequences for companies advocating migration to Linux, such as Novell and IBM.
The best is still to come. Windows.Forms is being developed for release later in the year. It will attempt to recreate the Win32 functions of native Windows applications in applications written on Linux. That will aid in the migration of applications that are currently heavily integrated into the Windows environment.
Mono's ability to build upon existing open source technologies such as Mozilla and the Apache Web server is also significant. Mono provides bindings that make it easy for developers to embed the Mozilla browser into their applications. This can allow developers to build more innovative desktop applications that bring together local data with that on the Internet. An example of this would be applying for a bank loan through an embedded application. The Mozilla bindings also open the possibility of more dynamic applications, which can link to a wealth of other related information found on the Internet.
Possibly of even greater significance is the fact that Mono is able to provide ASP.Net functionality for the Apache Web server. This enables complete cross-platform development and deployment of Web applications. Developers of ASP.Net applications are no longer locked in to Microsoft's commercial Internet Information Server. Mono's ASP.Net functionality can only help to consolidate Apache as the Internet's most popular Web server.
By far, the greatest significance of Mono is that it demonstrates that the open source community is able to rise to the challenge laid down by Microsoft. In the space of three years, the Mono project has gone from conception to its first point release, despite Microsoft not releasing a final version of their .Net development framework until January 2002. In the two years since Microsoft released its milestone version of the framework, .Net has remained little more than a buzzword in many quarters, with Microsoft unable to capitalise on the technology. Now that the open source community has caught up with Microsoft, [who?] can work with the ECMA standards authority and Microsoft to further develop the framework, a situation that would not have been possible three years ago. The challenge now for the open source community is to build upon its gains, and to not become complacent and fall behind.