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

124 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 Anonymous Coward · · Score: 2, Informative

      They are not working on winforms ..... with GTK (and Ximian working on QT ... God forbid !) ... they have a crude wrapper over Wine which lets them compile Mono as a windows app and run it via wine ... I'd rather not run such an unstable mix. Btw, DotGNU already runs winforms on win32/BSD/Linux/OS X which is kinda too cool ... and MDI too !

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

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

    3. Re:Free for who? by abrotman · · Score: 2, Informative

      http://www.microsoft.com/downloads/details.aspx?Fa milyId=3A1C93FA-7462-47D0-8E56-8DD34C6292F0&displa ylang=en

      i think thats it .. there was a story on slashdot a while ago about it i think

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

    5. Re:Free for who? by Shillo · · Score: 4, Insightful

      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.

      --

      --
      I refuse to use .sig
    6. 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.
    7. Re:Free for who? by kevlar · · Score: 4, Informative

      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.

    8. Re:Free for who? by Shillo · · Score: 2, Informative

      What I said is that it's not just a .NET knockoff. Note the 'just'.

      Part of it sure is reimplementation of .NET Framework (and /not/ the .NET Framework itself). The rest is support for the GNOME (and Linux in general) -specific parts. This includes Gtk#, DBUS and HAL support, Apache support.

      In other words, Mono is .NET, embraced and extended. With generics already working in CVS (as far as I know).

      --

      --
      I refuse to use .sig
    9. Re:Free for who? by kevlar · · Score: 4, Informative

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

    10. Re:Free for who? by Captain+Rotundo · · Score: 2, Insightful

      I think this is the big advantage for Mono. I am a GNOME zealot, but was not excited about mono at all. But after seeing the ease of doing GNOME/GTK work in Mono I have to say it looks very interresting.

    11. Re:Free for who? by William+Tanksley · · Score: 2, Informative
      Did you read his posting? He said:
      In other words, Mono is .NET, embraced and extended.

      Sounds like he's saying it extends the framework to me...

      No, he's not -- but I understand how you'd reach that misunderstanding. He's trying to compare Mono to Microsoft's well-known tactic of "embrace and extend", wherein they "embrace" a popular/useful technology publicly, but then "extend" it via an implementation offerring a few advantages, but in a way that won't work with the original (often partially because of new capabilities).

      Quite seriously, this is precisely what Mono is doing with .NET.

      But again, if you're not familiar with that expression, I can understand why you'd misread it to be saying that Mono was extending .NET. ...and can you explain to me how the .NET Framework is improved upon in Mono?

      Not as well as many others have, but I'll summarize a couple of points.

      - they offer a FAR superior alternative to ADO.NET (caveat: I've no right to judge, as database access isn't my specialty)

      - they offer very elegant access to graphics operations in a way which is both powerful and platform-independant (Windows.Forms only handles one of these things at a time). I've been told that GTK# is one of the nicest ways to do GTK work.

      Now mind you, I'm NOT saying that Mono is better than .NET. I'm just saying that it has value of its own, and some things in it are improvements on things in .NET. (Others are definitely steps backward -- but that's explicitly because Mono isn't complete.)

      -Billy
    12. Re:Free for who? by Mark+Pitman · · Score: 2, Informative

      System.Windows.Forms is just a class library that implements things like windows, buttons, treeviews, etc. From what I can tell, most of them are wrappers around the Win32 versions of the same thing. I know, for instance, the MS .Net TreeView control is a wrapper around the Win32 tree (not sure what it is called in Win32). If you were a VB6 programmer, this is definitely a step up in GUI capability. Not sure how it compares to Java's AWT or Swing.

    13. Re:Free for who? by William+Tanksley · · Score: 4, Insightful

      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

    14. Re:Free for who? by kevlar · · Score: 2, Informative
      YOU DON'T GET IT.

      The Framework Classes are the Framework Classes. If Mono creates their own API to do XYZ, then its _NOT_ an extension of the .NET Framework anymore than my HelloWorld.cs class is an extension to the Framework.

      MS:

      Common Language Runtime (CLR)
      The type, metadata and execution systems provided by the .NET Framework, which supplies managed code and data with services such as cross-language integration, code access security, object lifetime management, and debugging and profiling support. By targeting the CLR, compilers and other tools can offer these services to developers.


      .NET Framework
      The .NET Framework is an environment for building, deploying, and running XML Web services and other applications. It consists of three main parts: the Common Language Runtime, the Framework classes, and ASP.NET. A companion infrastructure, the .NET Compact Framework, is a set of programming interfaces that enable developers to target mobile devices like smart phones and PDAs

    15. Re:Free for who? by ajagci · · Score: 2, Insightful

      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.

      Gtk# is not an extension to the .NET framework. Gtk# is a completely different library and toolkit from .NET. Gtk# is a C# language binding of the Gtk+ library. You don't need to know .NET in order to use Gtk#.

      then you'd be extending .NET just the same as Mono is.

      Mono is a project that comprises many subprojects. One of those subprojects is .NET compatibility. But if that subproject were dropped from Mono, you'd still be left with a vibrant, useful project. It is therefore wrong to talk of Mono as "extending .NET" as if .NET was the foundation of everything Mono does.

  2. Technical Director? by uberchicken · · Score: 2, Insightful

    It reads like a troll. A software company directory who doesn't "get" why you need to
    bootstrap a compiler.

    1. Re:Technical Director? by daBass · · Score: 3, Informative

      He understands why you need to do that, at least he says so. It's just that he doesn't see the point in the compiler in the first place.

      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.

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

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

    4. Re:Technical Director? by ryepup · · Score: 2, Insightful

      2) wants to run this supposedly cross-platform language only on Windows.
      I think its more of a cross-language platform.

    5. Re:Technical Director? by GooberToo · · Score: 2, Interesting

      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.

      Bad example. Does not apply. In no way, shape, or form can this be used as an example. One, UNIX is fairly stagnant. Catching it was only a question of time. Two, Linux did and does not require the use of someone else's patents to be implemented. Three, AT&T does not have a long history of purposely breaking compatibility with other UNIX vendors. Just imagine AT&T constantly breaking TCP/IP specifications and implementations to cause fragmentation.

      Your comparision seems to highlight that you don't have enough facts and surrounding history to completely understand the situation.

    6. Re:Technical Director? by TrekCycling · · Score: 3, Interesting

      This is exactly the point. I'm a Java developer and I wanted to learn some C# and ASP.NET. Didn't really want to go buy Windows to do it, though. So I installed Mono and next thing you know I can do 99% of what I want and need to do to learn ASP.NET and move the files directly over to a Windows server running ASP.NET and they work fine. So THAT is the major benefit of this project to me. I can do ASP.NET programming and do it on Linux.

    7. Re:Technical Director? by dwarfking · · Score: 2, Informative
      That being said, it would be very very nice to have a runtime environment (read: VM) besides Java that runs on most systems and also provides compatible api for GUI and such

      Doesn't TCL/TK fit the bill here? Not really a VM, but a powerful scripting language, completely crossplatform with a GUI system? Granted many people complain about the GUI, but there are some decent looking enhanced widgets. And now, with Starkits, a fully functional TCL/TK application can be installed as a single file copy.

    8. Re:Technical Director? by GooberToo · · Score: 2, Insightful

      I was merely stating that if people listened to the crap other people say, some great projects would not exist.

      I understood that, loud and clear the first time you said it. I have no idea how you came to the conclusions you made, based on my statements. Your assessment of my statement is far, far in left field.

      As for the "impossible" quote, I don't think anyone really cares if it's possible. Heck, let's argue it is possible. Great! Now, MS will break it to cause incompatibilities every chance they get, just like they historically have. That didn't cause enough problems. Wonder how large the pantent royalty base is going to be from the MONO user base. Why is empowering Microsoft good for anyone other than Microsoft? If you think for even a second that MONO isn't empowering for Microsoft, then we have nothing else to talk about. Seriously! Period.

      As far as stagnancy of Unix (and the creation of Linux), I think that is a narrow application.

      Hmm... I thought it was very broad. Not sure how or why you decided to narrow it and then decide that I said it.

      Your assertion would be similar to ".Net is going after Java," not development platforms in general.

      Well, I asserted no such thing, in that context. While it is very obvious that it is a Java power play by Microsoft, I'm not sure why you'd bother to slant it this way to take it out of context from the original thread.

      I'd think that since Microsoft is "betting the company" on .Net, they have bigger fish to fry than JUST Java, though I'm sure it is on the list.

      Granted. They need their next vendor/developer lock-in. Java has them on the run.

      I do agree with you about the UNIX market being stagnate, however, I do not believe Java has been. Java has continued to evolve from everything that I've read. Clearly 1.5 is getting some of the C# features, but look where they came from. That is, people that have been saying, we've been needing these features all along. If you want to say, they directly came about because .NET, fine...I don't really care. The point is, Java is fairly far from being stagnant.

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

  4. Um... not free exactly... by 192939495969798999 · · Score: 4, Informative

    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.

    --
    stuff |
    1. 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.
    2. Re:Um... not free exactly... by __past__ · · Score: 5, Informative

      Like SharpDevelop for example?

  5. He obviously doesn't get it by Meat+Blaster · · Score: 4, Insightful
    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?

    1. Re:He obviously doesn't get it by Karamchand · · Score: 4, Insightful

      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

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

    3. Re:He obviously doesn't get it by Cereal+Box · · Score: 4, Insightful

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

    4. Re:He obviously doesn't get it by blowdart · · Score: 4, Informative

      Well if you want a J2ME equivilant, then there is the .net Compact Framework. Already built into the latest PocketPCs and Microsoft "Smart"phones, as well as CE.Net 4.1 which is marketed for embedded systems

    5. 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.
    6. Re:He obviously doesn't get it by Tagren · · Score: 4, Insightful

      They only submitted parts of the API to ECMA.
      Important stuff such as System.Windows.Forms and ASP.NET and a few more are not ECMA standards.
      That is why they will have ecma profiles for the compiler i guess.
      --

    7. Re:He obviously doesn't get it by callipygian-showsyst · · Score: 2, Interesting
      .NET performs *MUCH* better than Java. A while ago I re-wrote a program that was almost UNUSABLE in Java in .NET. This program does bit-twiddling on images and is plenty fast, even though it's in C#/.NET.

      I can't argue with the performance I'm seeing from C#/.NET apps. I used to be a C++ DIEHARD but I completely switched to C#/.NET when and where possible.

      A portable version of the library would be great! And it's so entrenched now that even if Microsoft adds to the API, the current API will still have to be supported for many years to come.

      Sadly, the cross-platform promise of Java, especially for GUI desktop applications, was never realized. And I've rarely seem Java apps that didn't look like 30 year old SunOs applications. Slow and ugly.

    8. Re:He obviously doesn't get it by Slime-dogg · · Score: 4, Insightful

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

      --
      You need to restart your computer. Hold down the Power button for several seconds or press the Restart button.
    9. Re:He obviously doesn't get it by w42w42 · · Score: 2, Interesting

      I've read the peformance thing Re: Java vs. .NET a few places as well. I have a question (or two) though, as I know next to nothing about .NET. Could this be in part because .NET uses more native components than Java? Meaning, are a share of the .NET libraries compiled to run w/o a VM, giving .NET a natural advantage for .x86 Windows?

    10. Re:He obviously doesn't get it by strobert · · Score: 2, Insightful

      One of the things he doesn't seem to get is that he seems to think of Sun and Java as being on the good side. I actually trust Microsoft more than I trust Sun (in a twisted sort of way).

      At least with Microsoft we know they are anti-Linux. Sun trys to seem all buddy-buddy when around the Linux community but in a lot of their press releases and documentation they bash Linux.

      Shoot some people have claimed SCO is just a Microsoft pawn. And although I am not doubting Microtosft is somewhat cheering for SCO, I wouldn't be surprised if Sun wasn't doing the same.

  6. grrr. by iMMersE · · Score: 2, Insightful

    Someone should tell him that there are other processor architectures than just x86, processors that aren't supported by MS ...

    --
    codegolf.com - smaller *is* better.
    1. Re:grrr. by JohnnyCannuk · · Score: 3, Insightful

      And that's why you use Java instead of .Net.

      --
      Never by hatred has hatred been appeased, only by kindness - the Buddha
    2. Re:grrr. by Randolpho · · Score: 2, Insightful

      But Java isn't available on all platforms either... which is why there are alternatives to Sun's Java. .NET is roughly equivalent to Java, but its promise is greater, IMO. C# is, in many ways, a better language than Java itself is, with many flexibilities Java still doesn't have. Of course.... some might not consider that "good", but that's the other great thing about .NET -- it's little more than a bytecode and an API. There are many languages that can compile into IL, allowing for greater flexibility.

      I personally very much like .NET, but I also very much want it to be cross-platform like Java.

      --
      "Times have not become more violent. They have just become more televised."
      -Marilyn Manson
    3. Re:grrr. by larry+bagina · · Score: 4, Insightful
      C# is an ECMA standard. Sun has refused to bring java before a standards body.


      I don't care, you might not care, but for FREE/Open Source zealots it matters.

      --
      Do you even lift?

      These aren't the 'roids you're looking for.

    4. Re:grrr. by Baki · · Score: 4, Insightful

      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.

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

    6. Re:grrr. by S.O.B. · · Score: 4, Informative
      But Java isn't available on all platforms either... which is why there are alternatives to Sun's Java. .NET is roughly equivalent to Java, but its promise is greater, IMO.

      Java is available for MS Windows (95,98,ME,NT,2000,XP,CE), Linux, Apple MacOS, FreeBSD, IBM AS/400, IBM OS/390, IBM AIX, IBM OS/2 (yes, some people are still running it), Sun Solaris, SGI IRIX, PalmOS, Nokia cell phones and numerous other embedded devices. I'm sure I've missed a few but that's just off the top of my head.

      When .NET allows me to run a program on everything from a mainframe to a cell phone then I'll be impressed. I doubt that will ever happen because Microsoft is too afraid to put .NET on any platform it can't dominate.

      --
      Some of what I say is fact, some is conjecture, the rest I'm just blowing out my ass...you guess.
    7. Re:grrr. by Mr.+Piddle · · Score: 2, Informative

      C# is an ECMA standard. Sun has refused to bring java before a standards body.

      You really are naive. Both the Java Language and the JVM are published in books by Sun, I have them both, and they are both still current, even after several years. Sun has always had a good policy regarding forward compatibility, even Java 1.2 programs will run in 1.4. Only Java 1.1, as the original maturing version, is truly obselete. Further, is there a major operating system out there where Java doesn't work? Even IBM and HP have stakes in Java, and these are companies that hate eachother. Sun has done fairly well to build these sorts of checks and balances into the Java Platform, none of which exist for .NET.

      --
      Vote in November. You won't regret it.
    8. Re:grrr. by fitten · · Score: 4, Funny

      All declarative languages are fundamentally equal, just the syntax is different.

      Many of C# extra "features" are unnecessary "syntactic sugar",

      There was a decent "article" a few days ago that linked an "interview" with the head of the C# group who "talked" about some interesting things and "addressed" a few of the "syntatic sugar" discussions. It also addresses why a number of decisions were "made" contrary to the way Java does things and why those Java "things" were considered "bad".

      I'd like to see some "information" on what you think are "superfluous and harmful" in C#.

    9. Re:grrr. by miguel · · Score: 4, Informative

      In Mono we took a different approach, we created, integrated and built our own standalone stack ;-)

      Look at: http://primates.ximian.com/~miguel/tmp/map2.png to get an idea of what we have to offer today

    10. Re:grrr. by vegetasaiyajin · · Score: 2, Interesting

      So you consider Win32 is a standard? it is ECMA standard 234 .

      Then I wonder why is it so hard for WINE to fully support the Windows API, it is a standard, just like C#.

      Posix, CORBA, C and C++ are not ECMA standards, but there are many implementations of them.

      --

      My heart is pure, but make no mistake, it's pure evil
  7. 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?

  8. Sounds defeatist to me. by richardoz · · Score: 3, Interesting

    Neil wants to give up implementing .NET for MONO and dotGNU because neither project will have all the features. I think that it is likely that Novell or ?? may pick up the pace..

    --
    All the worlds indeed a .sig, and we are mearly players..
  9. Let the mindless bashing begin by daviddisco · · Score: 4, Insightful

    We know that Slashdot posts these kind of articles as bait for the meatheads who think that being against Micro$oft makes everything they say correct. Microsoft bashing is no substitute for thinking. Be free! Think, think!

  10. you do know.. by minus_273 · · Score: 4, Interesting

    that C# and IL are an international standard (at least in ECMA's eyes) and MS has absolutely no control over the language right? Not just that there are several other compiler for C#, made by german firms i think.
    FYI, basically it boils down to this:
    .net = european standards camp
    Java = american standards camp, though not fully done yet.

    --
    The war with islam is a war on the beast
    The war on terror is a war for peace
    1. Re:you do know.. by Waffle+Iron · · Score: 4, Insightful
      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.

    2. Re:you do know.. by AstroDrabb · · Score: 2, Insightful
      Someone mod parent up. I lost my ability to mod since I posted on this topic.

      This is exactly what MS will do. How freaking naive can MS weeines be? MS is all about dominating a market. Big deal if C# the language is a standard. The platform is what matters and MS controls their .Net platform. People/Companies will code to that MS .Net platform and leave all other platforms out of the game.

      If you want a cross-platform framework, use Java. If you want a cross-platform application, use wxWindows or QT

      In the most recent Linux Magazie or Linux Journal (I don't recall which since I get both), I just read that many analysts are predicting that Linux will have at a minimum 45% of the server market share by 2007, only three years away. If Linux gets that kind of market share within 3 years, don't you think MS will continue to do whatever they can to continue to lock customers into their platform? Why do you think MS ported their C# compiler to FreeBSD over Linux?

      Again, C# the language is open and you or anyone else can create a compiler. Big deal, you can now compile your first Hello World! C# applications. The commercial C# applications will be built on .Net and limited to MS Only.

      Is there anyone out there that actaully thinks MS would develop a true cross-platform solution? Can their be a human that is that naive?

      --
      If Tyranny and Oppression come to this land,
      it will be in the guise of fighting a foreign enemy. -James Madison
    3. Re:you do know.. by GlassHeart · · Score: 2, Insightful
      This is exactly what MS will do. How freaking naive can MS weeines be? MS is all about dominating a market. Big deal if C# the language is a standard. The platform is what matters and MS controls their .Net platform. People/Companies will code to that MS .Net platform and leave all other platforms out of the game.

      The question is, will these developers avoid .Net if there was no Mono? If not, then a few years from now you'll have the killer apps ported to the .Net API, and alternative OSes still won't be able to run any of them. If Mono is able to achieve significant compatibility, then a port becomes that much cheaper to make. Maybe even cheap enough to make a profit from Linux sales.

      The commercial C# applications will be built on .Net and limited to MS Only.

      MacOS X and Linux can probably claim at least 10% of the desktop market. MacOS X currently can attract major applications like PhotoShop. What if you could support twice the MacOS X market, using the same code base as your main Windows product, by avoiding a small set of Microsoft-only APIs?

      The commercial C# applications will support Linux if enough Linux users are willing to pay enough for them to justify the port. Today is port is very expensive. Tomorrow there will be more Linux users, and Mono may lower the porting cost significantly.

  11. 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 petabyte · · Score: 3, Funny

      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)

      You're talking about slashdot right? :)

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

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

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

    4. Re:Motivations by laird · · Score: 2, Informative

      "I don't want to use Java. First of all, I've never used it to develop software. ... since I adopted C# about a year and a half ago, my production has roughly tripled, maybe more."

      Having done a little in C# and a lot in Java, my personal opinion is that the development environments are comparable, with the caveat that you've got way more options for tools and components on the Java side since it's a much more mature and broadly supported platform.

      I'm curious about why you don't want to use Java. Java and C# are remarkably similar -- aside from some Windows-specific bits in C#, I'd guess that anything you like about C# development would also be true of Java development.

      While it's true that the original Java GUI API's were quite primitive, they've made a lot of advances. As another poster commented, the vast majority of Java code these days is server-side, but there are some rather nice Java applications out there. The look of the buttons, etc., is actually up to the runtime environment -- Java app's look great on MacOS X, for example, but a little more primitive under Unix. But I've seen some really slick Java app's, so I think that the "primitive look" is more a product of someone not focusing on getting the UI right than of a limitation of the Java GUI tools.

    5. Re:Motivations by ao3000 · · Score: 2, Interesting

      Here are two sites that have SWT tutorials and sample code. In general, I have not found the documentation of SWT to be as good as SWING. http://www.cs.umanitoba.ca/~eclipse/ http://dev.eclipse.org/viewcvs/index.cgi/platform- swt-home/dev.html?rev=1.149

  12. One reply by miguel · · Score: 4, Insightful

    We read with interest the piece from Neil on the purpose of Mono, and
    I wanted to clarify a few things, because Mr Neil does not seem to
    have looked at the Mono Roadmap, nor tried a recent release, since
    code signing (authenticode and strongnames is implemented, remoting is
    completed (soap, binary, http, tcp transports) and most of the
    side-by-side assemblies work is done, and will be part of 1.0).

    The Mono Roadmap (www.go-mono.com/mono-roadmap.html) contains the
    release time frames for the various features of Mono and will help him
    and other readers understand what exact plans are: no speculation, and
    no half-cooked facts.

    I am surprised by the motivation to do so little research on our
    project given that Mr Neil is the technical director of a company that
    sells .NET software; You would think that the use of Mono would help
    him reach customers using Linux, using mainframes or MacOS X.

    Mono is based on the ECMA 334 and 355 standards. We like the C#
    language and its runtime (as does Mr Neil's company) because it
    increases our developer productivity, reduces the time to market of
    our new products, this despite the fact that we do not implement Code
    Access Security, which will only be used in embedded situations, a
    segment that we are not ready to address in Mono 1.0.

    We want to improve the productivity of developers in Linux, mainframe
    and OS X developers by brining this unique platform to other
    platforms. Just like Borland, SGI, Sun and IBM provide compilers,
    runtimes and tools for other languages, we provide such a piece for
    C#/.NET.

    Mr Neil does not seem to understand why bootstrapping a C# compiler is
    important, so let me explain this in terms he would understand: it is
    important because:

    * Using C# to write a C# compiler means that it improves our
    development speed.

    * To be able to harvest the benefits of productivity of C# on
    Unix, we need a bootstrapping system.

    * It allows us to write software on Unix without and be
    self-sufficient to develop software as opposed to require
    a Windows machine to develop software, and another to run it.

    * It means that we trust our technology enough and it is solid
    to the point that a relatively complex piece of software not
    only runs, but is binary-compatible with the Microsoft
    runtime.

    Mono's objectives are not "To break Microsoft's monopoly". We do not
    define ourselves in this way, there are more important social causes
    to fight. We look at the ECMA 334/335 standards as a solid foundation
    to improve Linux and bring more software, more quickly to it, and make
    the development process more fun.

    There is a lot more about this on:

    http://www.go-mono.com/rationale.html

    And a few other interviews

    1. Re:One reply by Pedrito · · Score: 2, Troll

      Miguel, muchas gracias para tu repuesta...

      I find this very enlightening. I had no idea that Mono was intended to be compatible with Mac OS X, and I find that VERY cool. As I posted earlier regarding my own open source project that uses .NET, I want to target as many platforms as possible, and Mono gives me this ability. And on top of it, I get to use C# and the .NET Framework. Despite the company that designed it, it's an excellent language and framework. As Miguel said, it boosts productivity. I have personally witnessed that.

      I haven't been following Mono as closely as I'd like because I haven't gotten to the porting yet, but I've been following some of the API development and frankly, I think they've done an excellent job of targetting the most important issues in order. Almost everything I need is already in Mono. Where it isn't there yet, I hope to either contribute code to Mono, or come up with workarounds.

      Open Source is more about choices than trying to put a company out of business. Since when was the open source motto "To write software that puts Microsoft out of business?" What sort of noble goal is that? Microsoft should succeed or fail on its own merits. I don't like them very much, and perhaps they're not succeeding on their own merits, but that doesn't mean that the motivation of OSS should be to make them fail.

    2. Re:One reply by miguel · · Score: 4, Interesting

      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.

    3. Re:One reply by miguel · · Score: 3, Informative

      The trick is that C# code is compiled to the
      Common Intermediate Language, so you compile in
      one platform, and you run in another one. All you
      need is a virtual machine running on the target
      system

    4. Re:One reply by miguel · · Score: 4, Informative

      That is correct.

      But we have. We support SPARC, SPARC 64 bits, HPPA (32 and 64), StrongARM and PPC in a wide range of operating systems.

    5. Re:One reply by realnowhereman · · Score: 4, Informative
      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)
      --
      Carpe Daemon
    6. Re:One reply by Pedrito · · Score: 4, Insightful

      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.

    7. Re:One reply by Deraj+DeZine · · Score: 2, Funny
      Miguel, muchas gracias para tu repuesta...

      Yeah, this guy doesn't know Spanish. Allow me:

      Miguel, muchas gracias para los cerebros deliciosos y los monos azules. Vamos a comer todos los monitos.
      --
      True story.
    8. Re:One reply by miguel · · Score: 2, Funny

      Why would anyone run highly inneficient code written in anything but tightly written assembly code?

      Discuss amongst yourselves

  13. You and the Point seem to have passed in the night by Valar · · Score: 4, Interesting

    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.

  14. Obvious and Sophmoric. Where's Something Original? by jake_the_blue_spruce · · Score: 2, Interesting

    A bit late to be controversial on this. I assume that he also thinks that WINE (which allows windows binaries to be installed and executed as if it was Windows) is also a bad idea, and that the idea of doing everything windows does and more besides is either not feasable or not a good way to attract users. If he believes it is feasible, then I further assume he believes the same thing is true of Microsoft's Embrace and Extend strategy.

    The threat of patents makes his a valid view, that has been well elucidated some months ago. I would have preferred if the article had broken new ground, and used all the prior conversations as a jumping off point.

    An interesting analysis would be what is thought about Mono's preparation for the threat of patents. They are developing a completely seperate and patent free stack of libraries using GTK#, etc. rather than Windows.Forms, etc., etc. for everything not submitted as royalty free to the standards body. The upcoming MonoDevelop project is a port of SharpDevelop from Microsoft's .NET to the Mono environment in such a way as to be unencumbered from any patents, as a proof of concept, and as a much needed Linux IDE for C#.

    As a comparison, he might wish to bring up the GCJ project, which native compiles Java code, and the Gnome Java bindings. (or Eclipse + SWT)

    Either effort could stand to attract greater resources. For instance, if Sun + IBM seriously got behind GCJ + Gnome Java bindings, or if Apple got behind Mono.

    Anyway, the Register is usually wonderfully edgy, bitingly sarcastic, and controversial. I was very disappointed with this article.

    --
    "There's so much left to know/ and I'm on the road to find out." -Cat Stevens
  15. Author missed benefits of dotGNU by plover · · Score: 2, Interesting
    Their enemies are now working, for free, to extend Microsoft's monopoly onto new platforms.

    "Enemies"? "Extending monopoly?"

    I think the author has missed one of the points about .NET: it does have some very attractive features that certainly could be useful in any environment, not just Windows. Automatic garbage collection and rock-solid typing are valuable assets. Just-in-time compiling in the runtime environment can provide extremely fast running code. (Not that it always does, but it has the potential in some situations.) These are benefits that there is no reason the GNU community can't share.

    There's also another benefit: it's a two-way street. Having dotGNU might provide a roadway for Windows developers to leave the Windows platform.

    He has interesting points, and they're worth discussing, but it's way to early to pronounce dotGNU or Mono dead.

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

  17. Alternatives are good by Yag · · Score: 3, Interesting

    Kaffe is a free java vm, why they did it? Because now, if you want free java on ipaq, kaffe is a good solution. Also because kaffe is open source so its chanches of porting are better. And sometimes is quite faster then sun vm.

    Mozilla when was started it wasn't as good as explorer, or opera, both were free, so, why start another project? Now, a lot of people thinks mozilla is the best browser.

    1. Re:Alternatives are good by ncr53c8xx · · Score: 2, Insightful
      Kaffe is a free java vm, why they did it? Because now, if you want free java on ipaq, kaffe is a good solution. Also because kaffe is open source so its chanches of porting are better. And sometimes is quite faster then sun vm.

      Due to the SUN license, no distro would bundle the JDK in the Free version. Kaffe was /usr/bin/java for all of the GNU/Linux distros.

  18. Stop-gap measure by JBMcB · · Score: 3, Interesting

    Mono and DotGNU, if nothing else, are good contingency measures if .Net happens to crush Java in the realm of web apps (not likely.) I'm half suprised at the rush to implement forms, as web apps seems to be what .Net was intended for, though the Gnome guys are the ones driving development...

    --
    My Other Computer Is A Data General Nova III.
  19. Free as in beer... yes by MochaMan · · Score: 4, Informative

    You can download the Rotor source free and compile/run it on Windows XP, FreeBSD and Mac OS X. Or maybe you meant on Linux.

    Theoretically you could write C# applications for those platforms just like you could write C, C++ etc. applications for them. I don't see how you would need any other Microsoft products to use their C# compiler, though obviously Microsoft currently produces the most comprehensive development environment for C#.

    1. Re:Free as in beer... yes by mr.capaneus · · Score: 2

      With the exception of freeBSD the operating systems that you mentioned are non-free. That was the parent posters point.

  20. No and Yes by swagr · · Score: 2, Insightful

    Despite the fact that this guy doesn't seem to understand or appreciate Mono and dotGnu acheivements, I still pretty much agree with his conclusions.

    Let's look at Java. How many professional/hobby/academic Java developers use Sun's SDK?
    How many use Gnu classpath with some other VM?

    Have you ever downloaded an app or library that was developed and tested under SableVM/Gnu-classpath but not Sun's SDK?

    --

    -... --- .-. . -.. ..--..
  21. Running it somewhere other than Windows? by Kupek · · Score: 4, Insightful

    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.

  22. Why doesn't anybody complain about WINE? by CompSci101 · · Score: 3, Insightful

    Hey all,

    It seems to me a little hypocritical to complain about MONO and dotGNU when there's also WINE out there. What's the point of getting Win32 Apps to run natively under Linux? We'll never keep up with MS adding things to the API...

    The point is, the more implementations there are of the CLR for .NET the better. I, for one, am glad to see that the effort is being made and that .NET is not going to become yet ANOTHER MS only technology. If you think Java has merit (and it does), then you can't reasonably believe that .NET has nothing to offer -- they're conceptually the same thing, skewed in slightly different directions. Java is bent more towards security, while .NET is bent more towards flexibility. It makes sense to bring it to Linux: it's useful (really!).

    On the flip side, why isn't anybody complaining that there's an abundance of Java VM implementations out there?

    C

    --
    The Sun is proof that we can't even do fire properly.
  23. 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!
  24. I have to agree by Lysol · · Score: 4, Interesting

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

  25. Tastes like... burning by Cthefuture · · Score: 4, Interesting

    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 ratio of people to cake is too big
    1. Re:Tastes like... burning by nihilistcoder · · Score: 2, Informative

      > If only we had C++ equivalents to the
      > huge Java and .Net libraries.

      I believe that's what they're doing with the binding of the CLI to Standard C++.

      More info here:

      http://www.ecma-international.org/news/ecma-TG5- PR .htm

  26. 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 Ugot2BkidNme · · Score: 2, Interesting

      having writtign the same application in both java and C#. albeit its nothign fancy but I did notice a few things. Basically the java version is slower took longer to develop. While the C# version runs faster and took less time to develope. yes I know one coudl say that portign code is easier except when you take into account I did the C# version first.

      Anyway I think C# is a lot better then Java. And I applaud the efforts of Mono and donGNU. Beign able to write in C# over Java is a preference of mine.

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

    3. Re:Why not support Java then? by barjam · · Score: 3, Interesting

      Support for your argument?

      I run a java j2ee web server that runs just fine anywhere we put it [commercial web site].

      I develop jsp/java on a windows box and then upload it to SUN/Linux boxes and it works perfectly every time.

      So can you cite specific examples where it isn't cross platform?

    4. Re:Why not support Java then? by GeckoX · · Score: 2, Insightful

      I have already conceeded MANY times in this thread that java _can_ be very portable. Especially ServerSide java. That pretty much totally falls apart on the client.

      I'm going to ask you to 'cut the crap' as well.
      Comparing the portability of ServerSide java to the entire .NET platform doesn't make any sense whatsoever.

      Java isn't a silver fucking bullet. .NET isn't a silver fucking bullet. Why does everyone have to be so god damned absolutist? Can there not be the right tool for the job? And how many fucking times do I have to say this before you get it people?
      I am not condemning Java in any way, I'm not zealoting for .NET in any way, so why the hell are people assuming I am?

      --
      No Comment.
  27. Here's the point by Crackerman111 · · Score: 2, Informative
    I selected C# and the .Net platform for my company's product offerings because I only needed to learn the language(s) and the libraries and not some complex deployment procedure (like you do with J2EE). The point is that I would like to be able to host these applications on Linux in the near future. I work for a REAL company that would really like to do this. I'm not some ideologue.

    From what I understand, the Mono project pretty much has a complete implementation of both the ASP.Net and ADO.Net libraries, and that will do for the vast majority of web applications. Therefore, I completely disagree with the author's comment that "even if Mono or dotGNU gets 99 percent of the way there, that's not enough." His analysis might be more accurate if your talking about desktop applications, but I don't think his arguments really have any relevance to web apps.

    At the very least, Mono and dotGNU will give Java/J2EE a little healthy competition on some different platforms.

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

  29. Wrong by DreadSpoon · · Score: 2, Informative

    Mono is not compiled as a Windows app. It does use WineLib for providing certain APIs for Windows.Forms. Using WineLib is no different than using GTK+ - they're both just APIs/libraries. Mono *is* working on Windows.Forms, using several different backends - WineLib, Cairo and GTK+. I believe the Cairo one is what they plan on using "officially" when complete. DotGNU and Mono can and do share code/assemblies, btw, so if DotGNU does indeed have a WinForms assembly, Mono should (theoretically) be capable of just using that.

    On a side note, I just love how posts (like the parent) which are half-guessed speculation and mostly false manage to get "+5 Informative" ...

  30. Helping MS own the platform by rdeadman · · Score: 2, Interesting
    The whole .NET / Java battle is not about what platform applications run on nearly as much as who is driving the car. Microsoft spent years dissing CORBA in order to advance it own win32-locked-in DCOM. When they finally realized that the back office was never going to go completely to win32, and that Java was gaining momentum there because it was a higher-level language and wasn't tied to an OS, they had to change gears.

    .NET is simply MS's next attempt to cut out CORBA and Java. SOAP may be limited and inefficient but its simple and cross-platform. If they can get some OSS folk to write some versions of .NET, that only helps their cause, because it supports their open-platforms story. And since, for the forseeable future, any .NET clone is going to be lack some serious functionality, it won't really bite into their sales. In the meantime, they can start to take the enterprise platform ownership back from Java. Annd, even if the OSS projects start to catch up -- guess what, MS can add new features.

    So, while I love and use Linux, and even lead an OSS project on sourceforge, I have to admit that Neil is right: the .NET clones are only helping to establish Microsoft in a leadership position in enterprise infrastruture (which will drive sales of their software). And that's precisely the place they want to be.

  31. Re:Mono/MCS does not work on OS X ! .. only mint d by miguel · · Score: 4, Informative

    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

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

  33. But Why!?! by fozzylyon · · Score: 2, Insightful

    Neil is the type of person that would argue with the mountain climber about whether there's a reason for climbing the mountain. I imagine him saying, "But Why!?!" For all the other programmers out there, continue honing your skills and techniques even if the apps you create aren't appreciated or widely acknowledged

  34. it's pretty simple, really by ajagci · · Score: 2, Interesting

    C# is a nice language, it's free, open, and standardized, and it's good that there are many implementations of it. All those other points don't matter.

    What MS does or doesn't do with C# is their business. And if .NET remains proprietary, all the better as far as I'm concerned: I like the language, not MS libraries.

  35. While we're at it... by sirReal.83. · · Score: 2, Insightful

    What's the point of Microsoft making a web browser? They obviously can't keep up with all these standards like CSS, XSL and XUL... I think they should just quit.

    It cuts both ways.

  36. Re:Mono is evil by selderrr · · Score: 4, Interesting

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

  37. The Office.NET Test by billtom · · Score: 3, Insightful

    To my mind, it all comes down to the Office.NET test. That is, at some point in the future (if MS sticks with .NET), Microsoft will release Office.NET (the Office suite rewritten for .NET). The test is: will Office.NET run, off the shelf and without any major crashes or missing functionality, on a non-MS .NET framework.

    If it will, then I'll be happy to declare .NET as the greatest cross platform programming environment in the universe and hold the developers of the non-MS .NET frameworks up as champions of the open source world.

    But if it doesn't, then I judge the whole effort to produce non-MS .NET frameworks as a waste of the open source community's time. And while, of course, programmers are free to waste their time if they want, don't expect me to be interested and contribute.

    Now, .NET apologists might claim that the Office.NET test is unfair. That there are many useful things that can be done with a partial implementation of .NET. To that I say, you're deluding yourself. If the best that we can hope for is a two .NET world (MS .NET and the open source .NET ghetto) then, as a professional programmer, it's not something I'm going to use. My time is important enough that I'm not going to waste it trying to remember what bits of .NET I can and can't use when I use Mono or dotGNU.

    Now, as you can probably tell from the tone of my post, I've more-or-less concluded that there is basically no chance that MS will ever allow Office.NET to run on any non-MS .NET framework. They'll keep back just enough to insure that their Office cash cow continues.

  38. Re:Mono and dotGnu are a good thing by GooberToo · · Score: 2, Insightful

    No idea why this was rated, "insightful". I suggest you go read the article again. Or, prehaps you're missing a very basic set of commonly accepted facts. Microsoft doesn't own patents on C++ technology. In fact, C++ does not originate from Microsoft. Microsoft is also not using C++ to leverage their monopoly. Microsoft would be unable to leverage C++ to leverage their monopoly because C++ isn't their technology base.

    Now that you know even the most basic of facts, perhaps now you'll understand why your posting belongs in /dev/null. It adds no value to the discussion.

  39. then point the zealots are missing... by BCGlorfindel · · Score: 4, Insightful

    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.

  40. Quote from Miguel by Chris_Jefferson · · Score: 4, Interesting
    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.

    --
    Combination - fun iPhone puzzling
  41. This is entirely up to Microsoft by puppetluva · · Score: 2, Interesting

    There is an easy way to get relief over the controversies with Mono. Since Microsoft owns it, (only the C# spec is ECMA) someone should ask Microsoft if we can use it. . .

    Novell should ask Microsoft to issue a statement or enter into a contract that they won't pull the rug out from under Mono by enforcing patent/trademark/etc. protections and adversely affect the Mono community. If they refuse, then you know Mono is doomed. If they comply and their answer is legally binding, then have at it.

    Mono is excellent technology but it is in a very dark shadow. I wouldn't base my software on an architecture that is under patent threat by one of the most powerful companies in the world -- What's the point of speculating since all we have to do to verify its safty is ask Microsoft ?

    This is only proper. . . most of the runtime and forms libraries are proprietary property of Microsoft -- we need to ask them if we can use it if we are worried about backlash.

    Please do not reply with anyting about GTK# not being property of Microsoft. . . the "#" trademarks and the runtime technology (CLR) certainly are their undisputed property. Playing games with their IP without asking their permission is unwise.

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

    2. Re:Wine + Mono = Instability by t0ny · · Score: 2, Insightful
      A good strategy in any project is not tying your wagon too tightly to things you have no direct control (or even influence) over.

      It seems Mono made a mistake in relying too heavily on Wine. It may have been more work, and may have been a duplication of effort, but they would have been better off in the long run recreating what they needed to, especially if their goal is 100% compatibility. Thus, they can only attain that 100% if (and its a big IF) Wine also attains it.

      --

      Manipulate the moderator system! Mod someone as "overrated" today.

    3. Re:Wine + Mono = Instability by t0ny · · Score: 3, Insightful
      As opposed to what? Only attaining it if (and it's a big IF) they attain it themselves?

      Um, ya, that was kind of the point.

      Let me draw you a chart. If Mono can acheive 100% compatibility with the code THEY are responsible for, but there are compatibility issues with Wine, than, overall, there is no 100%. Since they have no control or influence over the Wine project, they will have, at that point, reached an impasse; since Wine can improve, not improve, fold, or accept external improvements to their sources and summarily wipe their asses with them, there is nothing further Mono can do to improve their own project.

      If, however, they impliment their own windows emulation, they can make use of changes in the Wine project (giving them credit, of course), start from scratch, or whatever. But, they then have a situation in which they can acheive their goals, and have the control they require to further their main project.

      As people higher in this thread have stated, there are issues with Wine. Were this not the case, such a statement would be senseless. But all duplication of effort is not necessarily a bad thing.

      If you ever learn how to manage a project, this whole subject is basic.

      --

      Manipulate the moderator system! Mod someone as "overrated" today.

  43. Re:Obvious and Sophmoric. Where's Something Origin by jake_the_blue_spruce · · Score: 2, Informative
    --
    "There's so much left to know/ and I'm on the road to find out." -Cat Stevens
  44. Re:m$ shit coders are gay by cr@ckwhore · · Score: 2, Interesting

    It's not like computer resources are expensive these days. Who cares if you think it's "heavy" ... it really isn't. Applications written in .NET and compiled are typically small and easily distributed.

    Who cares if you can write a "CGI application" in C. Can you write an enterprise level software application? Authoring enterprise software is an expensive proposition -- and why not use .NET (yes, I like it and I'm a hard-core linux guy!) to develop the app in half the time, with the result being twice as good.

    Until you have some first hand experience with .NET, you should keep your yapper shut.

    --
    Skiers and Riders -- http://www.snowjournal.com
  45. mIguel needs to address the legal issues. by Anonymous Coward · · Score: 2, Informative

    Somehow, someone in Ximian needs to really dig into the legal and patent issues that the article brings up.

    The ecma standard is not the problem. The compiler and clr are not the problem.

    It's the libararies, dude. So many people say this guy is on crack, but he has a valid point that all ximian and .gnu/mono are doing is playing into MS hands...and that hand will put the smackdown when and if these libraries become popular.

    Finally, I think a lot of other people bring up a good point...maybe some type of GNU language, a sysnthesis of Java and C#, would be better than the aforementioned projects from a purely political point of view.

    Really, Miguel and RMS need to sit down and have a few beers with PJ at groklaw and come up with some theories on all this stuff.

  46. What REALLY bothers me about Mono by plinius · · Score: 3, Funny
    Is that it's related to Herpes(TM) (factually true).

    Herpes is a registered trademark of Microsoft Corporation.

  47. best quote by sysopd · · Score: 4, Interesting
    From the article text:

    "The major achievement of this project appears to be using somebody else's compiler to build a compiler that will compile the compiler."

    I am not the biggest fan of C# or .NET and would rather see this community work together to design and specify a next-generation free and open standard for Cross-OS/Platform/Architecture "virtual machine" and language allowing for a single portable executable binary. I'd like to see RFC's and IRC conferences, papers being passed back and forth, live conferences and formal specifications.

    For too long has the opensource community nipped at the heels of the closed-source technology leaders. It is time to innovate, time to design, time for change. I do think having an opensource C# compiler/framework/CLR is a good thing, but I believe this is only secondary in importance to having a truly free and open solution where all voices are heard and designs are not made to accommodate a particular OS's limitations or benefits.

  48. Neil Davidson's conclusions are incorrect by brokeninside · · Score: 3, Informative
    Davidson presents two conclusions, one of which can be refuted by his previous points.
    1. But they have no practical use,
    2. and exist only with the patronage of Microsoft.
    The first point is refuted by his earlier statement, one of the few applications that Mono claims it can run is its own C# compiler. Unless one asserts both that (a) a C# compiler is of no practical use and (b) that none of the other programs that mono can run is of any practical use, Davidson's conclusion does not follow. Davidson also admits that, Competition is good for the software industry, good for Microsoft in particular (as Adam Smith pointed out, monopoly is a great enemy to good management), and most importantly, good for consumers. Unless Davidson is now asserting that competition has no practical use, he just refuted his own conclusion.

    Further, we only need to find one practical use of mono to demonstrate that the conclusion is categorically wrong. That mono ships with commercial products such as Virtuoso suggests that there is at least one practical use of mono.

    On Davidson's second point, I think he misunderstands patronage. Microsoft does not currently fund mono in any way in which I am aware. They do fund some competitors to mono such as rotor and (at least at one time) Corel's attempt to bring dot net to Linux. His only example of Microsoft being a patron consists of a hypothetical chain of events that is exceedingly unlikely. I suspect that perhaps Davidson meant forbearance instead of patronage. If he did, he would do well to explain exactly how Microsoft's patents threaten mono because some people (including people far brighter than me) do not see any clear and present danger.

  49. Re:Agreed! We must innovate! by FreshFunk510 · · Score: 2, Informative

    Aren't what they are doing is creating "their own .Net"?

    And if not, what does it mean to create your "own .Net"? What if the steps taken by Mono are the logical next step?

    Think of it this way. When C# was released, everyone said that it (and .Net) were a just a copy of Java (the JRE, the intermediate language, everything). But maybe Microsoft didnt' jsut copy. Maybe they conceded the fact that the idea of having a a platform and intermediate language was the next logical step in software development.

    Perhaps Mono sees the same thing with the unique features that .Net offers (easy and more powerful web development).

    --


    "Injustice anywhere is a threat to justice everywhere." - Martin Luther King, Jr.
  50. Im developing System.Windows.Forms by neilcawse · · Score: 3, Insightful

    I work on the Portable.net project
    http://www.dotgnu.org/.

    Ive written a large chunk of the System.Drawing and System.Windows.Forms namespace. We currently have two "toolkits" that means our SWF copy will work on Windows and X Windows (using Xlib directly). Mac OS is thus supported.

    C++ improved on straight C, Java improved on C++, C# improved on Java. C# is becoming an important standard.

    We want to reuse software. We want to take existing software that is built to only run on Windows and run it on Linux or other platforms.

    We have much of the framework built to write gui applications using System.Windows.Forms. Despite peoples initial suspicions, what we have done works. We already have most controls completed, including textboxes, treeviews, comboboxes, tabcontrols etc.
    See http://pnet.homelinux.org for some screenshots

    You can now take a .net gui exe compiled in Windows, copy it to a Linux machine and run it and it works!
    The technology is excellent and open source. We need people to help us finish it off.

  51. Novell has done a complete legal analysis of Mono. by Qwavel · · Score: 2, Insightful

    Mono & dotNet appear to be good technology, but that's already been discussed enough.

    So...

    With regard to Mono, Novell must either:

    (a) have done a complete legal analysis of what will happen when MS doesn't like Mono anymore, or

    (b) believe that Mono will always be acceptable to MS.

    The fact that they haven't told us about (a) makes me fear that the truth is (b).

    Novell, if you are listening, please tell me the answer. I'm a developer and I like the dotNet technology, but I need to know where you are going with this, and I need to now whether it is 'safe' for me (and my conscience) to use Mono and, for example, your windows forms library.

  52. Is Windows.Forms the primary focus by Latent+Heat · · Score: 2, Insightful
    Following the thread and the comments, it seems that the recommended GUI library is GTK#, Windows.Forms is being implemented for those people who want a "compatiblity mode", and given that Windows.Forms has so much Win32 in it (not only is it legacy-compatible in having a WinProc() hook for Windows messages, there are a lot of Win32 features not implemented in Windows.Forms that tempt developers into overriding WinProc()), the decision was made to go with WINE for that part.

    .NET is a bigger deal than Win32, but that part that uses Win32 (Windows.Forms) is not sufficiently abstracted from it, and if someone feels a hankering to use Win32 under Linux, WINE is the show that is in town.

  53. It's the IDE not the OS by tmscoder · · Score: 2, Interesting

    For those of you who do not use an IDE to write code I can see why you'd embrace mono. But:

    Without Visual Studio.NET I would never have learned C#.

    Without Visual Studio 6.0 and prior I would never have learned Visual Basic.

    Without Eclipse I would never have learned Java.

    Without an integrated IDE for each of the above languages my productivity would be so low as to render my consulting practice null and void.

    For main stream adoption of mono - how will the mono developers address this lack of a quality useful IDE for writing C# on linux/mac?

    And as an aside, when the perceived ROI on mono begins to dwindle what will stop Novell from pulling the plug on funding? All those mono engineers have to feed their kids too and how will they make money quiting Novell and dedicating all their time writing code for a free non-paying mono product?