Slashdot Mirror


Mono and dotGnu: What's the Point?

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

24 of 493 comments (clear)

  1. Free for who? by abrotman · · Score: 5, Interesting

    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

    1. Re:Free for who? by Utopia · · Score: 5, Informative

      The implementation you are taking about - Rotor - is also ported to support Mac & Linux

    2. Re:Free for who? by miguel · · Score: 5, Informative

      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

    3. Re:Free for who? by cwhicks · · Score: 5, Funny

      Somebody mod this guy down, he doesn't know what he is talking about. ;)

      --
      - I like pudding.
  2. One quibble: by burgburgburg · · Score: 5, Funny
    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.

  3. bright people doing what they like for free ... by Anonymous Coward · · Score: 5, Insightful

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

  4. Motivations by Pedrito · · Score: 5, Insightful

    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.

    1. Re:Motivations by Karamchand · · Score: 5, Informative

      Concerning Java GUIs: Take a look at SWT (Standard Widget Toolkit). You might be interested in it :-)

    2. Re:Motivations by Anonymous Coward · · Score: 5, Informative

      ...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 for some examples of truly outstanding Java GUI apps...

  5. Re:Um... not free exactly... by Vargasan · · Score: 5, Funny

    I thought it was supposed to be a GNU, not a YAK.

    --
    Putting the romance back into necromancer.
  6. letters to the editor by F2F · · Score: 5, Informative

    just now El Reg published some of the angry letters in defence of .GNU:

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

    not that i'm trying to defend .GNU, just presenting a counterpoint.

  7. Free from MS, but for how long? and can we extend? by elwinc · · Score: 5, Interesting
    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.

    --
    --- Often in error; never in doubt!
  8. Why not support Java then? by meadowsp · · Score: 5, Insightful

    It's a more established framework and a lot more cross-platform.

    1. Re:Why not support Java then? by meadowsp · · Score: 5, Informative

      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.

  9. Re:He obviously doesn't get it by eraserewind · · Score: 5, Informative

    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.

  10. The true question: by happyDave · · Score: 5, Insightful

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

  11. Re:grrr. by jhdsl · · Score: 5, Informative

    The language is an ECMA standard, but the runtime libraries are not. Without those, C# is pretty useless.

    BTW, ECMA accepts all standards that companies care to pay for, they are hardly neutral.

  12. Agreed! We must innovate! by jaywhy · · Score: 5, Insightful

    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.

  13. Re:He obviously doesn't get it by GeckoX · · Score: 5, Insightful
    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.
    --
    No Comment.
  14. Re:Um... not free exactly... by __past__ · · Score: 5, Informative

    Like SharpDevelop for example?

  15. Re:Technical Director? by somethinghollow · · Score: 5, Insightful

    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.

  16. Wine + Mono = Instability by Vagary · · Score: 5, Interesting

    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.

    1. Re:Wine + Mono = Instability by miguel · · Score: 5, Informative

      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

  17. Re:Technical Director? by e2d2 · · Score: 5, Interesting

    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.