Slashdot Mirror


Mono Poises to Take Over the Linux Desktop

Edd Dumbill writes "Miguel de Icaza and the Mono team recently hosted a two day open meeting in Boston. O'Reilly have just published my report of the meeting. Highlights include Miguel's view that 'C is dead!' and the Mono approach to dealing with Microsoft patents on .NET."

14 of 925 comments (clear)

  1. Um, no. by ivern76 · · Score: 5, Informative

    This falls under the "I can't believe what I'm hearing" category...Mono is *not* ready as a plug in replacement for .NET, and it won't catch up before MS releases 1.2...for the foreseeable future, it's trailing behind the Windows implementation and is not likely to catch up.

    I see PyGTK as a much more reasonable (and WORKING) alternative to C programming for people who want to write Gnome apps. Or GTK--, for that matter. Mono currently has crappy System.Windows.Forms support (even with Gnome#), broken serialization support, the list goes on and on.

    1. Re:Um, no. by miguel · · Score: 4, Informative

      System.Windows.Forms is not part of the Mono 1.0
      release as you well point out.

      But Gtk# 1.0 is part of the Mono 1.0 release, and
      unlike Windows.Forms it is very mature and stable.

      Love,
      Miguel

  2. Platform Independence by WombatControl · · Score: 5, Informative

    I've been playing around with the Mono implementation of C#, and it's pretty good. It's not quite as good at RAD tasks as Python, but it has some advantages, and the syntax is much easier to play with than C or Java (but again, not quite as easy as Python, but I'm biased in that regard).

    However, Mono suffers from the fact that they're trying to play follow the leader by following Microsoft's implementation rather than creating a system of libraries from scratch. Microsoft has a history of pulling the old "embrace and extend" trick, and I fear something similar may happen here.

    My guess is that Microsoft will significantly alter the .NET APIs for Longhorn, leaving Mono behind with older legacy libraries that are no longer interoperable with the Microsoft compiler and the rest of the Windows-using world. Needless to say, that would be bad for the Mono team.

    Still, if Mono can remain independent, it could very well have a bright future. The Mono team has done a great job of implementing most of the 1.0 .NET API, and the mcs compiler is pretty fast. The GTK bindings are quite nice for such an early release.

    Still, the cognitive dissonance of compiling a Linux program and getting a file with an .exe extension is rather difficult...

  3. Re:That is where you are mistaken by Rob+Riggs · · Score: 4, Informative
    .Net is a vehicle for C# and a distorted reflection of all other languages.

    A very good illustration of this is in the attempt to create a Python.NET implementation by the folks at ActiveState. The report on the lessons learned is rather enlightening.

    --
    the growth in cynicism and rebellion has not been without cause
  4. Re:Dealing with MS patents .... by Valar · · Score: 4, Informative

    How?

    MS has given everyone license to implement every part of C# and .NET except for the Microsoft namespace of the class library. They have given up their right to sue people who use .NET or make .NET compatible implementations. The evidence isn't on their side.

    Hint: ECMA.

  5. Re:Why Mono Will Fail by primus_sucks · · Score: 4, Informative

    Put in a GTK or QT library interface instead of the slow and huge Swing (that Smalltalkers foisted on Java) and you're golden -- there's every reason to use Java, especially for applications.

    SWT is a crossplatform UI toolkit that feels like a native app, unlike Swing. In Linux it's just a wrapper over GTK or Motif.

  6. Re:.NET by nemiak · · Score: 5, Informative

    " Microsoft didn't just dream this up overnight..."

    Like most/all of Microsoft's "innovations", .NET was *purchased*, not created, by Microsoft.

    Microsoft inherited what become .NET when they purchased Colusa Software on on March 12, 1996.
    At this time C/C++ and VB environments already existed for Colusa's "OmniVM" (which became the .NET CLR?).

    To clarify - I do alot of work with C# and find it to be the least unpleasant Microsoft development environment I have experienced.

    Score 5, Troll?

  7. Why should we bother? by bonch · · Score: 4, Informative

    Well, if we can get to the point where we can do things like those shown in this Longhorn video, development for Linux will definitely increase.

    By the way, the video is worth watching not only for the cool technology but also to hear two Microsoft programmers ragging on each other. Totally opposite the kind of atmosphere you'd expect at Microsoft, I suppose.

  8. Re:.NET by Anonymous Coward · · Score: 5, Informative
    man, sometimes i don't even know why i look at the discussions of programing and scripting languages. I hardly ever know what people are talking about.

    C# This is essentially Microsoft's new version of the C programing language. Java Sun Microsystem's cross-platform programming language. VB Visual Basic. Microsoft's language for Rapid Application Development. C++ Popular extension to C which adds support for Object Oriented Programming. Struct A concept used to group variables together. You can refer to the whole group of variables using a single name. Class A struct on steroids. Not only does it group variables together, but it also groups functionality with the variables. Reference type A variable that points to the real data. You can have many reference variables that all point to the same data. Value type A variable that is the real data. Boxing The process of taking a reference type and converting it to a value type. Unboxing The process of taking a value type and converting it to a reference type. Operator overloading Redefining what an operator does. For example, if the equal sign in the following code assigns the value 2 to the varialbe a,

    a = 2;

    Operator overloading could redefine the equal sign to mean something else (such as compare if a equals 2).

    Property You can think of this as a wrapper around a variable. When the variable is accessed, you can do some automated processing before returning (or storing) the value. In code, you can treat a property just like a variable.
  9. Re:Danger! by hayden · · Score: 5, Informative
    "Reasonable and non-discriminatory" (RAND) does not imply "free".
    RAND licencing usually means reasonable and non-discriminatory" for business. What MS can (and probably will) do if Mono gets any traction is say, "We'll licence the right to use all these patents for 10 cents per install". Perfectly reasonable. Perfectly non-discriminatory. Kills any open source implementation dead.

    Game over.

    --
    Nerd: Derogatory term typically directed at anybody with a lower Slashdot ID than you.
  10. Re:No language can replace C ... by Alex_Ionescu · · Score: 4, Informative

    The first programming language(s) were coded in ASM, Assembly Language. Although ASM is a "language", it doesn't need to be translated and compiled like something like C. Each operation corresponds to opcodes, which are usually one or two bytes, that the CPU can directly read and interpret. Once powerful and stable C compilers (written usually in ASM) started to appear, new languages were usually directly written in C, but always containing some ASM.

    The main problem that confuses people (such as the argument that C# was written in C#) are the IDEs (the Integrated Developpement Environment), which is merely a graphical frontend to do your work. So yes, the VS NET 2003 UI was made in C#, but the compiler for C# was written in C and ASM.

    I hope this makes sense...it's 2:30AM...lol

    Best regards,
    Alex Ionescu
    Relsoft Technologies

  11. Re:.NET by ghamerly · · Score: 4, Informative

    I believe you have boxing & unboxing reversed. I didn't know the definitions before this, but the ones you gave didn't seem intuitive to me, so I searched google for "autoboxing", and found several definitions that are the reverse of yours.

  12. Quoted way out of context! by 1in10 · · Score: 4, Informative

    Miguel said, "C is dead", sure.

    But how about some context. This is what he actually says: "To me C is dead. Except for the JIT!" (emphasis mine).

    He's not saying C is gone, that nobody is going to use it anymore. He's saying that he's not using it anymore, except to write the JIT compiler for mono.

    So the quote is accurate, but the meaning is completely changed once you put it into context!

  13. Out of Context by superyooser · · Score: 5, Informative
    The submitter quoted Miguel out of context. Miguel said:
    " To me C is dead." (emphasis mine)

    I take that to mean, "As far as the world of Mono/.Net goes, C is dead."