Miguel on Mono
by John Gartner02/04/2002
Editor's Note: The last time we checked in with Miguel de Icaza was last summer, when he announced his Mono project. Mono is an open source initiative that aims to bring the functionality of Microsoft's .NET development environment to Unix platforms. With the first parts of .NET being released, we asked tech writer and editor John Gartner to give Miguel a call to find out how Mono is coming along.
Miguel de Icaza is a happy developer--his Mono project is progressing well and is on schedule.
Miguel launched the Mono initiative last summer because he wants Linux programmers to have access to the benefits of .NET components, including a C# compiler, a Common Language Runtime compiler, and an extensive set of class libraries. He said .NET greatly improves the efficiency of writing code because applications can be deployed on multiple environments.
The project has drawn interest because it implies the support of a marquee open source developer--the originator of the GNOME desktop-- for Microsoft's most ambitious effort to integrate with the Web.
Where Mono Stands
Last fall, the Mono team, headed by Miguel's Ximian software company, completed the first version of the JIT (just in time) compiler. The JIT runtime engine allows Linux systems, for the first time, to run .NET applications built on Windows, Linux, or Unix platforms.
The JIT is now "self-hosting on Linux ... It can pretty much run anything we throw at it," Miguel said, happy to be free of relying on Microsoft's C# (pronounced c sharp) compiler. JIT allows him to work on Unix instead of having to switch to Windows for compiling. He said he can't release performance data comparing Mono's JIT engine to Microsoft's JIT, but does admit that Mono's is slower.
Miguel said that before his company works on optimizing performance, it will focus on making the compiler feature complete. Then, the next two features Ximian will address are security infrastructure and garbage collection.
Why is Ximian interested? Miguel said Mono will not only help the company internally, but could also help it land new clients. Mono will give the company a stronger platform for developing commercial applications, and if more developers move to Linux as their primary working environment, that increases the number of potential clients for Ximian's software support and services business.
Mono's next major milestone will be to have smart clients running on Linux by June 2002, Miguel said. He is optimistic that there will be Windows Forms applications developed on Windows running on Linux by this summer.
Licensing Issues
But the most significant update to Mono is a new licensing model, which Miguel announced on January 28, 2002. Although most of the Mono project will stay under the GPL (GNU Public License), Mono's class libraries will have MIT's X11 license.
X11 licenses freely grant permission to any person obtaining a copy of the software to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the software.
Miguel said the move away from GPL was necessary because developers wanted to put the software onto embedded chips. "There's no way to give guarantees to end users that they will be able to make changes to such a chip."
"That basically means you can take Mono, you can make improvements, burn it on a chip, or even build a proprietary product with it if you want," he said. The change opens the door to hardware partners: "The upside is we get Intel to work with us."
The Mono community is also comfortable with the change, Miguel said. During his work to make Mono a license-worthy product, his biggest surprise has been Microsoft's "excellent" work on building in security.
Instead of having permissions only at the user level (as in Unix), in .NET "you can have permissions at the class level, you can have classes running at different permissions. If a class makes a call into another class, then you start subtracting the permissions as you go."
"It's an amazing job. It couldn't be any better."
|
| |
The bulk of the Mono work yet to be done is in building class libraries. Microsoft has delivered about 3,500 class libraries for .NET so far, while, according to Miguel, Mono has somewhere around 900 implemented.
The big differences in class libraries between his and Microsoft's project will center on objects. While Mono will not try to port links to Windows' COM objects, there will be a gateway to GNOME objects.
Other than granting access to GNOME objects, Miguel is not encouraging the development of any other Linux-only libraries.
"I don't want to give the spin of embrace and extend because I think the embrace-and-extend policy is wrong for users," Miguel said. "I don't want to build an application for Linux that users can't run on Windows."
Microsoft's Story
Last October, Miguel went to Microsoft's Professional Developers Conference (PDC), where he found acceptance in Mono from Microsoft developers. "They are actually pretty excited about Mono. It gives them a story about being cross-platform, and seeing your specification going other places is interesting." Miguel said programmers are always curious to see how others can extend their work.
Since then, the informal exchanges with Microsoft developers have continued. "They are extremely helpful when I've had questions about .NET. These are not high-level discussions--these are programmer-to-programmer discussions," Miguel said.
After Mono completes its Linux work, Miguel said the next target is the PowerPC, to get Windows Forms to run on Mac OS X, and then Intel's Itanium processor. He said each would require writing a JIT compiler, which takes about three to four months.
Miguel said he knows of no companies porting .NET to other Unix variants, such as Sun Microsystems' Solaris. "I haven't talked to Sun about this, but I probably should." He said his gut feeling is that Sun wouldn't be interested because, "They are betting everything on Java."
No Tainted Code
He doesn't foresee any patents issues that could entangle Mono, but he said, "We're prepared to make changes to Mono if that's needed." If a patent infringement challenge were made, Miguel said, he could hypothetically see two versions of Mono existing--one with licensed code, and one without.
To help protect Mono from potential future legal wrangling, Miguel has a strict rule. "If you look at Microsoft's shared source implementation, do not contribute to Mono." He said that developers who see Microsoft's .NET details when they are published would be banned from working with him. "I hope not many people get that thing, because if they do, they're going to be tainted for doing development."
Miguel plans to release Mono in June 2002, and he expects that the early adopters will be programmers already familiar with .NET who want to deploy it on Unix systems. Next in line will be those who may have heard of .NET, but have been waiting for the Unix runtime version.
Completing Mono will be just as vital for the Unix community as .NET is for Microsoft's developers. Developers from either platform will be able to write code in one environment and bring the applications into others.
"It's an extremely important need of the Unix universe," says Miguel. "Basically Microsoft had very hard-to-program-for APIs. People are still using C++; it's very hard to debug. .NET brought a breath of fresh air into Microsoft's applications."
You must be logged in to the O'Reilly Network to post a talkback.
Showing messages 1 through 11 of 11.
-
Miguel on Mono
2002-02-08 12:36:07 javadelp [Reply | View]
I really question the direction and move for this.. Why do we need a C#/NET thingy for Linux?
Java is more than capable of providing anything DOT Net has. It is better, much more mature, and proven, while DOT NET is a MS dream.
-
Miguel on Mono
2002-02-09 03:36:03 justinthyme [Reply | View]
Why? Because has the capability of steamrolling just about anything they do into popular acceptance by the business world. Because not building interoperablity between Linux and Microsoft is a very good way to get flattened by that steamroller.
Microsoft has been very successful at coopting ideas and methods first developed in the Open Source community. Perhaps it is about time that the Open Source community look at coopting some certain successes that Microsoft is brewing.
-
MS will double cross you.
2002-02-08 10:07:03 rfort [Reply | View]
Sooner or later, MONO will do some thing
which is not in MS best interest. At that
point, MS will have something to use against
you. It may be some patent infringment, or
licensing issue or whatever. It does not
have to be valid, they have more than enough
money to litigate Ximian into bankruptcy. Just
like Sybase, they will make a deal with you,
steal everything you have, and leave you for
dead.
-
Kudos Miguel!
2002-02-05 13:16:49 avranic [Reply | View]
Good Work Miguel...
I think Mono's a win-win situation, both technically and politically. Good luck!
..anthony
-
I'm ditching GNOME if it happens!
2002-02-05 12:05:31 svoropay [Reply | View]
If Mono is becoming an integral part of GNOME, then goobye GNOME and hello KDE! -
I'm ditching GNOME if it happens!
2002-02-08 09:58:13 elanthis [Reply | View]
WHY?
Do you have *any* reason for this? Mono has no code from MS. The license (X11) is the same license your XFree86 server is under, so don't try to say you refuse to run X11-licensed code. Besides, there are many perl-GTK apps, and Perl is not GPL.
I'm imagining the only reason you are saying this is because Mono is based on a small portion of what Microsoft calls .NET, and you don't want to run anything designed by Microsoft.
Mono is only based on the standardized parts of .NET. Mono runs no MS code. Mono cannot be controlled by Microsoft - if Microsoft tries anything funny, Mono will simply cease being compatible with Microsoft, which would basically mean the same thing as if we created our own technology anyways.
And in any event, if you are avoiding everything Microsoft, you had better get rid of all your CD drives (Microsoft holds a patent on some part of the firmware in all CD drives, as I read anyways).
Please, tho, before you start spreading FUD and hate for GNOME, try understanding what you're talking about first. There is plenty of documentation describing Mono, licensing, Microsoft compatibility/interoperability, and every other question you might have, at http://go-mono.com, if you would actually bother to read it. -
I'm ditching GNOME if it happens!
2002-02-11 11:01:13 jonogden [Reply | View]
Why?
Because he brain-strained to learn Java and is now faced with the possibility that .NET is going to do to Java what MS-DOS did to CP/M.
-
I'm ditching GNOME if it happens!
2002-02-21 23:08:49 neeloy@iscw.net [Reply | View]
Maybe I'm missing the point here, but do any of you work for a commerical company? Because my clients don't care weather its MS or Linux or .NET or Java. As long as what I give them works, is scalable, reliable and cost-effective they are happy regardless of what I code in. And I code in whatever is required by the situation. I must be missing something pretty big here.
Neeloy






Unfortunately, M$ don't understand about standards and will try to tie C# to Windows (remember Java)?
Very soon, C# versions become incompatible but M$ will use GNOME to bless its nobody-develop platform C#. And better than all, OpenSource community will waste time going **behind** microsoft goes, as Miguel said.
I dont hate M$ and believe that some efforts as Samba are good because smb is one facto standard, but who are using C#?.
Nobody.
Want to get a new multi-platform environment?.
Use Java then, but Miguel don't want this because Java can run in KDE too and there is no advantage there.
Want to do a fresh aproach to use multiple language and platform in one standard way?
Create your own standard (Call it D++) and do it as superset of Java and C#.
GNOME did a bad choice in its fundation and that was to be based in C. Using any platform (C#, Java or any) will be a very bad idea. Use C++ as KDE does.
Don't put the dust under the carpet.
May be i'm wrong but, if C# succeeds then KDE team will be in better position to extend its functionality because port from C++ to C# is far straigtforward than C to C#.
Anyway, GNOME will lose.
Pietro