Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Slashdot Log In

Log In

Create Account  |  Retrieve Password

Mono and dotGnu: What's the Point?

Posted by michael on Fri Feb 13, 2004 11:29 AM
from the fighting-words dept.
joeykiller writes "The Register features an opinion by Neil Davidson, asking 'Mono and dotGnu: What's the point?' Some of the points he raises may seem irrelevant for open source supporters (like why make a C# compiler while Microsoft's is free anyway), but others are thought provoking and maybe a little bit controversial. You may not agree with his opinions, but it's an interesting read anyway."
+ -
story
This discussion has been archived. No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More
Loading... please wait.
  • Free for who? (Score:5, Interesting)

    by abrotman (323016) on Friday February 13 2004, @11:32AM (#8269559)
    Last I knew, the .NET framework was only available for Win32 and FreeBSD. Has this changed recently? I dont really see a problem with Mono. If they can make it so that System.Forms works with GTK/Qt, that would be rather nice. I would imagine this would lead to tons of portable apps. Of course .. Maybe i dont understand .NET
    • Re:Free for who? (Score:5, Informative)

      by Utopia (149375) on Friday February 13 2004, @11:44AM (#8269713)
      The implementation you are taking about - Rotor - is also ported to support Mac [oreillynet.com] & Linux [ondotnet.com]
    • Re:Free for who? (Score:5, Insightful)

      by Shillo (64681) on Friday February 13 2004, @11:55AM (#8269840)
      Mono is currently focused on properly wrapping Gtk and GNOME functionality (pure wrappers, without going through Forms). There are already a few apps that use this, and at least one is IMHO a potential killer app (namely Dashboard).

      It goes without saying that both Gtk and Gtk# (Gtk wrapper for Mono) work on Windows, too. So you don't lose cross-platform angle, but this does show that Mono is *not* just a .NET knockoff.

      --
      • Re:Free for who? (Score:5, Informative)

        by kevlar (13509) on Friday February 13 2004, @12:24PM (#8270158)
        Mono _IS_ the .NET Framework. So how is it not a knock off? Because it runs on Linux?

        And just because Mono uses GTK which can also run on Windows does _NOT_ mean that there is no work involved in porting it to another architecture. The fact of the matter is that porting from windows to linux to bsd to solaris will always involve some sort of functional changes.

        Mono is simply .NET for non-Windows environments. Its a .NET Knock off.
          • Re:Free for who? (Score:5, Informative)

            by kevlar (13509) on Friday February 13 2004, @12:53PM (#8270479)
            Calling Mono an extension to .NET because it uses Gnome is like calling a Ford car chassis with a Yugo engine an enhanced vehicle.

            Mono feeds off of the various Linux GUI libararies in order to implement the windowing requirements for .NET.

            Mono offers no improvements to .NET as a Framework. They are also nowhere near completion of implementing the entire Framework. Right now Mono is a "neat tool" which might let you run your C# app under Linux (no offense to your work and efforts intended, Miguel).
                    • Re:Free for who? (Score:5, Insightful)

                      by William Tanksley (1752) on Friday February 13 2004, @05:32PM (#8274156)
                      I understand where you're coming from, but none of these points pertain to the .NET Framework as a Framework, but rather what you can build with it.

                      No. You can't build GTK# using only the Framework, any more than you could build Windows.Forms using only the Framework. You need GTK for GTK#, and you need Win32 for Windows.Forms.

                      Windows.Forms is part of Microsoft's .NET Framework, and GTK# is Mono's extension to the .NET Framework to allow more portable .NET graphics.

                      The Framework is the CLR and standardized API.

                      Right. And Mono implements the CLR decently (minus a few features), then implements the API decently (minus a lot of features, but slowly catching up); then it adds to that API more features.

                      Constructing their own GTK# language

                      API, not language.

                      and database access is not an extension to "The Framework" but rather an implementation of the "The Framework".

                      Wow. No. Not even. Ever. Under any definition.

                      Both of those things (GTK# and the database API whose name I've forgotten) are APIs that Mono developers have, that the .NET standard doesn't, but which could be added to .NET. They're extensions.

                      They are NOT a implementation of the Framework. Mono is an implementation of the Framework.

                      Unless they are making modifications to the CLR and/or adding new instructions to the CIL, they're not extending anything,

                      Great! Then we agree -- because Mono makes modifications to the CLR (by providing more APIs), it's extending .NET.

                      [they're not extending anything,] anymore than I do when I write my own application.

                      But Mono isn't just a .NET application. If you wrote a reimplementation of .NET that had more capabilities in its APIs than Microsoft's, then you'd be extending .NET just the same as Mono is.

                      -Billy
      • Re:Free for who? (Score:5, Informative)

        by miguel (7116) on Friday February 13 2004, @11:54AM (#8269824) Homepage
        You are incorrect.

        We have turned Wine into a library, very much like Gtk+ is a toolkit on top of X, or Motif is a
        toolkit on top of X, we have turned Wine into a toolkit on top of X.

        The reason for doing so is that Windows.Forms is not a perfect API, it is modeled after the
        Win32 API, and this Win32-ism is exposed at various points, for example every Control in
        Windows.Forms can override the Wndproc method and handle Win32 messages itself to implement
        some of the advanced features that are not possible with the simple binding provided.

        Most GUI special effects are achieved in this way, and most third-party libraries that you can
        download from the network will call into the Win32 layer, skipping the Windows.Forms API.

        It is certainly possible to emulate a lot of this without using Wine, but you would just end up
        replicating a lot of the work that has been done in Wine.

        So instead, we chose to turn Wine into a library that we dynamically load whenever a
        component needs to use Windows.Forms.

        We made Wine work on multiple platforms (so you can run your Windows.Forms applications on
        MacOS X for instance), and we also are integrating it with the Gnome desktop,
        so things look and feel the same to end users.

        You can learn more about the technical details here: http://www.go-mono.com/winforms.html
        • by cwhicks (62623) on Friday February 13 2004, @12:07PM (#8269973)
          Somebody mod this guy down, he doesn't know what he is talking about. ;)
        • by Vagary (21383) <{jawarren} {at} {gmail.com}> on Friday February 13 2004, @01:08PM (#8270648) Journal

          The grandparent is correct to complain that it is an unstable mix due to the fact that both Wine and Mono are under rapid, and asynchronous development.

          About 6 months ago, when I gave up on using Mono for development, the Windows.Forms implementation required applying custom patches to a specific nightly build of Wine which was so old that Mono was the only place to get it from. So maybe if you were successful in getting your patch into the main Wine tree, and maybe after Wine matures a lot, Mono will be worth another look.

          Also, I understand that the Mono team is aiming for complete compatibility, but I'd be tempted to declare that platform-specific hooks are unacceptable in a VM. After all, SWT seems to have achived fine graphics control with a much more abstract solution.

          • by miguel (7116) on Friday February 13 2004, @01:31PM (#8271002) Homepage
            I agree that going our own path is a more robust
            and better solution. And that is exactly what we
            have done with our own toolkit called "Gtk#".

            Gtk# not only is very nice to program with, but it
            is also cross platform and people are using it
            in some cases instead of Windows.Forms on Windows
            itself.

            That being said, our effort to support the Windows.Forms
            API is not driven by a need to have that API at all,
            we believe it is one ugly API. Our drive to support
            it comes from the fact that people are using it,
            and have made certain assumptions about it.

            So to us Windows.Forms is a compatibility play,
            and one that we have to support to assist people
            who want to try Mono as a way of moving their apps
            to Linux.

            The API we are recommending developers to use is
            the Gtk# API.

            Hope that answers the question
  • by burgburgburg (574866) <splisken06@ema i l . com> on Friday February 13 2004, @11:33AM (#8269573)
    By the time Mono is anywhere near 90 percent of the current functionality of .NET, Microsoft will have released Whidbey, Yukon and probably Longhorn.

    Right after we see the releases of Duke Nukem Forever and Doom III.

  • by 192939495969798999 (58312) <info&devinmoore,com> on Friday February 13 2004, @11:33AM (#8269574) Homepage Journal
    It's not really free if you are using Microsoft, because they anticipate that in order to use C# compiler, you will need other Microsoft products that cost money. They aren't a non-profit organization! That's a great reason to make YAC#C.
  • by Meat Blaster (578650) on Friday February 13 2004, @11:34AM (#8269578)
    The points are avoiding vendor lock-in, remaining within a comfortable framework, and having the potential to extend things in your direction instead of Microsoft's.

    Although their time might be better spent in designing a true alternative to Java and C# instead of a copy that allows you to write a GNU application that runs everywhere, it's hard to fault Mono for recognizing a market niche and running with it. For example, maybe they'll make C# work on Linux embedded devices where Microsoft wouldn't go?

    • by Karamchand (607798) on Friday February 13 2004, @11:49AM (#8269775)
      You don't get it :)
      He understands all these points well. But he doesn't think it's a good thing because then everyone - even on Linux, even on embedded devices - will use .NET and whenever Microsoft feels like it (i.e. when Mono/dotGNU really have a market share) they can enfore their patents and - whooops, Mono/dotGnu have vanished.
      Regards
      • by Slime-dogg (120473) on Friday February 13 2004, @02:40PM (#8271869) Journal

        ...they can enfore their patents and - whooops, Mono/dotGnu have vanished.

        Are you sure you have a good understanding of what a patent is? They are not enforceble if you do not use the same method as the one that is patented. Essentially, MS has patented certain algorithms that happen within Windows.Forms, which can be and are being rewritten in another way.

        I doubt that an API is patentable, since it isn't a method or a material object. Then again, if it were, enforcing it against Mono or DotGNU is pointless... the projects are not profiting from the sale of the technology. They don't even exist in the same marketplace as the framework, since they are completely free.

    • by meadowsp (54223) on Friday February 13 2004, @11:59AM (#8269880)
      It's a more established framework and a lot more cross-platform.

        • by meadowsp (54223) on Friday February 13 2004, @12:27PM (#8270200)
          I'm sorry you don't find it to be true in the real world. I develop JSP/Servlet java on a windows 2000 box and deploy it to red hat linux. And every time it works exactly the same on each of them, so I would say it is true, at least in my experience.
      • by eraserewind (446891) on Friday February 13 2004, @11:59AM (#8269881)
        Well, J2ME seems to be the alternative choice for embedded apps, so I don't really see why not. It's not like they are going to implement an RTOS kernel in it. The point of these kind of managed code is to provide a sandbox for 3rd party apps to run on embedded devices, so they don't mess things up, and to provide a cross platform environment so app developers don't need (in theory at least) to have separate products for every single device out there. Sure it's slow, but it's also safe.
      • by Cereal Box (4286) on Friday February 13 2004, @12:01PM (#8269903)
        And Java is a better choice for embedded systems? Obviously native code is best, but you can't deny using languages like Java or C# on embedded systems -- the demand is obviously there. And .NET is bloated and produces "extremely bloated and slow programs"? By all accounts I've read, between .NET and Java, .NET is the one with the performance advantage (and a significant one at that).
      • by GeckoX (259575) on Friday February 13 2004, @12:20PM (#8270123)
        Good idea. Take something that is extremely bloated (.NET) that produces extremely bloated and slow programs (C#)
        You have proven with this statement that you have absolutely no idea what you are talking about. From someone who is actually using .NET and C#, I can say without a doubt that this statement is pure FUD. Compare the bloat and speed to Java or VB, now where are you at? Now add in all of the other features, like portability, interoperability, ease of development, wonderful design-time tools etc etc... No, it's not as tight, compact and speedy as well written C/C++/Assembly, but if you expect that well, apples and oranges really as they are totally different beasts...right tool for the job and there are a LOT of jobs that .NET and C# are an extremely good choice of tool for.
  • by Anonymous Coward on Friday February 13 2004, @11:36AM (#8269610)
    ... doesnt always mean it makes sense from a resource point of view or from "the big picture". But that is the price with people giving up their own time.

    I, myself, am happy to have the chance to sample some of this work for free. Who am I to judge since I'm not paying?
  • Motivations (Score:5, Insightful)

    by Pedrito (94783) on Friday February 13 2004, @11:39AM (#8269653) Homepage
    As a .NET developer, frankly, I don't care what the motivations of Mono develoers or dotGnu developers are. Maybe I should be, but I'm not. I'm building an open source project in .NET and I want Linux, BSD and Mac OS X support (the latter two, hopefully with the help of SSCLI), and frankly, whatever other platforms I can include.

    I don't want to use Java. First of all, I've never used it to develop software. Second of all, every user interface I've ever seen done with Java stinks. Maybe I've been seeing bad examples, but the windows, buttons, and other contols of the Java apps I've seen have an old fashion look and feel to me and I don't care for it. My personal opinion, but for me, that counts for something.

    .NET is a really nice development environment. As much as I don't care for Microsoft, I have to admit that since I adopted C# about a year and a half ago, my production has roughly tripled, maybe more. I've never had ANY technology have that kind of impact on my development before, unless it was the reverse (making me 3 times LESS productive).

    So, whatever the motivation of Mono or dotGnu, I simply want to develop my cross-platform C# apps. That's MY motivation, and that's what matters to me.
    • Re:Motivations (Score:5, Informative)

      by Karamchand (607798) on Friday February 13 2004, @11:52AM (#8269806)
      Concerning Java GUIs: Take a look at SWT (Standard Widget Toolkit). You might be interested in it :-)
    • Re:Motivations (Score:5, Informative)

      by Anonymous Coward on Friday February 13 2004, @12:05PM (#8269950)
      ...Second of all, every user interface I've ever seen done with Java stinks. Maybe I've been seeing bad examples, ...

      Most Java apps are not client side apps. Java is (at least at the moment) still heavily server-side. So looking at GUI apps as a mark of quality of Java as a development language is highly misleading, although understandable.

      However, take a look at Swing Sightings [sun.com] for some examples of truly outstanding Java GUI apps...

  • by Valar (167606) on Friday February 13 2004, @11:40AM (#8269663)
    Could it be that we want to run .NET programs under Linux? Or, better than that, that we (linux using programmers) would like to be able to write .NET programs without booting into windows? His points about mono and dotGNU just replicating features already availible in .NET is irrelevant... because they aren't availible on our platforms. Sure, there would be nothing great about windows.forms in X, if we already had a way to do windows.forms stuff in unix. We don't. And his points about microsoft adding all kinds of features to the languages and the .NET library is pretty irrelevant: a) mono is probably going to add those features to the compiler and libraries as soon as possible anyway b) in the state mono is in right now, it is possible to do just about anything you would need to write any possible .NET application c) as long as ms's .NET compiler still generates the same CLI, it would be possible to run the programs in mono (assuming it is something that doesn't have huge chunks of embedded C or anything).

    In the end, I feel like I've been ASTed.
  • by F2F (11474) on Friday February 13 2004, @11:41AM (#8269678)
    just now El Reg published some of the angry letters in defence of .GNU:

    http://theregister.co.uk/content/35/35557.html [theregister.co.uk]

    not that i'm trying to defend .GNU, just presenting a counterpoint.
  • by Kupek (75469) on Friday February 13 2004, @11:48AM (#8269759)
    While providing freedom of choice might be reason enough to justify a project, practical programmers could be asking: What's the point?

    Linux, maybe? Mac OS X? Free BSD? I see getting C# programs to run on other platforms as a practical purpose. Later on in the article he acknowledges that you'd be able to run these programs on Linux, but that's more like a throw away concession he makes. He plays dumb in the beginning, and makes himself look silly.

    How is making C# a standard on Windows and Linux going to hurt Microsoft?

    I think that the people behind the project have better goals than that - namely, getting a particular tool to work on Linux. People use Linux for a variety of things. It would be nice if C# - just another tool - worked under it. What's the big deal?

    There is an obvious practical purpose to getting C# programs to run on Linux. The real question, however, is will the .NET framework on Linux be good enough so that people will actually want to use it? That's a very real question, but it's not the main one he's asking.
  • by elwinc (663074) on Friday February 13 2004, @11:49AM (#8269764)
    Sure, right now there's a version that's free from MS, and probably fairly unencumbered. But for how long? Well, as long as Java is still competitive.

    If Sun and Java die, MS will be free to add proprietary bits, and we'll still want a free version.

    Also, although there are some nice things in C# (such as being able to work with arbitrary C pointers and data structures returned by C functions), we may want to tweak the design a little, or extend it to work with python or lisp or other languages. The idea of a "glue" language that can call routines written in many languages is very appealing. Sometimes you might want to have one program that can deal with low level data structs like C, handle resolution theorem proving like haskell, and maybe strings like snobol. With a good glue language, yuo could write each routine in its appropriate language, then glue them all together.

  • I have to agree (Score:5, Interesting)

    by Lysol (11150) on Friday February 13 2004, @11:57AM (#8269861)
    As someone who contributed a little code to gotGnu, I kinda started thinking, what's the point? What is the point of running .Net on a non-M$ OS?

    I can see one value, which is it allows those 'stuck' (I don't really believe in that concept, but whatever) on Windows to migrate off it. But in the same line of thought there's also this huge issue which is M$ and they way it trys with all the power of the universe to prevent that. Whether it be licensing tricks or slashed pricing, or plain 'ol FUD - in the end, they'll do whatever's possible to keep people locked in.

    And honestly, I have to raise an eyebrow to anything M$. I mean, C# is a specific jab at Java. Java wasn't built to wrestle control away from M$ C++ and their dev tools. So something that is made to ward off something else that, in my book, is a pretty good thing for Internet developers, is pretty sketchy. Not saying Java is the king or anything, but the underlying reason for C# is: we (M$) can't control Java, so screw you, we'll copy and extend, build the concept of a VM (CLR) into our OS, and then woo all those productive ;) Java developers over to a real platform.

    Lastly, any Open Source/Free versions of .Net are playing with fire. If Mono or dotGnu were wildly successful, then M$, owning all the patents, copyrights, and trademarks, would pull the legal card and shut them down or just plain not interoperate with them - yes, I know portions of .Net are part of ECMA [microsoft.com]. However, this isn't the days of the 80's or 90's where you could reasonably get away with this stuff and everything under the electronic sun wasn't patented. Nowadays the control and nastiness in the business software world is unparalleled - just look at that guy that patented the concept of 'web stores' for example. So, while my hat is off to all the people who have really busted their ass on Mono and dotGnu, I ultimately feel that it will be a lesson in frustration and disappointment.

    And also, for me, there's just something filthy about the M$ development universe. I find their tools are kludgy, bloated, and too foofy. And I don't like having to install five thousand libraries and integrated-this or integrated-that, plus an update here and an update there - I'm not a fan of everything integrated into the OS. Granted, Net Beans can have a huge footprint and I didn't say that it is a great app (don't care for IDEs either), but there's just a something about M$ tools that I just don't and never have liked - this naturally extends all the way through their whole stack. So seeing a HelloWorld VB app running on Linux kinda makes me shutter and just kinda think why? I'm sure the natural answer for some will be - because. Meh..
  • by Cthefuture (665326) on Friday February 13 2004, @11:58AM (#8269871)
    Ok, so the article is a bit harsh. I agree with a lot of what he said but he missed one major point and is just plain wrong on a number of things. I don't think Mono is about destroying Microsoft or providing choice. It's about using a nice(*) language like C# on Linux. That statement alone kills his whole argument.

    He missed a very important problem though. Performance. I admit that I haven't played with Mono in 6 months or so but last time I tried it the Microsoft runtime/compiler/JIT/whatever was hella faster than Mono. Several times faster.

    I'm not sure if the Mono developers will be able to achieve the sophistication required in the compiler and runtime while still doing all the other stuff that needs to be done. Time will tell.

    (*) I like C# better than Java. Especially the interface to native DLL's (not perfect but way easier/simple than Java). Plus C# was designed from the beginning to have things that Java only recently got (generics anyone?).

    With that said, I still think C/C++ are just as portable, much faster, and don't require stupid memory sucking VM environments. If only we had C++ equivalents to the huge Java and .Net libraries.
  • The true question: (Score:5, Insightful)

    by happyDave (155169) on Friday February 13 2004, @12:02PM (#8269922) Journal
    I think the real point that he's missing is that every project undertaken on Open Source that's a direct response to something that Microsoft is doing is a step in the direction of eliminating barriers to entry [joelonsoftware.com]. Anything that can be done on an Open Source platform that could previously only have been done in a Closed Source environment is a good thing.
  • by jaywhy (567133) on Friday February 13 2004, @12:17PM (#8270076)
    I don't know why everyone in the open source community feels compelled in chasing behind Microsoft technologies, whether it be Mono or Wine. When I talk to people about the benefits of Linux and open source; I always seem to always mention Apache, Perl, and MySQL. I mention these products not because there based on or copied from Microsoft technology. It's because they are innovative open source projects. These open source projects do well not because there open source; but because there BETTER then there closed source counterparts.

    We shouldn't lag behind and chase Microsoft's coattails. We should instead innovate; create our own .NET our own technologies, and make them BETTER then their closed-source counterparts. That's the only way we win. You cannot win a race by chasing your enemy. You must pull ahead.
  • by BCGlorfindel (256775) <klassenk.brandonu@ca> on Friday February 13 2004, @01:00PM (#8270556) Journal
    I'm seeing alot of people complaing about how mono is a waste of time because MS can pull the carpet out from under everyone with proprietary library updates that will prevent .NET apps from running on mono. That is entirely probable and it is most likely beyond the ability of the mono team to keep up with such changes. Let alone the time to ensure .NET to mono compatability. But give the mono team some credit, don't you think they too might know this? I ask this question to all the waste of time whiners: What can MS do to stop mono to .NET compatability?

    That's right, open source projects written in mono will have the ability to run under both linux and windows, mono and .NET, without any rewrites, and with a consistent feel. That is the point. It would speed the cross-platform development of projects like Mozilla and OpenOffice that both windows and linux users alike are trying. What better way to transition users dependent on windows apps(not windows itself) to a linux environment, one app at a time. Forget about allowing the commercial .NET programs to run under mono, think about replacing them with equivalent Open Source mono apps.
  • Quote from Miguel (Score:5, Interesting)

    by Chris_Jefferson (581445) on Friday February 13 2004, @01:04PM (#8270587) Homepage
    When people begin talking about how mono is just reimplementing "evil microsoft products", I always like to draw out this quote from Miguel (sorry for stealing it!)

    * GNU was based on a proprietary technology. GNU is a free re-implementations of Unix. Linux is a re-implementation of the Unix kernel. Before the advent of Linux and the Berkeley Unix, Unix was a proprietary technology, built by ATT (which back in the day, was a monopoly). Still, developers took what was good from Unix, and reimplemented a free version of it. Down to the Unix programming language: C (which was also invented at ATT). Even C++ was invented at ATT. Think of Mono as following the same process: we are bringing the best technology out there to our beloved free software platform. And at the same time it serves to be a magnificent upgrade on the development platform.

      • Re:One reply (Score:5, Interesting)

        by miguel (7116) on Friday February 13 2004, @11:57AM (#8269856) Homepage
        The Mono team has grown as a result of the Novell
        acquisition, from five developers to a team of
        fifteen developers.

        We are only working on Gtk# support.
      • Re:One reply (Score:5, Informative)

        by realnowhereman (263389) <andyparkins@nOsPAm.gmail.com> on Friday February 13 2004, @12:14PM (#8270047)
        You're missing something. The article explained it, but it goes something like this...
        • Someone else (Microsoft) writes a C# compiler in C/C++/whatever.
        • You write a retargetable C# compiler in C#.
        • Using the existing (Microsoft's) compiler, compile your compiler.
        • Using this compiler (which you have the source to), compile your compiler.
        • Using this compiler, retarget for whatever platform you wanted
        • Congratulations, your environment is self-hosting and no longer requires the original compiler.


        This problem has been in existence forever - how can it be that C compilers can be written in C? (Hint: the first one wasn't)
      • by miguel (7116) on Friday February 13 2004, @12:09PM (#8269992) Homepage
        We are aware of a bug in the JIT compiler in the PPC,
        something that we are actively fixing.

        (We do not officially support the MacOS X for this
        very reason: we are not done yet with the port,
        the technical detail has to do with the patching
        of generated methods to point to new methods that
        are JIT compiled on demand, and the issue there
        is that the PPC needs more room to do calls that
        span the +32/-32 meg barrier, so you need to build
        some thunks, not hard to fix, and on our todo list)
        The Mono C# compiler works on OS X, we use it to
        build all the class libraries and Gtk# as well.

        Miguel
      • Re:One reply (Score:5, Insightful)

        by Pedrito (94783) on Friday February 13 2004, @12:16PM (#8270069) Homepage
        C# exists to kill Java. By furthering C# you help Micros~1. .NET exists to kill Java. By furthering .NET you help Micros~1.

        That YOU are so sycophantic re: Micros~1 and mono is the greatest irony of all time. It would be funny if it weren't so truly stupid and truly dangerous.


        This is a variation of killing the messenger for delivering the message. Instead you want to kill the message (.NET and C#) because you don't like the messenger (Microsoft). Frankly, I think it's just as stupid as killing the messenger.

        Miguel thinks, and frankly, I agree, that .NET and C# are superior to Java in some respects. I don't think creating a .NET platform for Linux hurts Linux nearly as much as it helps.

        Has WINE helped or hurt Linux? It provides people a layer of compatibility that allows them to migrate to Linux. That's REALLY important to a lot of people, companies, and governments who are deciding which platform to use. If I'm a government agency and I have a custom tool written in C# and now we're thinking about whether to switch to Linux or continue using Windows, I have an option. Without Mono and dotGnu, my decision is made. I have to stick with Windows or rewrite my software. Which one do you think will cost me more.
        • Re:grrr. (Score:5, Insightful)

          by Baki (72515) on Friday February 13 2004, @12:07PM (#8269972)
          Java is available on many more platforms though. And the JVM spec is open, plus all classes are available in source code.

          As for .net, only parts have been opened. Large and essential parts are closed and subject to change. Its potential for "run everywhere" is much smaller, and danger for vendor lock in much higher.

          Technically, .NET/C# is just like JVM/Java. Except that Java is older and more mature, which has advantages but also some disadvantages (cannot break backwards compatability). Many of C# extra "features" are unnecessary "syntactic sugar", some are superfluous and harmful, and those that are truely useful appear in JDK 1.5 soon. Plus, in JDK 1.5 gets features such as generics which are coming in .net as well, but at a much later time.

          You can also compile many language in JVM, but SUN has never used that as a selling point since it is pretty silly. All .net languages are fundamentally equal, just the syntax is different.
      • by somethinghollow (530478) on Friday February 13 2004, @12:25PM (#8270186) Homepage Journal
        I'll sum up the article: It'll be a really long an arduous task to be fully compatible with Microsoft's .Net stuff, so don't even try.

        I'm sure Linus would have gotten the same sort of flack when making Linux. But he started the project, and look what it is becoming.

        I think what the guy doesn't see is that not everyone 1) wants to program/compile on Windows (let alone whether they have a copy) and 2) wants to run this supposedly cross-platform language only on Windows.

        It's okay to have dreams of bringing down a monopoly, but the point of an open source project is to have other options. Even if it is a long and arduous task, it still has merit, and should still be done, even if for just another option.

        Now, if Microsoft makes a Linux compiler for .Net and a X11 implementation of Windows.Forms, then the article might have a little more validity. At least then there would be a choice of OSes.
      • by e2d2 (115622) on Friday February 13 2004, @01:11PM (#8270701)
        As for me, I think it's a cute project, but it's only use I see is cross-platform GUI applications. (a good thing for Linux adoption by the masses) And Mono is way off for doing that.

        And that "cute" use is enough to get Microsoft developers like myself actually interested in Linux development.

        1. So Win32 developers can create applications in a high level environment similiar to Java on linux. Java is great. But so is .Net.

        2. So we can port .Net applications to Linux faster.

        I want to use c# and .net on Linux. I'm not gonna sit here and ponder the what ifs the article author ponders. He is just a troll seeking eyeballs and a clue.

    • Re:Mono is evil (Score:5, Interesting)

      by selderrr (523988) on Friday February 13 2004, @12:30PM (#8270228) Journal
      it will be next to impossible to write Windows software in the future without embracing .NET
      this is such horsecrap !
      you mean that any old app written in C or C++ will break ? that gcc won't compile anymore ? FUDFUDFUD ! amazing this shit gets moderated insightfull !!!
      this is so much alike 8 years ago when everyoner was yelling that soon MFC would be the only way out. guess what ? I still write non-mfc c++ code. you might want to look at this [tinyapps.org] site. are you suggesting that none of these will run/compile anymore under longhorn ? dude : it's JUST AN OS on JUST A CPU. it runs machinecode. that's all
    • Re:you do know.. (Score:5, Insightful)

      by Waffle Iron (339739) on Friday February 13 2004, @12:30PM (#8270233)
      that C# and IL are an international standard (at least in ECMA's eyes) and MS has absolutely no control over the language right?

      They have no control over C# standards in exactly the same way they have no control over HTML standards: Developers code to the Microsoft implementation, regardless of what the "standard" may say.