Slashdot Mirror


Miguel de Icaza Talks About Mono

Matthew Revell writes "Miguel de Icaza defends Mono and talks about its future relationship with the Gnome desktop, in the latest LugRadio. The leader of the open source implementation of .NET says no one is forced to use Mono but he hopes it will make life easier for open source developers. "

109 of 596 comments (clear)

  1. Re:well.. by suso · · Score: 4, Funny

    Shouldn't mono be a story for the day after Valentine's day?

  2. mono by relluf · · Score: 2, Informative

    Mono is a great programming tool, I hope that it manages to find its way into mainstream gnome. It shows alot of promise anyway. I do belive that CLIs are the way to go.

    1. Re:mono by Inzkeeper · · Score: 2, Funny

      > Mono... I do belive that CLIs are the way to go.

      I couldn't agree more. If it can't be done from a command line interface, it isn't worth doing! w00t! ...or did you mean CIL: Common Intermediate Language?, a CLR, Common Language Runtime.

      Ok, I have to admit: CIL is a brilliant concept too.
      If only Parrot wasn't pushing up the daisies.
      HELLO POLLY PARROT!!!

  3. Patent issues? by Anonymous Coward · · Score: 5, Informative

    he hopes it will make life easier for open source developers.

    I thought the problem was that Microsoft told everybody that they didn't have any patents on C# or .NET, but they are actually a licensee of somebody else who has patents on it? Miguel dodged the question on this one by simply stating that it was a reimplementation rather than licensing .NET from Microsoft.

    Listening to the audio, the things on the horizon are Windows Forms and incremental improvements (tuning). People are porting applications today, usually you can just copy the binary, but ignorant Windows developers do things like screw up path separators, assume case-insensitive systems, etc.

    1. Re:Patent issues? by geordie_loz · · Score: 3, Informative

      He is referring to the location of files, paths and files in windows are Case Insensitive, but in most other os's it's case sensitive, so:

      /C/Windows/AnotherDir/
      is not the same as
      /c/windows/anotherdir/

      see? Not the language but the platform, so path/library locations relying on case insensitivity is the issue..

    2. Re:Patent issues? by alext · · Score: 2, Insightful

      But he didn't say CLI, he said .NET. .NET is the 90% of the API that's not standard, remember?

    3. Re:Patent issues? by WarmBoota · · Score: 3, Insightful

      And I always use Path.DirectorySeparatorChar to tell me what the character should be.

      --
      90% of everything is crap. Also, crap is relative.
    4. Re:Patent issues? by farnz · · Score: 4, Insightful
      Define case-sensitivity for all users, such that the case rules stay the same no matter what locale I use. I happen to be English, so I can cope with a US-ASCII filesystem, and US-ASCII collating rules. If you're Danish, you have a different set of collating rules, and the mechanisms for a case insensitive comparison are different; it gets even worse when we introduce Chinese, Japanese, Korean, Russian, Greek and other languages which don't use the Latin alphabet into the mix.

      Putting Unicode rules into the kernel is also painful; the collation rules for Unicode are huge and messy, and this relies on all users selecting the same Unicode compliant encoding (note that CJK users tend to prefer 2-byte encodings like UTF-16, while Latin alphabet users tend to prefer single-byte encodings like UTF-8).

      Far easier to have the kernel say that a given byte ('/') is a directory separator, another byte ('\0') is the end of file name character, and leave user apps to interpret the byte stream. Then, I can use UTF-8 freely, and it's fine; a Japanese user can use Shift-JIS, and while his filenames look wrong to me, I can select any file he can create. In a case-insensitive system, he can create files that have different names in Shift-JIS, but are differentiated only by case in UTF-8 or ISO 8859-1.

  4. SWF by wizbit · · Score: 2, Insightful

    Mono rocks, and the latest 1.1 branch has support for System.Windows.Forms, the only (that I know of, anyway) cross-platform implementation of the GUI calls from .NET - native calls made on Windows, GDI+ and Cairo for other platforms. Truly a godsend for developing cross-platform apps in C#.

    I wish the Mono project and Miguel the best - they have done some excellent, excellent work and deserve to be commended.

    1. Re:SWF by Burb · · Score: 4, Informative

      Just FYI, the portable.net project has some kind of System.Windows.Forms implementation. Don't know how good it is, though.

      --

  5. .NET is a litigation nightmare waiting to happen by Anonymous Coward · · Score: 4, Interesting

    The prospect of GNOME becoming dependant was the straw that broke the camels back and made me switch to XFCE, keep the .NET patented API out of GTK!

  6. Why I love mono by adolfojp · · Score: 4, Informative

    C# is one of the best ECMA compliant languages today. When used with open source libraries it is a very powerfull developement tool. It is only quasi ilegal when you use the microsoft libraries wich you DON'T need to use.

    For rapid application developement under Linux I'll take C# and mono any day.

    Cheers,
    Adolfo

    1. Re:Why I love mono by hsmith · · Score: 2, Interesting

      I am a java fanatic, but c# has really pulled me away. It is a breeze to build enterprise web applications in C# compared to the counterpart in java. Java missed the ball with J2EE IMO, they made it more difficult than it needed to be. MS got it right with ASP.NET...

    2. Re:Why I love mono by Anonymous Coward · · Score: 2, Insightful

      C# is one of the best ECMA compliant languages today.

      This is an utterly nonsensical statement. ECMA is a standards body, you can't "comply" with an organisation.

      ECMA has published a number of specifications, such as ECMA-262 (Javascript/JScript/QtScript), ECMA-334 (C#) and ECMA-335 (CLI).

      Even if you were to take your original statement as referring to ECMA-334 rather than ECMA itself, it's still nonsensical. C# is "one of the best" at implementing its own spec? Duh! In other news, green is the greenest of all colours.

    3. Re:Why I love mono by SunFan · · Score: 2, Interesting


      Java doesn't staple your testicles to Windows. .NET does. All .NET is is a Windows development platform--"cross platform" doesn't even enter the picture.

      --
      -- Microsoft is the most expensive commodity operating system and office suite vendor in the marketplace.
    4. Re:Why I love mono by LDoggg_ · · Score: 2, Insightful

      J2EE is a collection of technologies not a specific methodology or architecture.
      There are several ways to write "enterprise" web applications in java. If you don't like EJB & servlets, maybe you'd like to use struts with JDO, or java server faces with hibernate, or just procedural JSP with straight JDBC or mix and match whatever pieces you want.

      Are you sure MS go it right, or did you just pick the wrong coding paradigm out of the available J2EE technologies?

      --

      "If they have both, tell them we use Linux. And if they have that, tell them the computers are down." -Dave Chapelle
  7. And it does by MajorDick · · Score: 2, Interesting

    I played with Mono when it was first in Beta as I love the .Net CLR, no its not perfect, but its pretty damm good.

    Mono was a way for me to extend my growing .Net knowledge againt Unix and non MS plattforms.
    I just downloaded 1.3 (Beta) and I am VERY Impressed with how far they have come I converted a small web app about 10 pages to run under mono, and it does perfectly, I only had to steer clear of a few of my more ecclectic .Net shortcuts, (I should have in the first place)
    Mono is and has been self hosting for quite some time, Its a full real language development enviroment not some hodge podge interpreted scripting hack
    Congrats to the Mono team, I am looking forward to you .Net 2.0 implementation (some is already part of the 1.3 release)

    I can write code 5-6 time faster in .Net than I can in C++ , that me , but if there is no appreciable difference then why in the heck would I write it in C++ ?
    ESPECIALLY when its a WHOLE lot easier to move a Mono app around plattforms,
    The next project that needs cross platform capablity I will write in Mono, (Writing in Mono its almost sure to work out of the box in MS land)

    1. Re:And it does by Sheetrock · · Score: 2, Insightful
      It's probably the next stage in computing. Mono (and .NET) are lambasted by folks who are rooted in the past; much like Java, it will have an uphill battle to win mindshare amongst people who believe we should continue to concern ourselves with type safety, buffer overflows and memory leaks when we can design or use a system that takes care of such problems for us.

      Fortunately, this is not a popularity contest. If it works best I'll use it, and if it becomes the patent minefield that others suggest I'll use something else. But I think people just don't want to admit that Microsoft came up with something better than the rest of us, even if it's implemented by a open-source friendly developer.

      --

      Try not. Do or do not, there is no try.
      -- Dr. Spock, stardate 2822-3.




  8. Mono And Linux by WombatControl · · Score: 4, Informative

    I've tried Mono, and while I've little desire to move from Python over to Mono, it's a very well done project. The GTK bindings are quite nice, and C# as a language is much, much, much easier to work with than Java.

    The big "if" is whether or not Mono can become to popular without Microsoft trying to pull the plug. However, even if that does happen, C# is an ECMA standard. There are plenty of native Linux libraries that can be used in place of the Microsoft classes. For developing GUI applications under Linux, you're not going to use the Windows.Forms libraries anyway, you're going to use GTK. Mono can stand on its own as a good RAD language for developing graphical applications for GNOME.

    I know it's fashionable to bash MS at every turn (and as a Mac/Linux user I do all the time), but C# is a nice language and the .NET libraries are infinitely better than the cruft of Win32/MFC and the other mess of libraries that Microsoft used to shove down programmer's throats. Mono has done an excellent job of taking those libraries and making them work on Linux.

    Even without the Microsoft libraries, Mono still provides a good framework for RAD under Linux and GNOME. If we can make it as easy as possible to transition between Windows programming and Linux programming it only helps propagate Linux.

    1. Re:Mono And Linux by Anonymous Coward · · Score: 2, Interesting

      Out of curiousity, what exactly makes c# easier to work with than Java?

      I see many comments on Slashdot to this effect, whenever mono comes up, but nobody ever says how or why they find it easier to work with than java.

    2. Re:Mono And Linux by alext · · Score: 3, Insightful

      C# as a language is much, much, much easier to work with than Java

      Not just interesting, more like astonishing given that the languages are practically identical.

    3. Re:Mono And Linux by codepoetix · · Score: 2, Informative

      ...the .NET libraries are infinitely better than the cruft of Win32/MFC

      Heh. As far as Windows.Forms is concerned, they are mostly just a thin wrapper of managed code around the cruft of Win32/MFC. The "clean break" is promised with Avalon. We'll see.

      Still nicer to work with, tho'.

    4. Re:Mono And Linux by mrroach · · Score: 3, Informative
      From my brief poking at both java and c# for gui programming, the difference that strikes me most is the incessant need in java to create anonymous classes for event handling:
      addHandler(new eventHandler() {
      public void yaddaYadda(EventThingie e) {
      }
      });
      As opposed to c#'s typical method:
      clicked += clickedEvent;
      ...
      }
      public void clickedEvent(object o, EventArgs e) {

      }
      I know it is not a huge difference, but I much prefer c#'s method.

      -Mark
    5. Re:Mono And Linux by kill+-9+$$ · · Score: 2, Interesting

      I'm a java guy who's recently been required to start doing some C# in order to keep my job. I must say, that overall, C# is a decent language. Hands down, if I have to ever write real Windows-only apps again, I'll use it.

      I found that as a language its much less restrictive than Java. Java's API's are pretty rigid, well defined, C# seems to be a bit more relaxed.

      Now for me, thats the thing I like better about Java in that it forces you into a particular coding style/way of doing things. I've had the debate numerous times with Perl folk who like things a bit more relaxed. To each their own I guess.

      Thing is that when I go to maintain somebody elses Java code, its pretty consistent with the way I develop code, just because Java kinda forces you into a particular style/way of doing things. Flip over to Perl, and I've had numerous occassions where I've had to learn the previous developer's style at times to follow their code with ease.

      So my gut feel on the C# language is its a bit more relaxed (not as much as something like Perl), so I'm thinking I may run into this heartache if I ever have to maintain somebody elses C# code.

      Just one other note on why I like that rigidity in code as opposed to flexibility. I find that the more flexible languages lend themselves to allow developers to cut corners and/or take easy routes to do things. Again from personal experience, as software scales up beyond its original scope, I find that its easier to move a Java program forward into bigger and better things than stuff I've seen in other languages. Mostly because the solid foundation was built and effectively enforced by the language from the start, whereas in other languages you sometimes have to solidify stuff up a litle bit more before moving on.

      Anyway, this is all mystical voodoo software developement stuff thats hard to codify, but thats my experience. And as I was saying its personal preference. Doesn't meen you have to agree. Doesn't meen that I'm right. (or that I'm wrong)

      My buck and a quarter...

      --

      -- A computer without COBOL and Fortran is like a piece of chocolate cake without ketchup and mustard
    6. Re:Mono And Linux by mrtrumbe · · Score: 2, Informative
      I can count, on one hand, the number of improvements C# makes on top of java's syntax:

      1) Events
      2) foreach (versus for loops)
      3) Properties (versus accessor methods)
      4) Boxing/Unboxing (versus Classes for intregal types--also used as the "implicit" operator)

      Forgive me if I missed anything, but this is all I can think of. On the flip side, Java has a few things which I consider better than C#'s implementation:

      1) Explicit declaration of the exceptions a given function will throw.
      2) Better handling of packages, especially in the importing of packages into the current class.

      I use both languages (learned java first, though) and I really think the differences amount to a wash. When I go from C# to Java, I miss Properties. When I go from Java to C#, I miss the ability to enforce exception handling. In the end, they are both extremely usable languages well suited for modern object oriented programming.

      Taft

    7. Re:Mono And Linux by miguel · · Score: 4, Informative

      If comparing C# 1.0 vs Java 1.4:

      * Attributes.
      * Support for unsafe code.
      * P/Invoke vs JNI is a fairly big difference.
      * Operator overloading, which on the .NET Framework is used with good taste.

      If comparing C# 2.0 vs Java 1.5:

      * Iterators (yield keyword).
      * Anonymous methods.
      * Fixed buffers
      * Generics for value types (Java only has generics
      for reference types, everything else must be
      "boxed", the Int vs "int" problem).

      Now, from a pure usability standpoint, I like
      the tiny things like:

      * `mono program.exe' runs your program, no need to
      pass a class name, or a path or setup the cp to
      run.

      * The layout of my files is not constrained to
      one-file, one-class and the file system hierarchy
      does not have to match the namespaces I have
      chosen.

      Miguel.

    8. Re:Mono And Linux by claes · · Score: 3, Interesting

      `mono program.exe' runs your program, no need to
      pass a class name, or a path or setup the cp to
      run.



      'java -jar program.jar' would be the Java equivalent.


      The layout of my files is not constrained to
      one-file, one-class and the file system hierarchy
      does not have to match the namespaces I have
      chosen.


      one-file - one-class is not neccessary with Java either, although I guess you are somewhat more restricted than in C# (which I don't know well)

    9. Re:Mono And Linux by mrtrumbe · · Score: 2
      I forgot about Attributes. I love those guys, too. Very useful.

      However, count me among those who prefer JNI to P/Invoke and unsafe code. Why would I want to pollute my java/c# codebase with c code? I prefer putting this code in a seperate library and using p/invoke or jni. However, I find p/invoke suffers from the "everything must be dynamic" syndrome that I found with COM. There is no good way to verify at compile time that I am not doing something blatently stupid. At least JNI forces you to compile your native code against a header file, insuring you some level of safety at compile time. I admit, though, that Java is less flexible on this point. I just like the paradigm Java forces you into.

      I'll pass on 2.0 vs. 1.5 stuff as I am ignorant of the improvements in both.

      As to your last two points, they both hinge on the GAC, which I am still wary of. Granted, I haven't given mono's GAC an honest to goodness spin yet, but I've found MS's GAC somewhat flaky. As an example, we were using .Net's default serialization on some objects which used the .Net Comparer class. The serialization routine serialized the Comparer class with our objects (this wasn't perfect, but we were using default binary serialization, so we expected some extra objects). We serialized the objects on one machine, send the data to another machine, then deserialized. This worked well on most of the machines we tested on. However, one of the machines we tested against had two different versions of the .Net framework installed. *Theoretically*, this should have been fine. A particular version of the Comparer class should have been loaded from the GAC and everything should have worked. However, we were getting a version exception on deserialization related to the Comparer class. We tracked down the error to the wrong version of the class being retreived from the GAC. Uninstalling the old version of the Framework made the problem go away.

      Since then, I've been a bit leary of the GAC. Don't get me wrong, we still use it. However, we are now much more careful about which frameworks we install on each machine as well as with the versioning and dynamic loading of our own assemblies.

      I guess what I'm saying is that with Java, you are left to manage versioning and the loading of classes (mostly) yourself. This is a burden, to be sure, but it allows the careful coder to control every aspect of the process. While .Net (and mono) allow you to sacrifice some of this control in favor of a "don't think about it" kind of versioning with the GAC, it makes me uncomfortable if I can't trust the loading and versioning mechanisms. I liken it to the Unix "everything is a file" paradigm to the MS "we'll take care of it in proprietary format X" paradigm (personified by the registry). You give up control by letting someone else handle the details for you. This has pros and cons, but if I don't entirely trust the people handling the details, I'll probably opt out.

      Taft

    10. Re:Mono And Linux by LDoggg_ · · Score: 2, Interesting

      * `mono program.exe' runs your program, no need to pass a class name, or a path or setup the cp to run.

      So does `java -jar program.jar`

      The layout of my files is not constrained to one-file, one-class and the file system hierarchy does not have to match the namespaces I have chosen.

      I guess I've just never found this to be a problem. It has forced me to keep my code organized which I found to be a good thing. And any third party libraries should be in jar files for effeciency.

      --

      "If they have both, tell them we use Linux. And if they have that, tell them the computers are down." -Dave Chapelle
    11. Re:Mono And Linux by LDoggg_ · · Score: 4, Insightful

      java -cp %CLASSPATH%;C:\AppDir\lib\library1.jar;C:\AppDir\l ib\library2.jar;C:\AppDir\lib\library3.jar -Xms32M -Xmx512M -jar myjar.jar is the equivilent. Or have you never written any real Java programs?

      You do realize that it is possible to place global third party libraries in a common location right? Try /jre/lib/ext/
      Or do all Mono programs only use standard APIs?

      --

      "If they have both, tell them we use Linux. And if they have that, tell them the computers are down." -Dave Chapelle
  9. Mirror for ogg files by mjmartin_uk · · Score: 3, Informative

    I've put the high and low quality recordings of Season 2 Episode 9 - 14 February 2005 in Ogg format up here:

    http://www.gobisoft.net/tmp/

    Just in case the Slashdot effect takes hold.

  10. Re:Is he really a big cheese by Trigun · · Score: 5, Informative

    Miguel is the lead developer for gnome, and his pet project was creating a .NET framework for linux. It has since grown to be more than a pet, gaining the backing of Novell. It is not the easiest thing to get running on your system, but by far not the hardest.

    It needs to be defended for a number of reasons. Linux zealotry (why would people move from Windows if all the software is cross platform?), laguage zealots (IMHO, C# is a nice language to program in, but the java guys scream bloody hell) and people afraid of MS putting the legal smack down on Linux over API issues,just to name a few.

    Personally, I think that Miguel's reliance on WINE is a mistake, but we have discussed this here, and it does have immediate benefits for the windows.forms and directX stuff. I know people who are programming frontends on both Windows and Linux, using a combination of the GTK interface and Windows.forms, and they love it.

  11. How Much .NET Can I use? by zoomba · · Score: 3, Interesting

    I understand that I can compile C# code across any platform that either has .NET or MONO installed on it. Or any major .NET language. My question is, does MONO extend to ASP.NET and integrating in some way with Apache?

    I ask this because I do ASP.NET development where I work, and would like to be able to do some of it on my Powerbook or Linux desktop at home if I need to. I know PHP is the better solution under Linux, and I would prefer to be doing it but it's not a supported product where I work so it's out.

    1. Re:How Much .NET Can I use? by Zhila+the+Great+Z · · Score: 2, Informative

      Yes, Mono supports ASP.NET. It has an XSP application (mini ASP.NET webserver), and an apache module mod_mono (basically sends requests to XSP via named pipes). I currently have an ASP.NET website completely run by Apache/Mono, and it works perfectly.

    2. Re:How Much .NET Can I use? by Adhemar · · Score: 4, Informative

      On Linux, you can use the Apache module mod_mono .

      It is available on the Mono project's download page.

      It allows Apache to serve ASP.NET pages by proxying the requests to a slightly modified version of our XSP called mod-mono-server that is installed along with XSP.

      It doesn't work on the Windows version of Apache yet, but work is in progress to make that work, too.

  12. Re:MONO is a disaster. by goldspider · · Score: 3, Insightful

    I thought competition was good for the market. If OSS is always superior to Microsoft offerings, why do you feel so threatened by Mono?

    --
    "Ask not what your country can do for you." --John F. Kennedy
  13. Re:MONO is a disaster. by mr.+marbles · · Score: 3, Insightful

    All it does is to legitimize microsofts attempt at monoplizing another market with yet another windows-only product exactly similar to an exsisting multi-platform product....it's their modus-operandi.

    Right cause if we ignore it, then it will go away. It doesn't matter if the industry decides to use it or not.

  14. Interoperability Potential by qwerty55 · · Score: 3, Interesting

    I think Mono may actually be a good think for Linux. One of the things that keeps many people using Windows is that they don't want to give up their current application set to learn the open source equivalents. A project like Mono has the potential to to allow developers to simultaneously target both Windows and Linux, which may lead to more Windows apps running on Linux and in turn more people willing to consider running Linux. Also, C# is a nice language to program in.

  15. Re:MONO is a disaster. by Frymaster · · Score: 4, Interesting
    All it does is to legitimize microsofts attempt at monoplizing another market

    wrong. mono is about "embrace and extend"... the same technique that microsoft has been using for years to swallow or crush competing technologies.

    it's nice to see redmond on the receiving end of this formula for once, don't you think?

  16. Re:Is he really a big cheese by wizbit · · Score: 5, Informative

    WINE support was abandoned in favor of their own SWF implementation, and it's been that way for a while in the development releases. They're developing their own implementation because, yes, it makes things less portable and less stable.

  17. Hope for ex-Java and Linux Developers by lowvato · · Score: 3, Interesting

    Many of us have taken jobs at shops that are Microsoft only shops. I hope that Mono takes off in a big way since that would give us a chance to easily port our apps over or at least develop on something other than fucking windows xp. It really sucks to get stuck in the MS world and not have the time to work in other environments and not be able to have other platforms run at the place that you work. Maybe Mono can be a bridge from the dark valley of MS purgatory.

  18. Please don't hit me... by alext · · Score: 3, Funny

    defends Mono by saying no one is forced to use it

    Awww, I bet those of you that have been beating him up for the last 3 years feel really mean now!

    Don't worry, it will pass.

  19. Re:.NET is a litigation nightmare waiting to happe by Anonymous Coward · · Score: 5, Informative

    Here is Miguel's answer to GNOME becomig depentdant on MONO: http://mail.gnome.org/archives/gnome-hackers/2002- February/msg00031.html

  20. Leaving out half the community? by m50d · · Score: 4, Insightful

    Don't get me wrong, I think mono is a great idea. But I'm worried about how closely tied it is to gnome. Not because of it taking over gnome, but because of it ignoring KDE. I think they should try and get more of the Qt stuff in there, Qt# at least should be in the standard mono dist. Otherwise you just split everyone.

    --
    I am trolling
    1. Re:Leaving out half the community? by Kjella · · Score: 2, Insightful

      The Qt licensing issues haven't been resolved: it is still only available under the GPL or commercial licenses. That may be good enough for shipping the KDE desktop, but it is not acceptable if Linux is to be a major player for commercial applications.

      To whom? The OSS community? They'd love it. In-house development? No distribution = no problem. Large commercial corporations? Frankly, the cost of a Qt licence is minimal for a 100% Qt developer. Small/one-man commercial corps? Not acceptable. But my impression is that they get their ass handed to them by a small OSS team duplicating and surpassing their crappy $20 shareware in no time. Are they needed to make a Linux desktop work? No.

      Say what you want, but I consider Qt to be far more functional than both GTK and vwWidgets. YMMV.

      Kjella

      --
      Live today, because you never know what tomorrow brings
  21. Re:MONO is a disaster. by mr.+marbles · · Score: 4, Interesting

    Good idea, lets promote and assist the "industry" in deciding to use this tool by NOT POINTINT OUT there is a better cross-platform tool out there but BY HELPING to legatimize this propietary toolset by allowing Microsoftzilla to say "see its multi-platform too" in their marketing materials.


    Fact is there are no better cross-platform tools out there for development, or at least that is the opinion of the users and developers of Mono. People develop and use Mono not because they think to themselve "Hey man, It's Microsoft! They've got to know better," they used it because the same cycle of C/C++ plus a bunch of toolsets are painful to use. Use whatever you want, I like Python myself. What I don't like is this negative FUD campaign against Mono.

  22. Parent NOT Troll! by Lysol · · Score: 4, Interesting

    While very, er, direct, parent has a point.

    It is 100% true that GNOME was founded that way. And I believe, more than anything, that the plunge into .NET by the Mono team steers straight into a darker and deeper pit than anything that would have been experienced in Qt.

    I've said it over and over that Miguel and crew have done a remarkable job. Really. But the biggest flaw in their tower is the fact that it's a spawn of Microsoft. I can completely understand their target of a langauage/platform that they know will succeed. But we all know Linux/FOSS to M$ is all about FUD, embrace and extend, etc... How many times has anyone from M$ talked about working with the GNOME/Linux community vs. destroying or crushing it? Plus, now that Miguel is part of Novell who do you think is going to prevail in court? On that one, I'm gonna put my bet on the company with $40bln in the bank (and that ain't Novell). Anyone up for the 'M$ pummels Novell again' show?

    Until M$ comes out with an open source license for .NET, Miguel and the Mono guys are walking on really thin ice.

    For myselft, years back I started dabbling in C# thinking I'd broaden my programming knowledge. But I have to say that I prefer Java over C# as C# is just too Microsoft and there's something about the feel of it that gives me goosebumps. Like my old, really old, yukky VB days.

    Plus, while most people don't care, I can't separate the poilitics from the code on this one.

    1. Re:Parent NOT Troll! by drew · · Score: 2, Interesting

      I've said it over and over that Miguel and crew have done a remarkable job. Really. But the biggest flaw in their tower is the fact that it's a spawn of Microsoft. I can completely understand their target of a langauage/platform that they know will succeed.

      yeah, and unix, c, and c++ were the spawn of at&t. that didn't stop the gnu project, even though at&t at the time was every bit the monster we see today in microsoft.

      what's your point?

      --
      If I don't put anything here, will anyone recognize me anymore?
    2. Re:Parent NOT Troll! by Locutus · · Score: 2, Insightful

      that really does not have anything to do with it. those "settlements" have never had any effect on how Microsoft conducts its business or what technology it uses. They typically are payoffs to companies who's products/ideas where stolen or crushed and who's financials tanked because of how Microsoft "conducts business".

      with $40+ billion in CASH, Microsoft can and does do what ever it pleases with other commercial products/companies. Though the smartest company to ever go to court with Microsoft was Stack. They took the ~$150 million and changed the market they were in. Everyone else were on sinking ships when they settled, and then just continued on the ride to the bottom.

      LoB

      --
      "Anyone who stands out in the middle of a road looks like roadkill to me." --Linus
  23. Re:MONO is a disaster. by axle_512 · · Score: 2, Insightful

    That's sort of silly though, doesn't it? The only one that seems to win with the "embrace and extend" is the guy with the monopoly.

  24. Choice of GUI toolkit by HogynCymraeg · · Score: 4, Interesting

    I remember hearing that GTK# was the way to go WRT the default mono toolkit. Bad idea. GTK on windows is pretty bad. However, I found this project which makes wxWidgets available to mono. Why oh why would you want to use gtk# over wxWidgets (which in turn uses native UI)?

    1. Re:Choice of GUI toolkit by miguel · · Score: 5, Informative

      Gtk# on Windows uses the UXTheme API, which will
      make Gtk+ look like every other app on the system.

      The feel in Gtk+/Win32 is already emulating the
      host OS, so you get both look and feel.

    2. Re:Choice of GUI toolkit by IamTheRealMike · · Score: 2, Interesting

      Are you similarly disturbed by Office, MSN or Visual Studio, which likewise do not use the XP widgets (and don't even attempt to resemble them) ?

  25. Re:MONO is a disaster. by alext · · Score: 2, Insightful

    Except that Mono has been trying for 3 years to embrace Dotnet 1.0 without getting there, and for Dotnet 2.0 "only a subset of the total framework will be available".

    Looking at the pace of change and who's in the driving seat, I don't think it's MS on the receiving end here.

  26. The libraries are why you use it by Anonymous Coward · · Score: 2, Insightful

    Your handwaving about MS pulling the plug and not allowing use of their libraries isn't a trivial issue. It's a critical problem.

    The class libraries are what make .NET valuable, the same with Java. A virtual machine based programming environment is all well and good, but the standard set of base libraries in the runtime are what make it useful. Sure, you use GTK to replace windows.forms. Now, what do you do when MS decides to assert copyright over the layout of the base libraries in .NET? That stuff ISN'T standardized.

  27. Re:MONO is a disaster. by Lysol · · Score: 4, Insightful

    What I don't like is this negative FUD campaign against Mono.

    Dude, it's not so much against Mono & co. - they're our peoples. I think they've done a great job. However, it is against M$ and their history and mindset. Until they start acting like there's a world where many types of languages and platforms can exist on their own merit, instead of wanting to own everything, then I won't trust them and I'll have to cast a skeptical eye towards anything berthed from Redmond. When was the last time Guido pronounced <insert Ballmer or Gates soundbite of the week here>?

    Besides, I speak not from the typical /. zealot perspective, but someone who left the M$ camp years ago after being continually burned by the platform and development environment. They haven't changed and if anything, have only extended their reach increased their lock-in. I'll never go back.

  28. Patents: ASP.NET, ADO.NET and Windows.Forms by Anonymous Coward · · Score: 3, Informative

    From the Mono's FAQ:

    Question 131: Could patents be used to completely disable Mono (either submarine patents filed now, or changes made by Microsoft specifically to create patent problems)?

    The controversial elements are the ASP.NET, ADO.NET and Windows.Forms subsets. Those are convenient for people who need full compatibility with the Windows platform, but are not required for the open source Mono platform, nor integration with today's Mono's rich support of Linux.

    The patents do not apply in countries where software patents are not allowed.

    Hopefully, the patents will fail in the US too; not many applications can be developed without ASP.NET, ADO.NET and Windows.Forms packages.

  29. Re:Mono perspective by DrXym · · Score: 3, Informative
    1. GTK plainly sucks for development. No, really, I tried, and it's worse than MFC.
      GTK is a C API. If you don't like it, use a binding such as gtkmm or wxWidgets. Basically it can live underneath any API you care for it.
    2. Windows.Form is THE thing that will allow true Linux WIndows portability. And it's a good widget library..
      It's good but many apps end up PInvoking Win32 because Windows.Forms doesn't do something they need. Thus it isn't that portable. Even a full implementation of Windows.Forms won't do you much good for a program that makes a single call to Win32, or which drags in some "safe" C++ compiled native DLL. But getting back to Windows.Forms, it exposes some particularly non-portable things such as WndProc, windows messages etc.
    3. .NET is better than Java in my opinion.
      The CLR & core are architecturally cleaner, but Java kicks seven shades of shit out of .NET when it comes to sheer breadth of implementations, platforms, 3rd party libraries, enterprise level specifications and so on.

    I'm in no doubt that Mono is a good thing, but neither .NET nor Mono offer anything remotely as compelling as Java at the moment at least in the enterprise domain. Let's see Mono go through a birth of fire on the desktop first.

    Speaking of which, I see a lot of potential there (after all half the system tools in most dists are python / perl etc. with bindings). But Mono really has to start encouraging people other than Linux users to use the open source stack - even .NET users. That means producing an installer containing the stack with some wizards & designers so that Visual Studio .NET users can use them with ease.

  30. Give Credit Where Credit is due. by Laoping · · Score: 3, Interesting

    I know, I know, MS is the evil empire and Open Source is the rebellion trying to free the universe and all that but I got to say that .Net is a fantastic language. I have programmed in C, C++, Java, and .Net and I have to say .Net is currently the best. Java 5 is close but it in missing a few things I like from .Net. I love Mono, and I think it works great. I have only had a few problems with it, but nothing major. It really is nice to develop server applications that can run on Windows and Linux, which is really nice for people who develop for enterprise level deployments. One company will want to use you server in a 2003 domain, the next wants it to run on Red Hat. With C++ and to some extent even Java this just does not work.

    On top of that as someone who studied programming languages for my masters project I have to say the .Net system is just the best-designed environments I have seen. I would expect that you will start to see it taught in the colleges, because It allows you to teach people programming that is not language specific. Hopefully you can then get people to know VB, Managed C++ and C# by the end on college, not just Java. Then you can take the importance off learning the syntax and place it on to learning structures and algorithms. Most importantly you then teach the skill of being to switch to new languages and adapt you knowledge, to teach people ho to learn, which in the most important skill I learned in college

  31. Re:MONO is a disaster. by KhaZ · · Score: 5, Interesting
    ... Perhaps I'm missing something.

    This post, and all it's subposts, really anger me. From what I understand, .NET is an ECMA standard. This can be verified here: http://msdn.microsoft.com/net/ecma/. They even post a C# specification, so really anyone with the talent can implement it.

    As such, how does this "legitimize microsofts attempt at monoplizing another market with yet another windows-only product exactly similar to an exsisting [sic] multi-platform product"?

    1) It's not Windows-only since MONO runs on linux.
    2) It doesn't legitimize any attempt. http://www.mono-project.com/about/licensing.html does not state anything about an 'evil' Microsoft licensing scheme, or invasion of Microsoft bed bugs into your code:
    "The C# Compiler is released under the terms of the GNU General Public License (GPL). The runtime libraries are under the GNU Library GPL 2.0 (LGPL 2.0). And the class libraries are released under the terms of the MIT X11 license.".


    Perhaps I fail to see the "licensing minefield created by Miguel", as the fact that it's an open standard, and that the MONO licensing itself isn't restrictive, pretty much subverts that.

    On a final note: even if all my points are completely off base, and wrong: I ask you one thing: When did we turn from software developers who seek the 'best' solution to 'X' people?

    "I'm a Mac person."
    "I'm a Linux person."
    "I'm a Windows person."
    "I'm an X person."

    Since when did it become about branding yourself with something, over choosing the best technology for the job? Half the sub-posts here are all about not choosing the tech because it 'feels too Microsofty'. C# was built by Anders Hejlsberg, who designed Pascal, and Delphi, both successful languages in their own right: and Borland technologies.

    Oh no! Now the anti-Borland people aren't going to use C#!

    When will this nonsense stop? We're all so anti-being branded, unless we do it to ourselves. Pick the RIGHT solution: not the one you've been known to cower behind.

    --
    - - - -

    KickingDragon

  32. Why Mono is necessary for the Linux/UNIX world by Tillmann · · Score: 5, Insightful

    Hi,

    I can perfectly understand that many hate Mono simply because of the fact that it was Microsoft who designed .NET. That is a valid argument; however, it must be considered that Mono is something that, in the future, is really required for the Linux/UNIX world.

    I suppose that those bashing Mono have never actually worked with C#. Personally, I'm really an anti-MS guy, but at work I was basically "forced" to use C#, and I must admit, it absolutely rocks. It is simply a much more productive language than C or C++, especially for GUI development. When you get a specific task, you're simply much more likely to get it done and get it stable within a given time in C#. The biggest productivity gain (besides the syntax candy, like foreach loops) comes from the garbage collection. Sure, other languages like Java have that, too. But, as far as typical DESKTOP applications are concerned, Java has failed to gain popularity both with users and developers (I suppose the major reason is that Sun took way too long to finally allow Java GUI apps to integrate themselves seemlessly in the desktop by adapting a "native" look & feel; but that's another issue).

    Linux apps have done a great job in the past years in getting competitive to their Windows counterparts. So, if Linux wants to stay competitive with Windows in the future as well, there must be a similarly productive language for GUI development on Linux. Standard C/C++ with GTK+ and QT can certainly compete with the horrors of MFC easily. But, in my opinion, not necessarily with the combination of C#/Windows.Forms, as far as speed of development is concerned.

    Also, if we want to see more commercial applications to run on Linux, there must be a way to easily develop portable GUI apps. Imagine you're the boss of a smaller software company. You develop Windows apps, your customers all use Windows (welcome to the real world!). Maybe 3% of your customers consider switching to Linux. And now you're starting that new software project that must be finished within a certain time. What are you gonna do? Buy QT, and tell your developers to start learning it? Use GTK, with all related problems on the Windows platform, and tell your developers to start learning it? Nope, that's not what the typical boss is gonna decide. He'll let the developers use what they're used to, M$ visual studio, where they can click together the GUI. He'll tell the 3% of the customers that Linux isn't supported.

    And this is exactly what may change with Mono!

    And talking about the patent issue: Giving up on Mono because of potential patent issues would mean giving up on the patent issue itself. Mono could be the best "bad" example how software patents support a monopoly and limit interoperability. The fight against software patents isn't over yet. At least not in Old Europe.

    bye,
    Till

  33. Re:.NET is a litigation nightmare waiting to happe by 21mhz · · Score: 3, Insightful

    You were rather quick to jump ship, because the said prospect never materialized and is unlikely to materialize any time soon.

    --
    My exception safety is -fno-exceptions.
  34. Re:MONO is a disaster. by Omega1045 · · Score: 5, Interesting
    I really disagree with your point. If anything, Mono helps fight MS. One way that MS locks people onto Windows is with proprietary developer kits and languages like VB and Visual C++. These rely on Microsoft libraries. When a company develops some custom software with ASP, VB or VC++ they are locked into Windows (with the exception of some 3rd party stuff that lets you run some of ASP on Linux, Wine, etc).

    MS Actually let .NET and C# become ISO standards unlike many of their past developer tools and languages. So when a large company develops an ASP.NET application and then decides that they don't want to have to continue support IIS or Windows, they now have a choice to migraite to Linix!

    Mono provides choice for those that are currently developing for the Windows platform. So does Java. Mono is FOSS. Is Java?

    I am currently working on a project that uses C# for the GUI. Our customers use Windows workstations, so we are writing software for Windows. We are actually moving away from Java which was the old language of choice at my company. You may argue the reasoning behind this, but it is the decision that was made and we are using C# instead of Java. I am hopefull that a more mature Mono (in a year or so with full System.Windows.Forms) may provide us with a way to run our client programs on Linux workstations, if requested by a customer. Mono will give us back some of the choice we lost moving away from Java.

    Mono creates great competition for Java. Perhaps this will be another reason for Sun to finally make Java FOSS. Competion is a good thing.

    --

    Great ideas often receive violent opposition from mediocre minds. - Albert Einstein

  35. Mono needs some work by bluefoxlucid · · Score: 3, Interesting

    Mono needs a bit of work to work with PaX, but it's possible. I mentioned the necessary changes to the Kaffe team; but they apply to any JIT.

    The issue is that a JIT compiler like Mono generates code at runtime. Because it's not generated in realtime (it's compiled at the loading of an executable module, one time), it's feasible to dump the executable code to a file on disk and mmap() it in.

    PaX won't allow code to be generated in memory unless the program has mprotect() restrictions off and uses mprotect() right. It's safer to rewrite the JIT compiler though, since you wind up with a stricter security policy that way.

    Furthermore, Exec Shield's NX emulation is flawed, and the use of mprotect() in those ways would disable the protections on large parts of the binary. If anything happens in or above the stack, the whole stack is likely executable. This is in fact one reason I prefer PaX; a slight modification to Red Hat's kernel to print X instead of - in /proc/[pid]/maps for !PROT_EXEC memory that's actually executable prints out a good deal of areas that are executable but shouldn't be (rwx vs rwX).

    Mono is flexible enough that C and C++ can be compiled to .NET. Microsoft supports this, as mentioned in earlier slashdot posts. It's really important to consider .NET and Mono as insecure, and to make sure they're adequately protected. If you're running all your programs in Mono and Mono has to disable PaX, then you lose the benefit of your GrSecurity-enhanced kernel. (same with ES).

    1. Re:Mono needs some work by Jamie+Lokier · · Score: 2, Insightful
      Mono needs a bit of work to work with PaX, but it's possible. I mentioned the necessary changes to the Kaffe team; but they apply to any JIT.

      For the benefit of readers, those "necessary changes" are to require a JIT to generate shared libraries for each class that's loaded, and then dynamically load the shared libraries.

      That's fine for a JIT that is only used to generate static code for each class. But it's not efficient for dynamic optimisation techniques, such as run-time profile-driven code optimisation, or run-time data reorganisation.

      On a PaX system, perhaps you can work around the restrictions by mapping a shared memory segment in two places, one of them as an executable mapping, the other writable. Write to one address, and execute at the other. I don't know as I haven't tried a PaX system.

      -- Jamie

  36. Platform independent? by Doc+Ruby · · Score: 2, Interesting

    Can I just run a Mono app on Linux that was written on/for .NET? When Mono is in full release, that is.

    --

    --
    make install -not war

  37. Re:.NET is a litigation nightmare waiting to happe by bonch · · Score: 3, Interesting

    The .NET API is an open standard. The best thing Microsoft could ever do for Mono would be to sue it. The publicity and attention and droves of users/developers it would get would be monumental. They'll ignore it.

  38. Don't use .NET at all by Anonymous Coward · · Score: 3, Insightful

    The absolute major problem with the way I feel Miguel has handled the Mono situation is that he constantly refers to ".NET". It's as if he somehow thinks he's going to outsmart Microsoft or something. You can't beat Microsoft at embrace and extend, you have to change the game. .NET is a MARKETING TERM!!!!!!! Don't you remember when it originally got tacked on to every single Microsoft product? Saying Mono is an Open Source implementation of .NET is ignorant at best, and misleading and irresposible at worst. Just stick to C# and CLR and make no mention of .NET at all. Otherwise, they will continue to show me just how absolutely pathetically naive they (especially Miguel) are. .NET is basically Microsoft's brand, and Miguel will never establish authenticity, originality, etc. by latching on to a MS brand. Sure, take the best stuff, build on the shoulder of some giants, but have some !@#$ business sense. Doesn't he work for Novell now? He should have a powow with a marketing intern and receive some lessons on basic marketing.

    If they managed to do that, I might start to consider using it. It's a pretty amazing piece of technology, but don't let yourself be blinded to every other issue because of some neato tech toy fetish worship. As it is, I'm just appalled at how stupid they have been with this. They are just playing right into Microsoft's hands, sticking their head into the guillotine as Microsoft gives them some nice flowers to smell and pretty pictures to look at. Fucking so fucking pathetic.

  39. What about wx? by WarmBoota · · Score: 3, Interesting

    I've a c# developer, and I'd be tempted to play with mono, but I have to wonder why Python with the wxWindows and wxGTK toolkits isn't getting more exposure.

    My biggest problem with Java apps is that they look equally bad on any given platform. Based on what I've seen with wxWindows and wxGTK, the apps look like native apps. Is Python missing something essential?

    --
    90% of everything is crap. Also, crap is relative.
  40. Python and QT by codepunk · · Score: 4, Insightful

    So what exactly is this going to get me over say something like using Python and the soon to be released gpl qt for windows? Python is a way more productive language than either C#,C,C++, java or VB so what is the benefit?, I just don't see it.

    --


    Got Code?
    1. Re:Python and QT by mrroach · · Score: 2, Interesting

      As someone who is a big fan of Python and uses it almost exclusively, I can say that the static typing of C# and Java has one big advantage. It's not better bug detection at compile time, or some nebulous concept of "enterprise readiness", it's intelligent IDEs with autocompletion etc.

      I prefer GvR's ideas about static typing for Python 3000 better (basically, all type checking is done via interfaces), but it doesn't actually exist yet :-).

      -Mark

  41. Re:I used to think the same thing! by adolfojp · · Score: 2, Interesting

    C# is really good computer language...

    Microsoft has no control over the language. It only has control over some libraries that have Linux counterparts.

    Using C# on Linux will make the transition easier for many Windows Developers.

    Using C# on Linux will increase the productivity of many Linux developers.

    How what I wrote above will destroy the chance to something better is a really good question that I would like answered.

    I post non anonymously to have a chance at inteligent discussion... you on the other hand are not only an ignorant coward, but have also a juvenile mind.

    Adolfo

  42. Re:MONO is a disaster. by squiggleslash · · Score: 2, Insightful
    So does Java. Mono is FOSS. Is Java?
    You really need to compare Java to .NET, not Mono. Mono's direct comparison would be with products like GCJ/GNU CLASSPATH and/or Kaffe.

    These projects would probably be a little further along than they are now had the development focus not been on .NET (Mono, .GNU), I think developers got bored with Java or something. That said, I like the whole GCJ thing, that's Free Software people implementing a (relatively) original idea using existing protocols, rather than just a blind copy of something someone else has done. Hopefully it'll succeed.

    --
    You are not alone. This is not normal. None of this is normal.
  43. Published does not mean free of patents by Anonymous Coward · · Score: 2, Insightful
    And in the MONO FAQ, question 131 I can see:

    The core of the .NET Framework, and what has been patented by Microsoft falls under the ECMA/ISO submission. Jim Miller at Microsoft has made a statement on the patents covering ISO/ECMA, (he is one of the inventors listed in the patent): here.

    Basically a grant is given to anyone who want to implement those components for free and for any purpose.

    If you want to accept such grants without a signed document saying that you are allowed, for all the life of the patents, to use such patents without any kind of compensation, in money, cross licensing, no agression treaties or such other conditions, then it's up to you. Saying the risk is not there is not right, until the patent holders provide such documents.

    Later in that question they talk about ASP.NET (non ECMA) and other things, which are also patented, but they'll try to avoid the patented methods. The ECMA parts are still patented and required for MONO, and all they can show is an afirmation in a mail list, that says "royalty free and otherwise RAND". RAND can be .25 cents per program copy.

    1. Re:Published does not mean free of patents by miguel · · Score: 4, Interesting

      The problem with patents is that they will cover
      the concepts, not the implementation.

      So the reality is that any modern implementation of
      anything remotely interesting will infringe in
      a bogus patent. You write a hundred lines of code
      and you are infringing someone.

      In my opinion, we can fight bad patents or we can
      move into a safer industry, like selling panties.

      But in particular, if you are talking about ASP.NET
      the question you must ask yourself are:

      * Do I use any concepts that exist in the .NET
      Framework in my code? If so, should I remove the
      feature?

      * Did the concepts in ASP.NET (or any other
      technology) exist prior to the .NET Framework?

      Remember that you must be thinking "concept" and
      not "implementation", because a patent is much
      broader than that.

      I believe there is very little new under the sun,
      and that prior art can be found for all the
      interesting parts of the .NET Framework. If I
      didnt, I would be selling soap.

      Miguel.

  44. Not exactly by TheConfusedOne · · Score: 3, Insightful

    Microsoft released portions of the CLR (Common Language Runtime) and C# for standardization. The real nuts-and-bolts of .NET are decidedly NOT an open standard. This is what concers many people.

    Additionally, since .NET is a wholly controlled "standard" by MS then Mono will be on the same treadmill that WINE and other groups chasing MS implementations have been on.

    --
    --- I wish I could hear the soundtrack to my life. That way I'd know when to duck.
  45. Re:MONO is a disaster. by aled · · Score: 4, Informative

    From what I understand, .NET is an ECMA standard. This can be verified here: http://msdn.microsoft.com/net/ecma/. They even post a C# specification, so really anyone with the talent can implement it.

    Perhaps you should read your own link. Only C# and CLI are ECMA approved standard. The other 80% of .Net (aprox.) is Microsoft property.

    --

    "I think this line is mostly filler"
  46. Re:Patent issues?-Hemophiliac Code. by alext · · Score: 2, Insightful

    For new readers, this means free with Gnome rather than free of patent lawsuits.

    It's important to keep these distinctions clearly in mind.

    (And vice versa).

  47. Re:MONO is a disaster. by miguel · · Score: 5, Informative

    Hello,

    You are wrong, Microsoft has not done anything
    to prevent code from running on Mono.

    There is the real problem that we do not
    implement all the class libraries, specially those
    that are being phased out like EnterpriseServices
    and Message Queuing. But then again, those are
    really marginal tools which were complex to use,
    so its not really a problem.

    The other bit is COM support, which we do not
    support as there is really no "COM" to talk to
    in Unix anyways.

    Miguel.

  48. Re:Is he really a big cheese by Locutus · · Score: 3, Insightful

    More on Miguels bio:
    Miguels possible next project; An open source tool which reads and writes the patented MS Office MS-XML.

    You see, he has a habit of following/copying Microsofts tech, no matter how many patents are behind it. People need to stop following Microsoft because it obviously can't lead to anything good or well designed. IMHO.

    LoB

    --
    "Anyone who stands out in the middle of a road looks like roadkill to me." --Linus
  49. Re:Server side Java for multiple platforms is not by miguel · · Score: 5, Funny

    Hello,

    Yes, "Java has a hell more production sites
    than Mono". This is whats wrong with this
    argument: if "having more production sites" is the
    metric to choose a technology over something new
    then we would still be running code in assembler
    and Cobol. After all, there were more production
    systems written in those than in C, C++ or Java
    when these languages came out.

    Love,
    Miguel.

  50. Re:Mono perspective by DrXym · · Score: 2, Interesting
    Sorry if I sound skeptical, but I'm involved in .NET projects too within a company that is predominantly Java & C++. For them the qualities they look for are reliability and stability. They don't care that the language is syntactically nicer - just that when they start the thing up, it doesn't stop until they take it down to add more features. Thus they use Java on the server side because it is rock solid. A highly desirable side effect of course is that they can take that code and move it from one box to another, one J2EE impl to another with minor to fair amounts of effort (fixing config files and such). Thus they're shifting a bunch of stuff from Solaris over to Red Hat Linux.

    Despite that, management have caught the .NET bug for client applications. This is where Java is weak. JFC might be great on paper, but it just blows as far as performance is concerned, looks weird even with a theme engine and is just plain difficult to programme. Eclipse & SWT demonstrate that a Java UI doesn't have to be such a pain, but SWT hasn't really spun off into something that 3rd party apps can rely on yet.

    So traditionally we've always coded C++ on the client side. There's nothing wrong with that in my book, but management have been sold on the idea that .NET will increase product stability and lessen development times. Which is great except they've decided we will migrate by wrapping the old legacy code with managed classes and use a .NET based UI. Thus we get the instability of C++ and the overhead of .NET! The alternative would be to rewrite the product entirely in .NET which would take years.

    Thus my skepticism about Mono. The real world (and the world Microsoft wants) has lots of unsafe and unmanaged code tied together with .NET. Unless Mono links to the whole of winelib and provides x86 emulation for non-x86 hosts, this code will never run outside of Win32. To cap it off, our app executes code in MS SQL, so we have yet another dependency. We have no intention of testing on Mono and I sincerely doubt it would work even if we tried.

    That's the real world. Mono isn't on the radar and never will be while it's considered some sideshow. The onus will always be on Mono to cope with whatever crap gets flung at it and not the other way around. Thus my belief is they need to push the great stuff they have so it is shown on the same level as the Microsoft code. If GTK# and other open stack APIs are made easy to develop and run from Dev Studio .NET 2003 it might sway someone sufficiently to use them in some major projects. Word will get around soon enough.

    I don't think .NET programmers are shy of good open source libraries (NUnit, Log4Net & Spring.NET are popular ports from Java), but they have to work in the first place for people to bother with them.

  51. Re:MONO is a disaster. by miguel · · Score: 3, Informative

    Hey,

    Small correction: C# and the CLI have both
    been approved as ISO standards: ISO/IEC 23270 (C#), ISO/IEC 23271 (CLI) and ISO/IEC 23272 (CLI TR).

  52. Re:Patent issues?-Hemophiliac Code. by Pxtl · · Score: 2, Informative

    Well, in its current state, Mono is free - afaik, its based on recognised ISO standards which are protected from lawsuits. Unfortunately, Miguel doesn't seem to want to stop there, and also wants to invade things like windows.forms which are outside of the CLR and into pure-MS domain.

  53. Cross platform apps and scripting by Rhalin · · Score: 5, Interesting

    Mono may be a reimplementation of an MS product, even looking at the source, you'll notice a folder full of *nix implementations of windows API calls. But what does it really matter if it does the job you need it to?

    I started looking into it a few weeks ago when a project I was (am) working on required a scripting engine that could handle running scripts from anonymous sources, id est untrusted.

    We went through a large range of languages: python, perl, angelscript, php, lua, etc etc but ended up with a few rather large problems in all of them: either lack of sandboxing and protecting a system from the effects a script could have, or lack of documentation and user friendlyness for those who may not be too familier with programming (yes, we have to consider them)

    One of the dev's on the team brought up that .Net includes a set of security features that help to lock down scripts fairly tight, the problem being, our app has to be cross platform. This started us looking into Mono, which doesn't implement all the security features -yet-, but by our planned release date, they should be done, or very close.

    Another thing to consider, is that Mono will run any CIL compiled code, meaning that we can support a virtually innumerable count of languages, with very little excess implementation (find a compilier and link it into the project).

    So now we have: cross platform scripting (with sandboxing eventually), and the ability to present the users/programmers of the scripts with the syntax they are most comfortable with using.

    Not only that, but Mono is going to save us a fortune on our development costs, because we may be able to drop Qt GUI implementation from our project roadmap, which averaged about $6000 for each developer(Qt Enterprise with QSA), I believe, and had some -major- limitations on what you could use thier scripting language for (for example, you're not allowed to use it to expose features of Qt itself to the scripter, which may be neccisary for our project)

    Mono does the job, fits our specs almost perfectly, saves us money, and is built on CIL ECMA standards. What more -could- we ask?

    1. Re:Cross platform apps and scripting by xxxJonBoyxxx · · Score: 2, Funny
      "...when a project I was (am) working on required a scripting engine that could handle running scripts from anonymous sources, id est untrusted... This started us looking into Mono, which doesn't implement all the security features -yet-, but by our planned release date, they should be done, or very close."

      My friend, you have some big balls. You're going to release something which needs a lot of security when the underlying security bits are unfinished and thus cannot be tested. Good luck with that.

      "We went through a large range of languages: python, perl, angelscript, php, lua..."

      I just have to ask: what about Java or JavaScript?

  54. what's the alternative? by jeif1k · · Score: 4, Insightful

    I thought the problem was that Microsoft told everybody that they didn't have any patents on C# or .NET, but they are actually a licensee of somebody else who has patents on it?

    Well, let's be precise. C# and .NET are two different things.

    C# is an ECMA standard with features that are found in dozens of other languages. There is no indication that there is anything patentable about it. In fact, if you look at the C# specification, it is clear that they have been careful to avoid patents that Sun owns on Java (yes, Java is patent encumbered).

    Then there is .NET. It is a huge collection of APIs, many of them Windows specific. In a trial balloon, Microsoft has attempted to patent the totality of those APIs. What the significance of that patent is going to be isn't clear--it may not be worth the paper it is written on.

    So, what's the upshot of it all? You can't avoid the risk of patent infringement no matter what language you use. However, at this point, it is pretty clear that C# exposes you to no greater risk than other languages. As for .NET, you don't have to use it: most open source applications developed in Mono are written using the Gnome APIs, not the .NET APIs.

    It's not an ideal world, but if you want a reasonably popular and practical natively compiled language with garbage collection and reflection, your choice basically comes down to C# and Java. Java is completely owned by Sun: Sun owns the specifications, Sun holds many patents on it, and Sun effectively can control who may implement Java and who may not (they have chosen not to exercise that control vis-a-vis implementations like gcj and classpath yet, but if they want to, they can). C# may not be the ideal choice, but it's the best you are going to get.

  55. Re:.NET is a litigation nightmare waiting to happe by bonch · · Score: 4, Informative

    From the licensing FAQ section of Mono's own website:

    "Question 131: Could patents be used to completely disable Mono (either submarine patents filed now, or changes made by Microsoft specifically to create patent problems)?

    First some background information.

    The .NET Framework is divided in two parts: the ECMA/ISO covered technologies and the other technologies developed on top of it like ADO.NET, ASP.NET and Windows.Forms.

    Mono implements the ECMA/ISO covered parts, as well as being a project that aims to implement the higher level blocks like ASP.NET, ADO.NET and Windows.Forms.

    The Mono project has gone beyond both of those components and has developed and integrated third party class libraries, the most important being: Debugging APIs, integration with the Gnome platform (Accessibility, Pango rendering, Gdk/Gtk, Glade, GnomeUI), Mozilla, OpenGL, extensive database support (Microsoft only supports a couple of providers out of the box, while Mono has support for 11 different providers), our POSIX integration libraries and finally the embedded API (used to add scripting to applications and host the CLI, or for example as an embedded runtime in Apache).

    The core of the .NET Framework, and what has been patented by Microsoft falls under the ECMA/ISO submission. Jim Miller at Microsoft has made a statement on the patents covering ISO/ECMA, (he is one of the inventors listed in the patent): here.

    Basically a grant is given to anyone who want to implement those components for free and for any purpose.

    The controversial elements are the ASP.NET, ADO.NET and Windows.Forms subsets. Those are convenient for people who need full compatibility with the Windows platform, but are not required for the open source Mono platform, nor integration with today's Mono's rich support of Linux.

    The Mono strategy for dealing with these technologies is as follows: (1) work around the patent by using a different implementation technique that retains the API, but changes the mechanism; if that is not possible, we would (2) remove the pieces of code that were covered by those patents, and also (3) find prior art that would render the patent useless.

    Not providing a patented capability would weaken the interoperability, but it would still provide the free software / open source software community with good development tools, which is the primary reason for developing Mono.

    The patents do not apply in countries where software patents are not allowed.

    For Linux server and desktop development, we only need the ECMA components, and things that we have developed (like Gtk#) or Apache integration.

    Question 132: Is Mono only an implementation of the .NET Framework?

    Mono implements both the .NET Framework, as well as plenty of class libraries that are either UNIX specific, Gnome specific, or that are not part of the .NET Framework but people find useful.
    Credits"

    Additionally, I don't see any objections to Java being used in the Linux world. And yet:

    - Both are backed by software giants
    - Both companies have traditionally been fiercely proprietary
    - Both of them offer a new language/platform.
    - While C# is now an ECMA standard, Java is still architected by Sun's engineers (even though Sun can claim that they have a "community" process
    for extending the language/specs)
    - Both have patents of various aspects of the implementation.
    - Both have proprietary implementations in the market.
    - Both have evangelists eager to win converts to the new platform.
    - Both the corporations are profit driven.

    So why is Java okay?

  56. Gnome for Mono doesn't use .NET by jeif1k · · Score: 2, Interesting

    The prospect of GNOME becoming dependant was the straw that broke the camels back and made me switch to XFCE,

    The Gnome for Mono libraries don't use .NET APIs, they rely only on ECMA C#.

    keep the .NET patented API out of GTK!

    There won't be any .NET APIs in Gtk+; Gtk# is a Gtk binding for Mono, not the other way around.

    And you better hope that Mono succeeds, becaues there is really not much else out there to develop the next generation of Linux desktop apps in.

  57. misleading and wrong by jeif1k · · Score: 3, Insightful

    The real nuts-and-bolts of .NET are decidedly NOT an open standard. This is what concers many people.

    Yes, large parts of .NET are not an open standard. But it's wrong to refer to those as "the real nuts-and-bolts", which falsely suggests that Microsoft kept important portions of the low-level foundations of C# proprietary.

    ECMA C# is a complete and powerful language and set of libraries--far more complete than C or C++. Together with the open source APIs that already exist on Linux (Gtk, Gnome, etc.), it gives you a fully open and documented platform to build applications on.

    Additionally, since .NET is a wholly controlled "standard" by MS then Mono will be on the same treadmill that WINE and other groups chasing MS implementations have been on.

    Most open source Mono developers won't be affected by .NET at all because they won't be using .NET; they'll be using C# with open source APIs.

    If you choose to use .NET, for example because you are developing a Windows application that you also make available on Linux, then, of course, you are dependent on the .NET APIs, but that's because you chose to use .NET. Mono is doing the best job they can in giving you that capability, but even if they fail, it just won't make a difference to open source developers.

    Also note that Mono is in a far better situation in this regard than open source Java efforts: Sun has draconian compatibility requirements with which they may be able to shut down any open source Java project whenever they choose.

    1. Re:misleading and wrong by alext · · Score: 2, Interesting

      Balderdash.

      Mono's goal, indeed its reason for being, is to clone Dotnet. Not C Sharp, not the CLI, but the complete platform. That statement has been there on the go-mono site since day 1.

      Now suddenly (that is, since about October last year) the true effort involved in staying on the MS treadmill has finally become apparent to the Mono developers. So we now have the emergence of Plan B, which cheerfully discards any notion of Dotnet compatibility and leaves Mono as yet another bytecode system, of which we had half a dozen long before Mono was an envious gleam in Miguel's eye.

      Wherever people make serious investments in time and money, they are not going to consider a platform that promises compatibility one day and drops it the next - the risks and the costs would be enormous. For such projects the "draconian" (complete) compatibility of Java is an absolute requirement, and one which literally hundreds of thousands of developers rely on every day.

    2. Re:misleading and wrong by jeif1k · · Score: 2, Interesting

      Mono's goal, indeed its reason for being, is to clone Dotnet.

      That's the reason Novell is paying the bill, and it is one goal among several.

      Now suddenly (that is, since about October last year)

      There is nothing "sudden" about it; the Gtk# bindings were there from pretty much the start of the Mono project, long before Windows.Forms was even usable. Almost all Mono GUI apps are written with them.

      I'm sorry you weren't paying attention (or is it that you just make up false "facts" to badmouth projects you don't like).

      For such projects the "draconian" (complete) compatibility of Java is an absolute requirement, and one which literally hundreds of thousands of developers rely on every day.

      In my experience as a Java developer, Java achieves only limited compatibility across platforms. Even that is only because all implementations right now are derived from Sun-licensed code. In different words, Sun's pitch is the same as Microsoft's: license all your software from one source and all your compatibility worries will go away. Thanks, but I don't want a Sun monopoly any more than a Microsoft monopoly.

  58. Re:MONO is a disaster. by jeif1k · · Score: 2, Informative

    Perhaps you should read your own link. Only C# and CLI are ECMA approved standard. The other 80% of .Net (aprox.) is Microsoft property.

    And perhaps you should read a bit more about Mono: Mono comes with two sets of APIs.

    One set is a reimplementation of .NET: it's where Novell sees money coming in, and it's there for people to port applications from Windows to Linux. But it's not what most Mono developers are going to be developing in.

    The other set is a binding of C# to existing Linux open source tools (Gtk+, Gnome, etc.). That's the set that most open source developers are going to be using. It doesn't rely on .NET and gets by with ECMA C#.

  59. Re:Is he really a big cheese by Locutus · · Score: 2, Insightful

    yup, I realize there is alot of copying going on at the APPLICATION level already and I don't really like that either but it's what we got. But when the copying is at the API level, that's another story and a long one at that. The story goes something like this. Microsoft has a monopoly in operating systems. It uses that monopoly to control the APIs used in the dominant operating system and thus direct/control developers. This control also allows them to keep the competition behing Microsoft since Microsoft developers have inside information and more timely information on those APIs.

    So, do you really think its a good idea building a development platform which puts OSS developers in the position of following Windows developers who are following Microsoft developers?

    Not to even mention that the OSS apps are likely to be copies of Windows apps but copies without full access to the patented APIs of .net. So there would be no real reason for them to be used on Windows and they'll only be a partial copy on Linux or whatever platform Mono is running.

    Bridging with open formats is a far better way to go. Sometimes copying the LookAndFeel can help the timid move but like I said, it's UI no API copying. Bridging by copying MSFT APIs have NEVER been the way to go if you expect any long term progress. They'll shoot you down sooner than later.

    LoB

    --
    "Anyone who stands out in the middle of a road looks like roadkill to me." --Linus
  60. Re:MSMQ phased out? by miguel · · Score: 3, Informative

    The infrastructure itself is not, the existing
    API is.

    The new API is part of Indigo.

  61. Not much else? by Ars-Fartsica · · Score: 2, Insightful

    You mean besides the full SDKs that exist for Perl, Python, Ruby etc including good Gtk (and Qt!) bindings??

  62. Re:MONO is a disaster. by man_of_mr_e · · Score: 2, Insightful

    We all know that OS/2 was better than Windows. Guess who won?

    We do?

    OS/2 wasn't portable. The PPC version was never finished. It suffered from a lot of other problems. It made no attempt to be secure. The same can be said for Windows 3.x and 9x, but MS had an (arguably) secure and portable version (NT) for those that needed it.

    Sure, it was better than Windows 3.1, but Microsoft won largely on making Windows 3.x apps and device drivers work transparently with Windows 95. OS/2 kept the Windows 3.x look and feel, used enormous resources to run said apps, and was generally slow doing it. Finally, it wasn't compatible with OLE and ODBC when running in "isolated" mode.

    OS/2 felt like it was bolted together out of spare parts. It's UI was over complicated (though very powerful) and it also scared people off. Throw in problems like the OS2.ini corruption, the massive config.sys, the occasional reboot/crash cycle (where a bad app could crash the os and was reloaded at startup and caused the OS to crash again before you could do anything) and lots of people were left extremely frustrated by this "better" OS.

    Then of course IBM itself wasn't committed to OS/2. Oh sure, it said it was, but various factions within IBM were not, specifically the PC division.

    And finally, what OEM would buy an OS from their biggest competitor? Who wants to pay IBM to put themselves out of business? IBM would have been much better off to spin off OS/2 into it's own company. This finally happened when ECS bought it out, but by then it was too late. it's still early 90's technology.

    It was a long string of failures on IBM's part, and successes (and certainly some questionable tactics as well, though they were only contributors to a rich tapestry of problems for OS/2) on MS's that cause OS/2 to become an also-ran.

  63. Re:Python, Perl, PHP by jeif1k · · Score: 2, Insightful

    Those are nice languages, and I use them myself, but they are not alternatives to C#, for many reasons. For example, they lack static type checking and they don't compile into code that is comparable to compiled C/C++ in terms of performance.

  64. All this FUD has finally... by calgarynerd · · Score: 2, Insightful
    ...triggered me to register a /. account.

    Ok - here's the rub. C# and the CLI specifications are not only ECMA standards - but they are now ISO standards. Just like C++ and the STL... Just like C...

    What many of you don't realize is that if companies hold patents on mechanisms related to software development programming languages, compilers, parsers, lexers, interpreters, verifyers, runtimes, etc... this is not going to stop them from SUING ANY INFRINGING IMPLEMENTATION...

    What is potentially vulnerable? Everything:

    1. GCC
    2. Python
    3. Ruby
    4. Perl/Parrot
    5. Mono
    6. Java
    7. .NET
    8. REXX
    9. JavaScript

    Basically, until some company decides to litigate NO ONE KNOWS which software may be infringing.

    Patents are exactly like an arms race featuring nuclear weapons - everyone has to have 'em - but once the missiles begin to leave the silo's, there will be hell to pay...

    1. Re:All this FUD has finally... by alext · · Score: 2, Insightful

      What is potentially vulnerable? Everything

      You mean everything that didn't come first.

  65. These LugRadio guys... by RichDice · · Score: 2, Funny

    I've never heard these guys before. They're amusing and all, but they're kind of like the Bevis and Butthead of the Linux commentary world, aren't they?

    Cheers,
    Richard

  66. Re:Miguel Bashing... by miguel · · Score: 2, Interesting

    Hello,

    Well, you are missing the point about anonymous
    methods. They are just a lot simpler to write and
    hook up than the equivalent for Java. You need to
    remember less, you need to type less, and they are
    effectively closures with variable and state
    captures like Scheme would do. Anonymous classes
    in Java are effectively a pre-processor hack:
    they cant capture or reference local variables
    nor parameters, they can only reference instance
    variables of the containing class.

    Can everything that anonymous methods do in
    C# be done with alternative methods in Java?
    Absolutely. But then again, sendmail's config
    file format is turing complete, but that does not
    mean it is pleasant to write applications on top
    of it. The same applies ;-)

    Thanks for the pointer on .jar, the rest of
    the Java criticism still applies.

    That being said, Mono and the CLR are language
    neutral, and we will run all of your Java code
    in Mono. We are an equal opportunity language
    runtime. But given the choice, I tend to go with
    writing my code in C#.

  67. Re:No mindshare for Mono by geomon · · Score: 2, Insightful

    I classify C# and Java programmers as faux hackers.

    As I noted before, this is more opinion than fact.

    Whatever gets the job completed (with minimal bugs) and puts a program in the hands of users is a "real" programming language, despite your feelings about its worthiness.

    Also, the languages you've cited are all higher-lever languages than assembly. The "real" hacker community might consider either one of us to be faux hackers for using C or C++.

    Beauty is, as always, in the eye of the beholder.

    Unless they are using Fortran. ;)

    --
    "Rocky Rococo, at your cervix!"
  68. Re:license & both are obsolete by abigor · · Score: 2, Interesting

    Use the real world as a demonstration.

    1. How many commercial apps are written in Qt?
    2. How many in GTK+?

    Answers:

    1. Many.
    2. None.

    As for Gnome and KDE being obsolete, well, that's a rather strong way of putting it. Both will continue to evolve, and in the long run, will probably have some sort of managed code core as a development option. But I doubt you'll see the end of native code in those desktops for a very long time to come.

  69. Prove mono is suitable for commercial development by MrData · · Score: 2, Insightful
    I challenge Mr. Icaza, et al. to prove that they can fulfil the following vision given at the top of the project's web site (http://mono-project.org/):
    Mono is a comprehensive open source development platform based on the .NET framework that allows developers to build Linux and cross-platform applications with unprecedented productivity.
    I am willing to overlook the marketing speak claim about productivity, but I would like to know:
    • What apps built with mono can I currently run in the standard Microsoft .NET runtime enviroment unaltered, or visa-versa ?
    • What steps have you taken to insure that above statment will continue to be true as future versions of .NET are released from Microsoft ?
    IMHO, Mono cannot be taken seriously as a commercial development environment unless these two questions can be answered.
    I furthermore believe the mono team owes the development community answers to these questions since countless development man-hours will be wasted on mono based projects if this vision proves to be untrue.
  70. Re:Prove mono is suitable for commercial developme by mrroach · · Score: 3, Insightful

    It seems strange that your questions do not actually have anything to do with the statement you quoted...

    If I can write an application on linux under mono, and run it on windows under mono, would that count as cross-platform? I have done that. So have others.

    How would future versions of MS' product change the state of the current mono implementation?

    -Mark

  71. Re:What a Mono-umental waste of time!! by RichiP · · Score: 3, Insightful

    First of all, it's not YOUR time or money they're wasting. It's theirs. Second, they're contributing to Gnome (and the opensource community in general) in the way they see most fit. They're doing it because they WANT to do it. It's their own itch they want to scratch and it's no different from any other opensource software developer who said they'd do something to "scratch an itch".

    Most of all, I don't understand why this affects you so much that it drove you to show your obvious displeasure. If you think that by not working on Mono, those same guys would work on projects that you want, you're dreaming.

    So if you think they're wasting their time and not yours, shut up and watch. I think these people are one of the brightest people I've encountered in the opensource movement and I happen to be software developer who's not swayed by market-speak or North American insecurities. I've been working with opensource and would dearly love to write Gnome apps but find Gtk/C unwieldy. I also think that the use of IDEs is true to the *nix philosophy of creating the best tools to aid humans and, right now, those tools can be easilly accessed due to Mono. I love monodoc. It's as good (if not better) than javadoc. The entry curve to Gnome programming just became shallower with the advent of Mono.

    Quite the opposite, I think what the Mono developers are doing are a perfect use of their time and I look forward to future developments in the way software project should properly be done.

  72. Re:M$ has already won by RichiP · · Score: 2, Informative

    Whatever are you smoking? Perhaps you're just stating your own bias while trying to pass off some generalization without any proof.

    In the Gnome camp, Mono as well as traditional Gtk/C, python and ruby coders are getting along rather peachilly. Because of Mono, there are several more apps for Gnome that otherwise wouldn't have been there. If you read the PlanetGnome blogs, you wouldn't see any split whatsoever.

    It really is pathetic seeing people like you spread FUD because there's a project you don't like instead of actually trying to work with people who've nothing but the best interests at heart.

  73. Geekiness vs. Zealotry by RichiP · · Score: 2, Insightful

    One of the things that hit me hard like a brick in the face is the disparity in the reaction of people claiming things under the name of the community.

    It's obvious to me from Miguel de Icaza and other Mono coders that what they're doing is as much for community as it is for their company. And yet this same community manages to react in opposite ways. Those who dislike a project (any project) will react from challenging the instigators with trying to prove their ideas work to downright maligning their efforts. On the other hand, people who like the project do their best to try and help out knowing it would benefit the community in the end.

    The odd thing is: it's the same project. The difference is in people. It's a tool that's not inherently evil. If people are divided in this case, it's by their own choosing.

    Whoever that blubbering guy is in LUGRadio that always has two reasons for anything, would you kindly reassess your intentions for making those comments as its clear from MdI's words what his are.