Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
GNOME Software GUI Programming Linux IT Technology

Miguel de Icaza Talks About Mono 596

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. "
This discussion has been archived. No new comments can be posted.

Miguel de Icaza Talks About Mono

Comments Filter:
  • mono (Score:2, Informative)

    by relluf ( 722817 ) on Monday February 14, 2005 @12:12PM (#11668266)
    Mono is a great programming tool, I hope that it manages to find its way into mainstream gnome. It shows alot of promise anyway. I do belive that CLIs are the way to go.
  • Patent issues? (Score:5, Informative)

    by Anonymous Coward on Monday February 14, 2005 @12:13PM (#11668279)

    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.

  • Why I love mono (Score:4, Informative)

    by adolfojp ( 730818 ) on Monday February 14, 2005 @12:16PM (#11668305)
    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
  • Mono And Linux (Score:5, Informative)

    by WombatControl ( 74685 ) on Monday February 14, 2005 @12:19PM (#11668340)

    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.

  • Mirror for ogg files (Score:3, Informative)

    by mjmartin_uk ( 776702 ) on Monday February 14, 2005 @12:20PM (#11668359)

    I've put the high and low quality recordings of Season 2 Episode 9 - 14 February 2005 in Ogg format up here:

    http://www.gobisoft.net/tmp/ [gobisoft.net]

    Just in case the Slashdot effect takes hold.

  • by Trigun ( 685027 ) <evil@evil e m p i r e . a t h .cx> on Monday February 14, 2005 @12:21PM (#11668363)
    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.
  • by wizbit ( 122290 ) on Monday February 14, 2005 @12:26PM (#11668425)
    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.
  • Re:SWF (Score:5, Informative)

    by Burb ( 620144 ) on Monday February 14, 2005 @12:27PM (#11668446)
    Just FYI, the portable.net project has some kind of System.Windows.Forms implementation. Don't know how good it is, though.
  • by Anonymous Coward on Monday February 14, 2005 @12:31PM (#11668472)
    Here is Miguel's answer to GNOME becomig depentdant on MONO: http://mail.gnome.org/archives/gnome-hackers/2002- February/msg00031.html [gnome.org]
  • by Zhila the Great Z ( 852771 ) on Monday February 14, 2005 @12:39PM (#11668565)
    Yes, Mono supports ASP.NET. It has an XSP application (mini ASP.NET webserver), and an apache module mod_mono (basically sends requests to XSP via named pipes). I currently have an ASP.NET website completely run by Apache/Mono, and it works perfectly.
  • Re:Patent issues? (Score:4, Informative)

    by geordie_loz ( 624942 ) on Monday February 14, 2005 @12:40PM (#11668571) Homepage
    He is referring to the location of files, paths and files in windows are Case Insensitive, but in most other os's it's case sensitive, so:

    /C/Windows/AnotherDir/
    is not the same as
    /c/windows/anotherdir/

    see? Not the language but the platform, so path/library locations relying on case insensitivity is the issue..
  • by Adhemar ( 679794 ) on Monday February 14, 2005 @12:44PM (#11668615)

    On Linux, you can use the Apache module mod_mono [mono-project.com] .

    It is available on the Mono project's download page [mono-project.com].

    It allows Apache [apache.org] 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.

  • by Anonymous Coward on Monday February 14, 2005 @12:47PM (#11668644)
    From the Mono's FAQ:

    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)?

    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 patents do not apply in countries where software patents are not allowed.

    Hopefully, the patents will fail in the US too; not many applications can be developed without ASP.NET, ADO.NET and Windows.Forms packages.
  • Re:Mono perspective (Score:4, Informative)

    by DrXym ( 126579 ) on Monday February 14, 2005 @12:48PM (#11668658)
    1. GTK plainly sucks for development. No, really, I tried, and it's worse than MFC.
      GTK is a C API. If you don't like it, use a binding such as gtkmm or wxWidgets. Basically it can live underneath any API you care for it.
    2. Windows.Form is THE thing that will allow true Linux WIndows portability. And it's a good widget library..
      It's good but many apps end up PInvoking Win32 because Windows.Forms doesn't do something they need. Thus it isn't that portable. Even a full implementation of Windows.Forms won't do you much good for a program that makes a single call to Win32, or which drags in some "safe" C++ compiled native DLL. But getting back to Windows.Forms, it exposes some particularly non-portable things such as WndProc, windows messages etc.
    3. .NET is better than Java in my opinion.
      The CLR & core are architecturally cleaner, but Java kicks seven shades of shit out of .NET when it comes to sheer breadth of implementations, platforms, 3rd party libraries, enterprise level specifications and so on.

    I'm in no doubt that Mono is a good thing, but neither .NET nor Mono offer anything remotely as compelling as Java at the moment at least in the enterprise domain. Let's see Mono go through a birth of fire on the desktop first.

    Speaking of which, I see a lot of potential there (after all half the system tools in most dists are python / perl etc. with bindings). But Mono really has to start encouraging people other than Linux users to use the open source stack - even .NET users. That means producing an installer containing the stack with some wizards & designers so that Visual Studio .NET users can use them with ease.

  • Re:Mono And Linux (Score:2, Informative)

    by codepoetix ( 858482 ) on Monday February 14, 2005 @12:58PM (#11668752) Homepage

    ...the .NET libraries are infinitely better than the cruft of Win32/MFC

    Heh. As far as Windows.Forms is concerned, they are mostly just a thin wrapper of managed code around the cruft of Win32/MFC. The "clean break" is promised with Avalon. We'll see.

    Still nicer to work with, tho'.

  • Re:Mono And Linux (Score:4, Informative)

    by mrroach ( 164090 ) on Monday February 14, 2005 @01:09PM (#11668848)
    From my brief poking at both java and c# for gui programming, the difference that strikes me most is the incessant need in java to create anonymous classes for event handling:
    addHandler(new eventHandler() {
    public void yaddaYadda(EventThingie e) {
    }
    });
    As opposed to c#'s typical method:
    clicked += clickedEvent;
    ...
    }
    public void clickedEvent(object o, EventArgs e) {

    }
    I know it is not a huge difference, but I much prefer c#'s method.

    -Mark
  • Re:Mono And Linux (Score:3, Informative)

    by mrtrumbe ( 412155 ) on Monday February 14, 2005 @01:29PM (#11669019) Homepage
    I can count, on one hand, the number of improvements C# makes on top of java's syntax:

    1) Events
    2) foreach (versus for loops)
    3) Properties (versus accessor methods)
    4) Boxing/Unboxing (versus Classes for intregal types--also used as the "implicit" operator)

    Forgive me if I missed anything, but this is all I can think of. On the flip side, Java has a few things which I consider better than C#'s implementation:

    1) Explicit declaration of the exceptions a given function will throw.
    2) Better handling of packages, especially in the importing of packages into the current class.

    I use both languages (learned java first, though) and I really think the differences amount to a wash. When I go from C# to Java, I miss Properties. When I go from Java to C#, I miss the ability to enforce exception handling. In the end, they are both extremely usable languages well suited for modern object oriented programming.

    Taft

  • by miguel ( 7116 ) on Monday February 14, 2005 @01:38PM (#11669156) Homepage
    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.

  • Re:Mono And Linux (Score:5, Informative)

    by miguel ( 7116 ) on Monday February 14, 2005 @01:44PM (#11669227) Homepage
    If comparing C# 1.0 vs Java 1.4:

    * Attributes.
    * Support for unsafe code.
    * P/Invoke vs JNI is a fairly big difference.
    * Operator overloading, which on the .NET Framework is used with good taste.

    If comparing C# 2.0 vs Java 1.5:

    * Iterators (yield keyword).
    * Anonymous methods.
    * Fixed buffers
    * Generics for value types (Java only has generics
    for reference types, everything else must be
    "boxed", the Int vs "int" problem).

    Now, from a pure usability standpoint, I like
    the tiny things like:

    * `mono program.exe' runs your program, no need to
    pass a class name, or a path or setup the cp to
    run.

    * The layout of my files is not constrained to
    one-file, one-class and the file system hierarchy
    does not have to match the namespaces I have
    chosen.

    Miguel.

  • by aled ( 228417 ) on Monday February 14, 2005 @01:44PM (#11669229)
    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.

    Perhaps you should read your own link. Only C# and CLI are ECMA approved standard. The other 80% of .Net (aprox.) is Microsoft property.
  • by miguel ( 7116 ) on Monday February 14, 2005 @01:50PM (#11669292) Homepage
    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.
  • by miguel ( 7116 ) on Monday February 14, 2005 @02:08PM (#11669523) Homepage
    Hey,

    Small correction: C# and the CLI have both
    been approved as ISO standards: ISO/IEC 23270 (C#), ISO/IEC 23271 (CLI) and ISO/IEC 23272 (CLI TR).
  • by Pxtl ( 151020 ) on Monday February 14, 2005 @02:21PM (#11669706) Homepage
    Well, in its current state, Mono is free - afaik, its based on recognised ISO standards which are protected from lawsuits. Unfortunately, Miguel doesn't seem to want to stop there, and also wants to invade things like windows.forms which are outside of the CLR and into pure-MS domain.
  • by bonch ( 38532 ) on Monday February 14, 2005 @02:58PM (#11670158)
    From the licensing FAQ section [mono-project.com] of Mono's own website:

    "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 .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.

    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 .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.

    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 .NET Framework?

    Mono implements both the .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.
    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?
  • by jeif1k ( 809151 ) on Monday February 14, 2005 @03:28PM (#11670557)
    Perhaps you should read your own link. Only C# and CLI are ECMA approved standard. The other 80% of .Net (aprox.) is Microsoft property.

    And perhaps you should read a bit more about Mono: Mono comes with two sets of APIs.

    One set is a reimplementation of .NET: it's where Novell sees money coming in, and it's there for people to port applications from Windows to Linux. But it's not what most Mono developers are going to be developing in.

    The other set is a binding of C# to existing Linux open source tools (Gtk+, Gnome, etc.). That's the set that most open source developers are going to be using. It doesn't rely on .NET and gets by with ECMA C#.
  • Re:MSMQ phased out? (Score:4, Informative)

    by miguel ( 7116 ) on Monday February 14, 2005 @03:44PM (#11670765) Homepage
    The infrastructure itself is not, the existing
    API is.

    The new API is part of Indigo.
  • by RichiP ( 18379 ) on Tuesday February 15, 2005 @01:39PM (#11678901) Homepage
    Whatever are you smoking? Perhaps you're just stating your own bias while trying to pass off some generalization without any proof.

    In the Gnome camp, Mono as well as traditional Gtk/C, python and ruby coders are getting along rather peachilly. Because of Mono, there are several more apps for Gnome that otherwise wouldn't have been there. If you read the PlanetGnome blogs, you wouldn't see any split whatsoever.

    It really is pathetic seeing people like you spread FUD because there's a project you don't like instead of actually trying to work with people who've nothing but the best interests at heart.

"Everything should be made as simple as possible, but not simpler." -- Albert Einstein

Working...