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

19 of 925 comments (clear)

  1. MonoDevelop IDE by gmajor · · Score: 5, Interesting

    Doesn't the Monodevelop IDE look suspiciously like Eclipse?

  2. Renovate or Innovate? by capz+loc · · Score: 3, Interesting

    One of the problems I have with Mono is that it reimplements Microsoft's .NET framework instead of relying on its own. I understand that it is a lot of work to create such an integrated development platform from scratch, but I feel that the benefits of having a truly open/free/whatever solution will far outweigh the extra time that it would take. I am not a programmer, so I don't know much about the intricacies of .NET, but I can't possibly imagine that it is perfect in every way and that nobody can think of things that could be added/changed in it.

  3. Re:.NET by Rascasse · · Score: 5, Interesting

    .NET is good because it takes the best from languages that are already in existence. It's not like there is anything revolutionary in C# that isn't in any other language out there. I used to be stuck in this PC-centric view of the world. Imagine my surprise when I bought a Mac and realized that NeXT had fantastic things like Internet-enabled Distributed Objects available long before much of the world even knew what a web browser was. Yes, C# is good. But the only people that I know that have been blown away by it are those that didn't stray far from Microsoft solutions and were never exposed to tools available from other vendors. Welcome to what much of the rest of the world had available to them in the form of Java since the late 1990s. And before the fanboys come out - yes I know that C# actually improves on some of Java's deficiencies. But I do take issue with the assertion that C# was made possible thanks only in part to a concerted MS R&D effort. It wasn't.

  4. Parrot/Perl6 by Freedom+Bug · · Score: 5, Interesting

    IMO, I think Parrot will become the .NET equivalent in the open source world: a language independent VM and a huge standard library. I can't wait to have access to CPAN from my Python programs.

    Sure, C# is a lot nicer than C, but Python & Ruby are a lot nicer than C#. If you're going to give up the predictability of C/C++ for a VM, garbage collection, et cetera, why not go all the way up to dynamic execution?

    Bryan

    1. Re:Parrot/Perl6 by bcrowell · · Score: 3, Interesting
      Parrot has at least two big things going for it:
      1. It's fast. It was designed from the beginning to be fast. They're not leaving the optimization for later -- the early releases are already super fast. IIRC, some languages compiled into Parrot are already faster than their previous implementations.
      2. It's immune to the kind of MS mischief that .NET will undoubtedly have to struggle with.
  5. Give me a break by Anonymous Coward · · Score: 4, Interesting
    C is dead? What is he smoking. It's going to be around for a long long time. Will enterprise apps be developed with C, sure it will. Will C# get used for "enterprise apps". Well smallish non-transactional, horizontally scalable apps sure. .NET is still lacking when it comes to a proven, robust messaging server and transaction monitor. Don't say COM+, unless you've actually taken time to read the full disclosures hosted on http://www.tpc.org/. Stock COM+ transaction API is ok, if you want to handle update/commits in an async fashion. But don't expect it to be scalable in a massive or medium sized trading system. It will get better with Whidbey, Indigo and Longhorn, but there's still a ton of problems with Windows at the kernel level that keep it from scaling well for hardcore backend applications.

    don't bother mentioning .NET community sites that host on .NET or Match.com. Those aren't transaction heavy or trading systems. Glorified webpages that serve up database tables are simple. A decent developer can build it. Building a transaction application that can handle 500-1000 moderately complex transactions (update/insert) per second is hard. .NET can't handle it, or atleast I all the cases I've heard of in the financial industry failed miserably. If you're in this industry you already know. If you're not, you're probably saying "what bs, .net can scale just as well."

    Yeah, try to build one in .NET and tell me how many servers you're going to need. then tell me how you would run real-time analytics on all the rows in a given table when you've partitioned the table across 8 machines and each has 8 million rows. When the CTO says, the query has to take less than 30 seconds, what will your answer be?

  6. Re:c is dead... by gstoddart · · Score: 5, Interesting

    Indeed. Since most damned operating systems are written in C I don't think we'll exactly see it go away anytime soon.


    Operating systems is where C comes from, and vice versa.


    (Yeah, whatever, I'm a C geek. To me, and array of pointers to functions returning pointers to arrays of characters seems like a damned fine idea! =)


    Back in my day, we jusy wrote straight to the registers on the device and we were glad! Damned punk kids.

    --
    Lost at C:>. Found at C.
  7. Re:Overnight by primus_sucks · · Score: 4, Interesting

    But as it is I see the tremendous duplication of effort across the world to do the same things in Java and C#, and it just makes me sad.

    I think this problem would be solved by writing things in Scala. Scala compiles to .Net or Java runtime and is a far more advanced language than C# or Java.

  8. One thing you need to know about DeIcaza.. by Bowie+J.+Poag · · Score: 5, Interesting



    Hmm.

    The initiative it takes to back-engineer the .Net frame work, while admirable, is a wee bit misguided, i'd say. You have to understand what's really at play here.

    The whole idea of chasing after a proprietary standard like .Net (and treating the development process like some open source cat-and-mouse game) is pointless. It accomplishes nothing but an at-best "acceptable" knock-off.

    If Microsoft doesn't want the .Net framework available on other platforms, they're not going to make it available. Then on the other hand, if they find it's to their benefit to do so, they will make it available. It's as simple as that. Suppose you actually make it to the point where you have an equivalent framework to offer. Surprise, Microsoft releases .Net for Unix, and the entire effort is null and void. Your pride and joy is now a footnote, and a deprecated one at that. Realistically, how many people are going to feel sorry for someone who's stance reads, "Damn those fuckers in Redmond for making their framework available in Unix!" ?

    Unfortunately, Miguel seems to have a fairly long track record with this sort of Microsoft-chasing. You can run along and play catch-up all you like with other technologies, but, it'll be just like it is with Gnome ---- With Gnome, you're guaranteed nothing better than a perpetual second place finish. Gnome amounts to a Windows wanna-be, instead of a Windows-killer, when it didn't have to be that way. Miguel made it that way.

    Look...If you HAVE the talent to do something better, for God's sake, do it. Don't waste your time (and other peoples time) churning out flea market knock-offs of worthwhile products. I'm certainly no fan of Microsoft..I just call it like I see it. .Net needs not the taint of open-source muckery.

    --
    Bowie J. Poag

  9. The peril that is .Net by SuperKendall · · Score: 3, Interesting

    You might want to look at Nemerle (www.nemerle.org)

    You have brought forth the perfect example of the danger of .Net for all other languages. Take a look at one of the first paragraphs describing Nemerle from a PDF I found on the site:


    Of course, the framework is strongly object-oriented and primarily focused on traditional object-oriented and imperative languages. Therefore ports of the existing functional languages to the .NET did not fit in as well as, for example, C# [5] does. Addressing this issue was the main idea behind the design of Nemerle. In comparison to Haskell [3] or SML [2], Nemerle is not a pure language in the functional sense, allowing the programmer to create completely object-oriented and imperative programs. This makes Nemerle a good transition language for people with C-like imperative and object-oriented languages background. They can take advantage of the language imperative features until they gradually learn how to program in a functional fashion.


    No, not quite a pure language and you have to use the C# libraries. Again, a pale reflection of a real functional language with libraries that do not encourage functional use.

    But the real problem is the last sentance - "until they gradually learn to program in a functional fashion".

    You and I know how programmers are. We are built for laziness. I am that way myself. So what would happen if we put twenty programmers in a room, ten of which came knowing C# and ten knowing a functional langauge, and had them program in Numerle for a year? I'll bet 18 of those twenty would just be using C# by the end (even knowing how obsitinate supporters of functional languages such people are!), and the C# people would not have picked up a lot of functional knowledge along the way. Because knowing how C# works gets the bulk of work done in the system (as like Java, the bulk of work is done by a rich set of libraries), you will evolve to working in a C# style even in the confines of a functional language!

    How many Eiffel# programmers are there out there already? How many people have used .Net as a "Stepping stone" to learn the other languages offered by the .Net platform?

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  10. Gmone needs to distance itself from Mono by oob · · Score: 4, Interesting

    We have Gnome because Trolltech refused to release QT under a free license in the early years.

    The prevalence of KDE at that time showed us that a large proportion of the F/OSS community would cave to non-free software if it was convenient.

    Until recently a mutually beneficial relationship existed between Gnome in the community and Ximian as a commercial provider, analogous to the relationship that exists between OpenOffice.org and Sun's Star Office.

    Now that Novell owns Ximian (OK Novell are currently our friend, but that may not always be the case) and Miguel is exposing the community to litigation from Micro-Soft down the track through the introduction of non-free technologies (and procedures, methods, etc. which are likely to be covered by upcoming patent laws) the GNOME project needs to distance itself from the disruption that the Ximian guys represent in order to avoid contamination.

    Miguel has a solid reputation and has done a lot for the community, but in this case he is either (best case) a fool for thinking that Micro-Soft can be trusted or (worst case) a quisling. Either way, it's barge pole time.

  11. Re:That is where you are mistaken by de+Selby · · Score: 4, Interesting

    "There is no support for some Python features that some programs will require. Most of these are
    fairly obscure, but are a limitation. Examples include:
    - String formatting
    - Core language features, such as long integers, complex numbers, built-in object methods
    and so forth.
    - The standard Python library.
    "

    Are they joking?

  12. Re:Overnight by gabebear · · Score: 3, Interesting
    While I agree with you on every point, I don't see any of those as being very big problems.

    I still give Java the upper hand overall because it's licence. Unless Microsoft blesses Mono with a licence to use the full API, I can't see using it. Mono keeping the APIs they may not have a licence for in a seperate code-base is not enough for me.

    The only modern language that is wide-spread and licenced sanely is Java.

  13. Re:Miguel is dead! by ron_ivi · · Score: 4, Interesting
    Parent wrote: "I'm not a C++-hating C bigot "

    The more I try to hire good C++ programmers, the more I become a c++hating bigot.

    When over 95% of "C++ programmers" that I interview can't even answer this: straightforward question about virtual methods, I see no hope for the language. It seems most people who claim to be C++ programmers just say that because they use a C++ compiler and stick their functions in objects.

    The future I expect is a mix of a higher-level language (Java, C#, perhaps even Python) and C. I can think of cases where C is the right tool for the job (small memory embedded systems), and I can think of cases where Java/C# is (large scale enterprise software); but I don't see C++ as the right tool for either job.

  14. Re:Why Mono Will Fail by LarsWestergren · · Score: 4, Interesting

    There is almost no difference between C#/Mono/.NET and Java, but almost no Linux developers write in Java.

    Not quite true. Current Sourceforge statistics by language:
    1. C++ (12967 projects)
    2. C (12955 projects)
    3. Java (11446 projects)
    4. PHP (8607 projects)
    5. Perl (5388 projects)

    There is a vocal group of Java haters on Slashdot.

    There is a bigger group who is a bit wary because even though the Java Community Project exist and IBM and others are allowed to develop their own implementations, the licence is not GPL and Sun could screw things up if they turn evil or desperate.

    Check out your distribution's packages and you'll almost see more JVMs than Java apps.

    Yes, because lincence restrictions prevent them from including Suns java. The open source packages are not mature enough to run all apps, so it's pointless to include those apps. The open source implementations of the VM are impressive, but the java standard is developing too quickly for them to keep up porting all libraries. Just like .Net will evolve too quickly for Mono to keep up. Only in that case it is guaranteed MS will deliberatly include things that will break Mono.

    there's every reason to use Java, especially for applications.

    Yes, and I believe a huge reason for the upswing of Linux in businesses is the great combination of Linux and Java.

    Do NOT help Microsoft kill off Java with their .Net clone, when they are done with that they can concentrate on the single remaining target.

    --

    Being bitter is drinking poison and hoping someone else will die

  15. Re:Miguel is dead! by Frymaster · · Score: 4, Interesting
    I can think of cases where C is the right tool for the job

    but, really, there aren't that many of those. here's a statement you can argue about:

    "usage of c and it's derivatives (c++, objective-c) is more likely create buggy and insecure software. the performance gains from these languages does not make up for this loss of stability"

    seriously. direct memory management is a dangerous thing and isn't necessary for 90% of the software written in c-like languages. if you're writing device drivers or an os or whatever, it's important... but does sendmail really need to be written in c?

    would it be more secure if it wasn't?

  16. Re:That is where you are mistaken by srn_test · · Score: 3, Interesting

    I think so. They go on to mention that other missing features are things like multiple inheritance, and the ability to reference self in the constructor, and to avoid calling super-classes constructors.

    In the end, though, they come out with something about how "language neutral" .NET is.... They seem to be Windows pukes, though - they refer to .DLLs all the time, rather than the more general "shared libraries".

    There's certainly no way pretty much any Python code I've written (and I've written a lot) would run on .NET, given these limitations.

  17. Re:Overnight by ajagci · · Score: 3, Interesting

    Seriously though, .Net is a nice language with some advancements over Java, but not different enough from Java to make its existence worthwhile.

    Maybe not if your idea of programming is limited to hacking J2EE server-side components and a few flaky GUI apps.

    For the rest of us, C#'s better native interface, value classes, operator overloading, fixed generics, and fixed exception handling alone are worth it as a language alone.

    Add to that that there is a high-quality open source implementation (Mono) and a complete stack of non-proprietary open-source libraries (Gtk#, etc.), and people have really strong reasons for preferring Mono to Java.

    But as it is I see the tremendous duplication of effort across the world to do the same things in Java and C#, and it just makes me sad.

    Well, do you think that Microsoft and the OSS community are spending time on .NET and Mono respectively for the fun of it? Sun forced this duplication: through their proprietary license requirements for Java and through their poor handling of Java's technical evolution. In the end, Java's evolution is primarily driven by what makes money for Sun, and that's why Sun has neglected client-side Java and Java numerics, for example. And the reason why they could get away with that is because they have retained legal control of Java.

    So, if this "duplication of effort" makes you "sad", complain to McNealy and Gosling and Schwartz and all of the other Sun managers: it's their responsibility, it's their greed, and it's their fault that it has come to this.

  18. Re:Miguel is dead! by Gr8Apes · · Score: 3, Interesting

    So that's where all those idiot^H^H^H^H^K inexperienced OO java programmers come from! I was wondering.

    FYI, a bad OO programmer in C++ is most likely going to be a bad OO programmer in Java as well, except the language will most likely prevent them from taking down the entire machine.

    Good OO programming is good OO programming, regardless of the language.

    --
    The cesspool just got a check and balance.