Windows developers who want to move their applications
and skills to other operating systems have had a limited choice in
the past - develop in Java or rewrite source code to support
different platforms’ APIs. Now, the answer to application
portability may have arrived from an unexpected source -
Novell.
Microsoft’s submission to the European Computer Manufacturers’
Association of specifications underlying its .net architecture was
certainly an astute political move. The company had long suffered
from accusations of proprietary marketing, so submitting .net’s
Common Language Infrastructure (CLI) specification was a way of
silencing the critics.
Given the limited developments of the architecture on
alternative platforms, (the only available version of the Common
Language Runtime ran on FreeBSD), the company was able to remain
proprietary while claiming it was n0t.
That is until Ximian came along. The company began developing an
open source version of .net on Linux - called Mono - in 2001,
instantly making itself a thorn in Microsoft’s side. For all
Microsoft’s public claims that competition is a good thing, the
last thing it needed was a Linux version of the technology that
would constitute the heart of the Windows architecture over the
next few years.
How Mono measures up
When Novell consolidated its anti-Microsoft position by buying
Ximian last year, the Mono project picked up even more steam and
finally hit its 1.0 release at the end of June.
Ximian’s senior project manager for Mono, Eric Dasque, hopes
Mono will provide a convenient stepping stone for developers who
want to explore different platforms.
"Mono is a complete development framework on Linux," he said.
"We chose .net as the platform, but Mono does not need Microsoft to
work. One of the benefits of relying on .net is that we get a lot
of buy-in from the Windows developer who wants to move to
Linux."
Ximian has done a lot of work to replicate in Mono what
Microsoft has taken years to produce with .net. In addition to a C#
compiler, .net-compatible runtime and a stack of components
designed to take advantage of Linux, it has also replicated
elements including the ASP.net web programming API and the ADO.net
data access component.
Two Microsoft components it does not support are the Windows
Forms API and the Visual Basic .net language, but it plans to offer
these in the Mono 1.2 download by the end of the year.
Given that only the core CLI and the C# language are European
Computer Manufacturers’ Association components, Ximian created the
other parts of .net within Mono, developing its own code to support
the .net API, according to Dasque.
Missing from the project is an integrated development
environment to rival Visual Studio .net. Ximian has produced
Monodevelop, a basic IDE for developing applications on Linux. It
supports debugging and also imports projects from Visual Studio,
said Dasque. The firm also has a plug-in for the open source
Eclipse development environment that enables developers to compile
C# source code to run on Mono.
Dasque believes Mono is safe from Microsoft’s legal division
because it validates Microsoft’s claims to openness. "Go to the
MSDN website and search for Mono, and you will come up with four or
five references to us, including an interview with Miguel de Icaza
[Novell’s vice-president of development and Mono project founder]
and a link to our website," he said.
Novell’s strategy
Mono should worry Microsoft more now than ever. There are
Solaris and Mac OS X versions of Mono available, meaning that Sun
Microsystems and Apple Macintosh users can work with .net.
It opens the door for developers to switch easily between
operating systems. The Mono team is making available a Windows
installation of the GTK graphical user interface toolkit, which
makes it easy to develop GUI applications for Linux.
Now, developers of Linux applications can port them more easily
to Windows, which could present Microsoft with a problem if those
applications (such as office suites, for example) compete with its
own.
Perhaps more worryingly for Microsoft, having a copy of .net
available for other popular operating systems makes it relatively
easy for application developers to port their programs from Windows
to other environments, setting the scene for a rapid expansion of
the non-Windows application base as more developers begin coding
for .net.
The race to shipment
IT directors have been afraid to use Linux on the desktop
because many of their users’ applications are not available, this
could change in the next few years. Microsoft may hope to escape
such threats with Longhorn, the next major version of Windows. This
will include new components including Indigo (a revamped version of
the .net architecture), and Avalon, a new 3D vector-based graphics
system.
However, to meet its self-imposed 2006 deadline, the company has
already dropped the third major component, which was to have been
an object-oriented XML-based file system called WinFS. Instead,
that will appear in beta form when the Longhorn client ships. Even
with that caveat, given Microsoft’s history of shipment delays, a
2006 ship date for Longhorn is still far from certain, and
meanwhile, Ximian is closely following Microsoft’s activities.
Dasque said Novell was ready for such a migration. "We have all
of the message queuing and remote object middleware built into
Linux already [to support Indigo]. We just have to slap an API on
top of it," he said.
Similarly, he said the company already has about 60% of the
basic functionality promised by WinFS in the form of Novell’s
iFolder, a piece of file management software. "The API classes are
simple to do," he said.
iFolder focuses on mobile file access and WinFS promises much
more than that, but the idea of offering a version of .net with
more features than Microsoft’s puts Novell in a strong position -
especially as there is also a version of Mono for Windows. Could
developers end up running the Novell version of .net on Windows to
get more functionality?
Version 1.2 of Mono, shipping in December, is expected to
include the basic .net components missing in version 1.0.
Version 2.0 next summer will include previews of Longhorn
features, said Dasque. WinFS is a possibility, as is Indigo. So
will Mono leapfrog Longhorn? "Our goal is not to surpass Microsoft.
Our goal is to deliver a great development platform. If we want to
add something equivalent to what Longhorn is delivering, we cannot
just wait five years and then release something," he said.
In the meantime, the Mono development team will see what is
missing from Linux, such as some file management features found in
iFolder, and try to use the Mono software to bolster the operating
system in the same way Microsoft is using .net to boost the
functionality of Windows.
By opening its doors via the European Computer Manufacturers’
Association, Microsoft has made it possible for other suppliers to
offer compatible technology. Mono may not be Microsoft’s downfall,
but if Ximian continues development at its current rate, it
promises to become an increasing irritation to the software giant
which has traditionally survived because of its closed
approach.