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

37 of 925 comments (clear)

  1. C is Dying? by Anonymous Coward · · Score: 5, Funny

    C is dead? Has Netcraft confirmed this?

    1. Re:C is Dying? by pavon · · Score: 5, Funny

      In a recent interview, Netcraft quoted C as saying, "I feel happy" and "I think I'll go for a walk now". However Miguel was quick to point out that "C is not fooling anyone" and "is just being a big baby." Unfortunatly, the interview was cut short, and Netcraft will have to wait until next Thursday to confirm the C's death.

    2. Re:C is Dying? by Ironsides · · Score: 5, Insightful

      Obviously this guy has never been in an Engineering College lately. We are still learning C. Not C++, Not C#, Not Java, C. As in where you have to declare all your variables at the very beginning and can't declare them anywhere else. It's how we program microprocessors (among other things) in something other than assembly. And I highly doubt they will make a Java compiler for PICs, Motorolla HC11 and HC12's and various other devices any time soon. Besides, I here places are still looking for COBOL and FORTRAN programmers. Seeing as how those two are still here, C still has a long way to go before the white lillies come around.

      --
      Fly me to the moon Let me sing among those stars Let me see what spring is like On jupiter and mars
  2. Wayne's World by wtlssndlssfthlss · · Score: 5, Funny

    "I once thought I had Mono for an entire year, just turned out I was really bored..."

    --



    Karma: Terrible
  3. .NET by Anonymous Coward · · Score: 5, Insightful

    I realize that this is an unpopular opinion here on Slashdot, but C# is actually a pretty cool language and the .NET runtime is a promising platform. Microsoft didn't just dream this up overnight... they had a lot of smart people working a long time creating this beast.

    It would certainly benefit us to learn about these technologies and leverage them, rather than to unilaterally declare them evil, wrong, stupid, etc. and just bury our heads in the sand and pretend they dont exist.

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

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

    3. 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.
  4. Foot-in-Mouth Disease by adun · · Score: 5, Insightful

    Aside from being a the primary source of Mediterranean winds, Icaza has apparently forgotten about that whole "Linux" thing that is built on that whole "UNIX" thing that was built using that whole "C" thing. I applaud his salesmanship. I deplore his view that the desktop is equivalent to the operating system.

    1. Re:Foot-in-Mouth Disease by milest · · Score: 5, Insightful

      The article talks about C dying for *user* applications explicitly:
      "A great deal of serious end-user application coding on Linux still goes on in C or C++"
      "Where does this place the future of the Linux desktop..."
      "The expectation for GNOME 3.0, however, is that a lot of the platform will use Mono, rather than the C implementation it has now"

      Probably no one writes kernels in C# and there is less and less reason to write user applications in portable assembly. Programming languages are tools, and we use different tools for different jobs. I prefer to use higher level languages where it is feasible because I'm more productive. I use C where I have to, because it has features that other tools don't.

  5. 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 IAmTheDave · · Score: 5, Insightful

      Yeah, it's crappy. But heck, it's a move in the right direction. I know certain people (cough... slashdotters) are quite protective of the purity of writing unmanaged code.

      But that said, I have never developed software more rapidly than in C#. .NET has trippled my productivity (on the Windows platform) and my approval rating at work has skyrocketed as I have rolled out several solutions on .NET that are stable, solid, and effective.

      I really wish that Linux had a stable .NET equivelent (sp?) - cause then I could completely abandon Windows at home. But as long as I can code C# with such RAD success, Linux is going to have catching up to do.

      I applaud MONO. It's far from ready, but keep going. Keep working. Please - make MONO (or something else) as good as C#, .NET, and Windows Forms (and hell, ASP.NET) is. RAD is so important in the real world, that Linux would only benefit - incredibly - from a .NET like solution.

      --
      Excuse my speling.
      Making The Bar Project
    2. Re:Um, no. by cerberusss · · Score: 5, Insightful
      I really wish that Linux had a stable .NET equivelent (sp?) - cause then I could completely abandon Windows at home.

      Why don't you use Java?

      --
      8 of 13 people found this answer helpful. Did you?
    3. Re:Um, no. by Brandybuck · · Score: 5, Funny

      .NET has trippled my productivity (on the Windows platform)

      Anything other than MFC would triple your productivity.

      --
      Don't blame me, I didn't vote for either of them!
  6. MonoDevelop IDE by gmajor · · Score: 5, Interesting

    Doesn't the Monodevelop IDE look suspiciously like Eclipse?

  7. Linux contracts mono? by Black+Art · · Score: 5, Funny

    Are we supposed to clap?

    --
    "Trademarks are the heraldry of the new feudalism."
  8. Overnight by SuperKendall · · Score: 5, Insightful

    I realize that this is an unpopular opinion here on Slashdot, but C# is actually a pretty cool language and the .NET runtime is a promising platform. Microsoft didn't just dream this up overnight...

    Yes, it took at a least a couple of days to copy all the Java libraries and ReCapitalizeMethods,

    Seriously though, .Net is a nice language with some advancements over Java, but not different enough from Java to make its existence worthwhile. It's just leading to a lot of duplication of effort across the world (like Ant and Nant, or JUnit and NUnit).

    Now if they'd come up with something like Haskel# as the primary language (instead of hamstringing other languages and making all of the core libraries Java like) or something really different that actually advanced the field of programming as a whole, then I might be more appreciative 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.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  9. What language is .NET written in ?? by konmaskisin · · Score: 5, Funny

    Languages written in C:

    perl
    python
    ruby ....

  10. If I wanted MS .Net, I'd run MS... by Spicerun · · Score: 5, Insightful

    As it is, I don't want to even attempt to emulate another 'grand MS idea'...especially since there are already superior non-MS systems out there that puts .net to shame. No, I'm not going to cite those systems...do your own research. You'd be surprised.

    Die Mono Die!

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

    1. Re:Platform Independence by WombatControl · · Score: 5, Insightful
      Uhm, why would MS do this? .NET is designed to be and sold as a "cross platform" solution--a real way to do Java's "write once, run anywhere" line.

      For the same reason they did it with Java - if it's "write once, run anywhere", then why would you buy Windows licenses? Microsoft (quite naturally) wants everyone to run a Windows server and a Windows client, and having Linux be able to take either role with ease doesn't give them the leverage they need to continue their marketshare.

    2. Re:Platform Independence by Brandybuck · · Score: 5, Funny

      .NET is designed to be and sold as a "cross platform" solution

      Don't bogart that joint, my friend. It sounds like good shit!

      --
      Don't blame me, I didn't vote for either of them!
  12. Miguel is dead! by Nailer · · Score: 5, Funny

    - C.

    1. Re:Miguel is dead! by epiphani · · Score: 5, Funny

      Slightly offtopic, but a great quote about C...

      C is a language with the flexibility and speed of assembly combined with the ease of use of assembly.

      --
      .
    2. Re:Miguel is dead! by Anonymous Coward · · Score: 5, Insightful

      A man is a good programmer or he is not a good programmer. He is not "a good C++ programmer". Whether he has learnt some esoteric nuance of a language does not make him a good or bad programmer. A particular language is just an interface to the act of programming, like a GUI is an interface to the act of using, and if it does something surprising, the problem is likely with the language, not the developer.

    3. Re:Miguel is dead! by Pete · · Score: 5, Insightful
      ron_ivi:
      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.

      Seriously dude, that is most definitely not a straightforward question. It's carefully designed to test your understanding of some of the subtle tricks and traps of C++. And one of the "tricks" it uses to mislead you has nothing to do with inheritance, rather with implicit casting.

      I must admit I got tripped up on it though, mainly because I'd forgotten the distinction between hiding and overriding. The question is nasty, ugly, and was intended to be as confusing and tricky as possible... and any programmer that writes code like that (especially something involving changing the default value of a parameter for an overriden method) ought to be shot.

      BTW, if you're asking questions out of GOTW as interview questions, I can only say that that's pretty nasty - except perhaps as a final round question for some of the really cocky smart-arse types :-). Or if you're looking for a seriously hard-core C++ expert, in which case you'd probably expect him/her to have read all of GOTW and Sutter's books and know all the answers off by heart anyway.

      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.

      There's certainly a depressing number of such people about - though nowadays they're mainly moving into Java, a language better suited to their limitati^Wcapabilities. And I say "Hooray!" to that :).

      Pete (who has for the last two months been maintaining/debugging/adding features to a 1998-era MSVC6 project, written by a guy who really had no idea about C++. Sigh.)
  13. 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

  14. Netcraft confirms: C is DYING by Joey+Patterson · · Score: 5, Funny

    It is official; Netcraft confirms: C is dying

    One more crippling bombshell hit the already beleaguered C community when IDC confirmed that C market share has dropped yet again, now down to less than a fraction of 1 percent of all servers. Coming on the heels of a recent Netcraft survey which plainly states that C has lost more market share, this news serves to reinforce what we've known all along. C is collapsing in complete disarray, as fittingly exemplified by failing dead last in the recent Programming Language Usage Audit.

    You don't need to be Scott McNealy to predict C's future. The hand writing is on the wall: C faces a bleak future. In fact there won't be any future at all for C because C is dying. Things are looking very bad for C. As many of us are already aware, C continues to lose market share. Red ink flows like a river of blood.

    C++ is the most endangered of them all, having lost 93% of its core developers. The sudden and unpleasant departures of long time C developers Mark Markup and Sally Smith only serve to underscore the point more clearly. There can no longer be any doubt: C is dying.

    Let's keep to the facts and look at the numbers.

    C++ leader Theo states that there are 7000 users of C++. How many users of C# are there? Let's see. The number of C++ versus C# posts on Usenet is roughly in ratio of 5 to 1. Therefore there are about 7000/5 = 1400 C# users. C++ posts on Usenet are about half of the volume of C# posts. Therefore there are about 700 users of C++. A recent article put C# at about 80 percent of the C market. Therefore there are (7000+1400+700)*4 = 36400 C++ users. This is consistent with the number of C++ Usenet posts.

    Due to the troubles of Redmond, abysmal sales and so on, C++ went out of business and was taken over by Microsoft who sell another troubled programming language. Now C# is also dead, its corpse turned over to yet another charnel house.

    All major surveys show that C has steadily declined in market share. C is very sick and its long term survival prospects are very dim. If C is to survive at all it will be among language dilettante dabblers. C continues to decay. Nothing short of a miracle could save it at this point in time. For all practical purposes, C is dead.

    Fact: C is dying

  15. Exactly by SuperKendall · · Score: 5, Insightful

    Exactly, there will be "kind of" a functional language - which has to use the same libraries everyone else does, which are all just like the Java libraries. So people using this pseudo-functional language will be hard-pressed to really see the advantages of a functional language as you would if you had a real function language with a set of libraries as broad as that offered by Java.

    I formed this opinion long ago, just around when C# first came out, when I read an article by one of the founder of Eiffel talking about how Eiffel# would work (I wish I had not lost the link - I can no longer find this article). He saw opportunity at that point to gain new Eiffel programmers. But I saw only a tar baby, where the longer you worked with the system the more you just said "Well, all I'm doing is calling C# libraries with this weird syntax so I might as well make life easier by just using C#". .Net and C# is the perfect vehicle to migrate users of all other languages to C#, not really to make life easier on people who want to work in one of the non-C# languages.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  16. That is where you are mistaken by SuperKendall · · Score: 5, Insightful

    .Net is the platform in which C# is the closest natural representation of what the bytecode is like. As such, .Net is a vehicle for C# and a distorted reflection of all other languages.

    Yes, .Net is the VM and C# the language. But as Java has shown, it's not really so easy to keep the two wholly separate. They are interdependent to some extent.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  17. 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.
  18. Why Mono Will Fail by cryptoluddite · · Score: 5, Insightful

    There is almost no difference between C#/Mono/.NET and Java, but almost no Linux developers write in Java. Check out your distribution's packages and you'll almost see more JVMs than Java apps. And for some reason Linux developers avoid Java like the plague, even though it's got a godzillion features that make everything so much easier (garbage collection, huge consistent class library, security, etc). 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.

    The Linux culture has so far prevented Linux from taking the next step. Just look the (essentially) complete lack of interest in gcj (gcc open-source java). Just look at the slow pace of Mono. It isn't goind to happen anytime soon, unless the Linux app community wakes up and sees the future. Yeah, 10 years from now we'll still be doing manual memory management. Sure...

  19. Re:C is dead? by maraist · · Score: 5, Insightful

    C is inferior, yes. It's hardly dead though.

    I think C deserves a little more respect than a blanket comment like this.

    We still have assembly languages today for several reasons, even though it's been "dead" since the 80's. Driver writers, compiler writers, and high performance inner-loops of scientific apps NEED snippets of assembly.

    Thanks to the design goal of c (as the paint on the metal), you can now program in mixed c/assembly and thus never have to actually write anything in raw assembly files anymore. But you still write with the intention of generating specific sections of assembly.

    The people that write c are those that are resource conscious. I am not aware of ANY other language that is allows resource management as well as C. "performance" is just one resource, and I know many argue that JIT's counter-balance the performance advantages of optimized c. I still refuse to belive JIT's have ever approached -O3 performance, but am willing to concede that a well written VM app can perform acceptibly.

    ButMemory is another key resource management position that sometimes requires hard computer science to derive workable solutions.. When you abstract how resources are utilized (via a VM), then it negates the value of such hard computer science. Note that this ONLY applies to a particular problem space. Though, a non-trivial problem space to be sure.

    The point is thus that the classic paradigm of "the right tool for the job" is essential here. There are MANY problems that are best done with low level, very concise languages like c. Most OS components, VMs, or fast-duty-cycle applications should very well have core work done in c/assembly.

    The obvious other end of the stick is managing large amounts of code, for which assembly need not apply, and c is indeed becoming a distant memory as I think you are implying. Yes, web-services and many such fast-to-deploy applications transcend c, but don't be too quick to write-off the value in having a generation of computer scientists that are not well enough versed at writing low level applications.

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

  21. Danger! by dmiller · · Score: 5, Insightful

    I respect Miguel, but I think he seriously underestimates the risk posed by MSFT's patents in this area. Quoth the article:

    Microsoft has granted a license to use this technology under so-called "reasonable and non-discriminatory" terms.

    "Reasonable and non-discriminatory" (RAND) does not imply "free". RAND was the proposed licensing requirement for W3C patents that was howled down by the community.

    Given that MSFT is willing to finance SCO to use arguably illegal tactics to destabilise and discredit free software, who would expect that they are above enforcing a small fee for every patent needed to implement Mono? They needn't do this immediately, in fact it is in their interest to wait until the technology is widely adopted, so they can slug everyone at the same time. Note that the usual legal defences against "submarine patents" won't work either if the terms have been disclosed to be RAND all along.

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