Miguel de Icaza Talks About Mono
Matthew Revell writes "Miguel de Icaza defends Mono and talks about its future relationship with the Gnome desktop, in the latest LugRadio.
The leader of the open source implementation of .NET says no one is forced to use Mono but he hopes it will make life easier for open source developers. "
he hopes it will make life easier for open source developers.
I thought the problem was that Microsoft told everybody that they didn't have any patents on C# or .NET, but they are actually a licensee of somebody else who has patents on it? Miguel dodged the question on this one by simply stating that it was a reimplementation rather than licensing .NET from Microsoft.
Listening to the audio, the things on the horizon are Windows Forms and incremental improvements (tuning). People are porting applications today, usually you can just copy the binary, but ignorant Windows developers do things like screw up path separators, assume case-insensitive systems, etc.
C# is one of the best ECMA compliant languages today. When used with open source libraries it is a very powerfull developement tool. It is only quasi ilegal when you use the microsoft libraries wich you DON'T need to use.
For rapid application developement under Linux I'll take C# and mono any day.
Cheers,
Adolfo
I've tried Mono, and while I've little desire to move from Python over to Mono, it's a very well done project. The GTK bindings are quite nice, and C# as a language is much, much, much easier to work with than Java.
The big "if" is whether or not Mono can become to popular without Microsoft trying to pull the plug. However, even if that does happen, C# is an ECMA standard. There are plenty of native Linux libraries that can be used in place of the Microsoft classes. For developing GUI applications under Linux, you're not going to use the Windows.Forms libraries anyway, you're going to use GTK. Mono can stand on its own as a good RAD language for developing graphical applications for GNOME.
I know it's fashionable to bash MS at every turn (and as a Mac/Linux user I do all the time), but C# is a nice language and the .NET libraries are infinitely better than the cruft of Win32/MFC and the other mess of libraries that Microsoft used to shove down programmer's throats. Mono has done an excellent job of taking those libraries and making them work on Linux.
Even without the Microsoft libraries, Mono still provides a good framework for RAD under Linux and GNOME. If we can make it as easy as possible to transition between Windows programming and Linux programming it only helps propagate Linux.
Miguel is the lead developer for gnome, and his pet project was creating a .NET framework for linux. It has since grown to be more than a pet, gaining the backing of Novell. It is not the easiest thing to get running on your system, but by far not the hardest.
It needs to be defended for a number of reasons. Linux zealotry (why would people move from Windows if all the software is cross platform?), laguage zealots (IMHO, C# is a nice language to program in, but the java guys scream bloody hell) and people afraid of MS putting the legal smack down on Linux over API issues,just to name a few.
Personally, I think that Miguel's reliance on WINE is a mistake, but we have discussed this here, and it does have immediate benefits for the windows.forms and directX stuff. I know people who are programming frontends on both Windows and Linux, using a combination of the GTK interface and Windows.forms, and they love it.
WINE support was abandoned in favor of their own SWF implementation, and it's been that way for a while in the development releases. They're developing their own implementation because, yes, it makes things less portable and less stable.
Just FYI, the portable.net project has some kind of System.Windows.Forms implementation. Don't know how good it is, though.
Here is Miguel's answer to GNOME becomig depentdant on MONO: http://mail.gnome.org/archives/gnome-hackers/2002- February/msg00031.html
On Linux, you can use the Apache module mod_mono .
It is available on the Mono project's download page.
It allows Apache to serve ASP.NET pages by proxying the requests to a slightly modified version of our XSP called mod-mono-server that is installed along with XSP.
It doesn't work on the Windows version of Apache yet, but work is in progress to make that work, too.
Gtk# on Windows uses the UXTheme API, which will
make Gtk+ look like every other app on the system.
The feel in Gtk+/Win32 is already emulating the
host OS, so you get both look and feel.
From what I understand, .NET is an ECMA standard. This can be verified here: http://msdn.microsoft.com/net/ecma/. They even post a C# specification, so really anyone with the talent can implement it.
.Net (aprox.) is Microsoft property.
Perhaps you should read your own link. Only C# and CLI are ECMA approved standard. The other 80% of
"I think this line is mostly filler"
Hello,
You are wrong, Microsoft has not done anything
to prevent code from running on Mono.
There is the real problem that we do not
implement all the class libraries, specially those
that are being phased out like EnterpriseServices
and Message Queuing. But then again, those are
really marginal tools which were complex to use,
so its not really a problem.
The other bit is COM support, which we do not
support as there is really no "COM" to talk to
in Unix anyways.
Miguel.
From the licensing FAQ section of Mono's own website:
.NET Framework is divided in two parts: the ECMA/ISO covered technologies and the other technologies developed on top of it like ADO.NET, ASP.NET and Windows.Forms.
.NET Framework, and what has been patented by Microsoft falls under the ECMA/ISO submission. Jim Miller at Microsoft has made a statement on the patents covering ISO/ECMA, (he is one of the inventors listed in the patent): here.
.NET Framework?
.NET Framework, as well as plenty of class libraries that are either UNIX specific, Gnome specific, or that are not part of the .NET Framework but people find useful.
"Question 131: Could patents be used to completely disable Mono (either submarine patents filed now, or changes made by Microsoft specifically to create patent problems)?
First some background information.
The
Mono implements the ECMA/ISO covered parts, as well as being a project that aims to implement the higher level blocks like ASP.NET, ADO.NET and Windows.Forms.
The Mono project has gone beyond both of those components and has developed and integrated third party class libraries, the most important being: Debugging APIs, integration with the Gnome platform (Accessibility, Pango rendering, Gdk/Gtk, Glade, GnomeUI), Mozilla, OpenGL, extensive database support (Microsoft only supports a couple of providers out of the box, while Mono has support for 11 different providers), our POSIX integration libraries and finally the embedded API (used to add scripting to applications and host the CLI, or for example as an embedded runtime in Apache).
The core of the
Basically a grant is given to anyone who want to implement those components for free and for any purpose.
The controversial elements are the ASP.NET, ADO.NET and Windows.Forms subsets. Those are convenient for people who need full compatibility with the Windows platform, but are not required for the open source Mono platform, nor integration with today's Mono's rich support of Linux.
The Mono strategy for dealing with these technologies is as follows: (1) work around the patent by using a different implementation technique that retains the API, but changes the mechanism; if that is not possible, we would (2) remove the pieces of code that were covered by those patents, and also (3) find prior art that would render the patent useless.
Not providing a patented capability would weaken the interoperability, but it would still provide the free software / open source software community with good development tools, which is the primary reason for developing Mono.
The patents do not apply in countries where software patents are not allowed.
For Linux server and desktop development, we only need the ECMA components, and things that we have developed (like Gtk#) or Apache integration.
Question 132: Is Mono only an implementation of the
Mono implements both the
Credits"
Additionally, I don't see any objections to Java being used in the Linux world. And yet:
- Both are backed by software giants
- Both companies have traditionally been fiercely proprietary
- Both of them offer a new language/platform.
- While C# is now an ECMA standard, Java is still architected by Sun's engineers (even though Sun can claim that they have a "community" process
for extending the language/specs)
- Both have patents of various aspects of the implementation.
- Both have proprietary implementations in the market.
- Both have evangelists eager to win converts to the new platform.
- Both the corporations are profit driven.
So why is Java okay?