Slashdot Mirror


Miguel de Icaza Explains How To "Get" Mono

LeninZhiv writes "It's perhaps the most controversial project in the open source world, but this mostly stems from misunderstanding: Mono, the open source development platform based upon Microsoft's .NET framework. Immediate reactions from many dubious Linux developers have ranged from confusion over its connection with .NET to wondering what the benefits of developing under it are. Throughout the course of its four years of intense development, sponsored by Novell, Mono founder Miguel de Icaza has had to frequently clarify the .NET issue and sell the community on it. In this new interview, Howard Wen asks Miguel to explain himself one more time."

105 of 559 comments (clear)

  1. Anyone Have Actual Experience With Mono? by the_mad_poster · · Score: 5, Insightful

    Rather than continuing to de Icaza drone on and on trying to vindicate his project again, is there anyone here who has actually USED Mono and has something to say about it one way or another? Particularly interesting issues:

    - Mono Vs C++
    - Mono Vs .NET C#
    - Mono compatibility claims

    Insight from some USERS would probably be more beneficial now than more bickering over what Mono is or whether it should even be.

    --
    Alito: A vote for Alito is a punch in the eye to put that bitch back in her place!
    1. Re:Anyone Have Actual Experience With Mono? by arthurs_sidekick · · Score: 2, Insightful

      Only the latter two are apples to apples, really. If you mean C# vs. C++, well, considering strictly the language, C# *overall* seems like it is more productive than C++, which shouldn't be too surprising. That's not, of course, to say that you should use C# instead of C++ everywhere. On the other two issues, I can't really comment.

      --
      "Oh, I hope he doesn't give us halyatchkies," said Heinrich.
    2. Re:Anyone Have Actual Experience With Mono? by kc8kgu · · Score: 4, Informative

      About a year ago, I wrote a C# webserver that did basic authentication, cgi, and directory browsing. It had a GUI but I partitioned it so that the webserver wasn't depenent on the GUI interface. I downloaded mono, created a console front end, compiled and ran it. Flawless. I didn't have to change one single line of code in the webserver class. Thats all I need to know. (BTW, this was on a windows box.)

    3. Re:Anyone Have Actual Experience With Mono? by Quixote · · Score: 2, Informative
      I was wondering the same, too. But in TFA, the first figure is captioned:
      Here we see F-Spot, a photo management application for the GNOME desktop that was developed under Mono.

      Here's the homepage for F-Spot, FWIW.

    4. Re:Anyone Have Actual Experience With Mono? by jone1941 · · Score: 5, Informative

      I'm sure I know less than most, but here are my general experiences with it.

      Mono Vs C++ - this is not a normal comparison due to one being a byte-code language and the other being compiled. That being said, I'm continuously impressed with mono's speed (especially compared to Java). It's current downside is an increase in memory utilization (compared to c, c++).

      Mono Vs. .Net C# - The only major difference is mono's lack of complete support for windows.forms. This is windows primary API for building C# gui apps under windows. Mono is working on an implementation of windows.forms, but I personally prefer gtk# which is portable (at least to windows afaik). Also, they have and ASP.net implementation which is suppose to have great compatability but I can not speak from experience here

      Mono compatability claims - here's the shocker, it really is very compatable with microsoft's C# .net platform. We're talking about ECMA specifications here, so they really can strive for compatability, it's less of (though not completely) a moving target than the WINE people have to deal with. They use to have a page listing package status, I can't seem to find the link anymore.

      Disclaimer: I've been working on various small personal projects using mono for the last 6 months and have been using various apps centerend around mono for about the same.

      --
      Fear trumps hope and ignorance trumps both
    5. Re:Anyone Have Actual Experience With Mono? by hey! · · Score: 2, Interesting

      Well, interesting. This tells us the CLR is pretty good. But what about the libraries? Did you use Microsoft's Windows.Forms or Monos?

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    6. Re:Anyone Have Actual Experience With Mono? by kc8kgu · · Score: 4, Informative

      No forms at all, gtk or windows. As I said I whipped up a console (cmd line) front end just for the mono test. I should also mention that this webserver was heavily multithreaded - which is another important yardstick for the maturity and stability of their code.

    7. Re:Anyone Have Actual Experience With Mono? by cardpuncher · · Score: 2, Interesting

      Good question. Every time I look at the site to see how it's doing, what's implemented and what's not I go cross-eyed. And elsewhere.

      Which is a shame, because the .NET environment is fundamentally very well designed and, despite its origins in the evil empire, actually has a lot going for it. And Mono should give the FOSS movement a chance to play their own game of "Embrace and Extend".

    8. Re:Anyone Have Actual Experience With Mono? by chiph · · Score: 2, Interesting

      I've been a C# developer for a couple of years now, and have been keeping an eye on Mono. Now that I have a Mac mini, the idea of using a language I know vs. having to learn Objective C, combined with the Cocoa# GUI framework, is very attractive.

      I'll be doing some serious downloading this weekend!

      Chip H.

    9. Re:Anyone Have Actual Experience With Mono? by darekana · · Score: 2, Interesting

      It was easier for me to setup XSP and Mono than Tomcat and Struts/Java etc. It might be because XSP/Mono is still relatively immature compared to the bevy o' java frameworks we have to choose from. But sometimes having too many choices wastes lots of time for us newbies. Makes it hard to choose the best solution and causes confusion etc.
      Here is the Ajax style Japanese/English dictionary site I'm building with it.

      On the other hand, Eclipse is way beyond Visual Studio right now and it makes devel with Java almost fun.

      Best Regards,

    10. Re:Anyone Have Actual Experience With Mono? by Anonymous Coward · · Score: 5, Interesting

      This is a bit long-winded, bare with me, I'm practically a ./ virgin ;)

      Some time ago, getting spontaneously fed up with C++ with managing memory, obscure STL bugs and so forth, I decided to check out if Mono 1.1.4 (C#) would cut if for my application performance-wise.

      Now, this application is a quite performance hungry scientific comptation app wich makes heavy use of vector and matrix operations so the first thing I did was port a sub-set of my home-grown library for this to C#.

      The classes use operator overloading to facilitate greater readability in the main code. I then proceeded to implement a fairly simple set of algorithms to test the performance of C#/Mono vs C++. Although I did expect some sort of overhead and slowdown in C#, I was quite surprised and discouraged to find that overall, compiled C++ was faster than Mono's JIT by several orders of magnitude (i.e. 0.018s vs. 1.2s). As is well-known, in theory a good JIT should be able to handle some things better than a static compiler can - and I expected this to be the case with Mono's JIT as well, so to at least lessen the performance impact somewhat.

      Now, I have seen what Sun has been able to do with their JIT compiler the last couple of years. I many cases Java code executing under their JIT will have a acceptable (small) overhead compared to native C++ code - and the productivity increase of dealing with managed code will more than make up for this. Unfortunately, the powers-that-be in the Java language community decided to ban operator overloading, apparently because it can be mis-used. As if one cannot create functions that don't do what you would think they do as well :P Be that as it may, enough flames have been traded on this subject in the past; for me, operator overloading is a major point when doing scientific algorithms, so java is not an option.

      I started to dig a little to find out why Mono's JIT fared so poorly in my case (which admittedly probably is a fairly untypical use). The reason seems to be that pracically none of the operator overloaded operations were getting inlined. And the objects returned from e.g. a vector addition operation were actually being created instead of being temp-used by the caller (I forget the term for this type of optimization). Also, it seemed that only extremely basic loops/brances would be optimized.

      A bit of googling shows that this is a known problem in Microsofts JIT as well. The reason is supposedly the need for a balancing of application-startup and JIT time. Reports pertaining to the new JIT shipping with the newest .Net framework beta indicates that this will still be present in the next version of the MS .Net JIT.

      Now, I appreciate that my kind of app is probably on the fringes of what could be considered "a typical" .Net app, but I'm still dissapointed with the performance compared to other JITed languages like, say, Java.

      I also tried the Mono AHT compiler with various settings with no significant performance gain for my examples (and quite a bit of slowdown in some cases).

      So, end of story; I'm back with C++, with it's irritating - but familiar - quirks and methodolgy. As for now, there still are no other (OO) languages that meets my needs for high performance and language convenience (operator overloading) - and yes, I've looked at Python+Pyrex/Psyco as well.

      Hopefully this issue will be address in a future Mono JIT, but I have a feeling it may not be high on the priority list as most "ordinary" apps will not suffer from this kind of problem.

      YMM, of course :)

    11. Re:Anyone Have Actual Experience With Mono? by IAmTheDave · · Score: 2, Informative

      I recently had to write a C# interface to OpenLDAP. The easiest way I could find was to use Novell's LDAP library for C#. But it is built on Mono, and I didn't have time to crunch through the thousands of lines of code and rebuild the binary for Microsoft's .NET framework. Interestingly enough, the only thing I needed was the Mono.Security.dll file, which is referenced from the Novell LDAP binary. So even though the Novell binary and Mono.Security.dll were written and compiled against Mono, having just that one dll in my referenced path allowed me to write my entire app in Microsoft .NET - zero recompiling, zero fuss. Point is, interoperability worked really nicely for me.

      --
      Excuse my speling.
      Making The Bar Project
    12. Re:Anyone Have Actual Experience With Mono? by omicronish · · Score: 4, Interesting

      Yeah, I was coding an IRC bot in C# using .NET 2.0 beta on Windows with Visual Studio 2005 Beta 1, and thought it'd be interesting to see if Mono can handle it. I'm a Windows user, but have Gentoo installed to play around with. My experience:

      • Took a while to discover how to setup a beta release of Mono on Gentoo, since it's masked. But after I figured it out installation was a breeze.
      • After getting the code on my Gentoo machine I had to figure out a way to compile it, since an MSBuild-equivalent isn't available yet for Mono, and so I couldn't use the solution file provided by VS. MSBuild is basically the next generation of the build process for Visual Studio, and is quite powerful (not limited to Visual Studio, not limited to programming projects, etc.). In the end I simply constructed a command that used csc (or I think the Mono C# compiler that supports generics).
      • Most of the compile errors were due to missing System.Collections.Generic.Dictionary. It was a stub last I checked, so I wrote my own Dictionary that used System.Colletions.Hashtable. IDictionary was also missing some members, so I had to write my own IDictionary interface. Note that generics are part of .NET 2.0, which is still in beta, so I didn't expect any of this to work completely anyway.
      • After fixing compile errors there was a weird bug that might've been part of the JITer or the way Mono executed the code. I can't remember what it is now, but I worked around it.
      • And... it worked!! Code written using a beta IDE on a beta framework works with Mono with only minor problems. I was pleasantly surprised.

      I have yet to test Mono with .NET 1.1 code, mainly because I don't have anything interesting since moving to 2.0 beta. But given what I've seen with its implementation of a beta framework, I have a feeling 1.1 is well-implemented. Maybe other areas such as Winforms are poorly implemented at the moment--I don't know--but they've made excellent progress already.

      As for Mono versus C++, this is basically a .NET versus C++ question, which has led to large flame wars everywhere I've seen it asked. My personal opinion? Well, C++ was the first language I learned, and I had been using it for 6-7 years before I gave C# a try. I've been using C# ever since, around 2-3 years. Maybe if you're doing something that requires crazy amounts of performance C++ would be a better fit, but I don't do that, and the simplicity gained through C# and the .NET libraries far exceeds any performance penalties I experience (which aren't even large in the first place for the work I do).

      Mono versus .NET C#: Of course Mono is behind since Microsoft is driving the development of C# 2.0. But from what I see, it seems Mono is mainly behind in the implementation of the .NET libraries. All of the C# 2.0 language features I used worked fine.

      C# 2.0, .NET 2.0, and Visual Studio 2005 will likely be released later this year. Mono has reached impressive levels of compatibility already with C# 2.0, and compatibility with .NET 2.0 classes seems to be coming along fine. I'll definitely be keeping my eyes peeled for future releases.

    13. Re:Anyone Have Actual Experience With Mono? by 0xABADC0DA · · Score: 3, Insightful

      Except that Java sans GUI did work flawlessly 9 years ago, and today Java is at least twice as fast as mono and it always will be faster since CLR "assemblies" prevent the most effective dynamic optimizations.

    14. Re:Anyone Have Actual Experience With Mono? by TheBracket · · Score: 3, Informative
      My object-relational mapping library (Persist, shameless plug!) runs smoothly on both Mono and Windows, with the exception of ODBC databases - Mono's ODBC stack doesn't support certain data types yet. It is actually faster under Mono than under Windows in some circumstances, and about the same speed normally. I've also created the middleware of a 3-tier mental healthcare billing system on Mono, and it handles remoting (with Windows-based clients, as well as cross-platform GTK# clients) pretty much perfectly. Implementing encrypting remoting sinks under Mono was a real pain, but is getting easier as the remoting code improves. Other than that, the only hassles have been to ensure that I ask the OS for paths, directory separator characters, and am careful about case sensitivity in filenames.

      Mono really is a godsend in this respect. I have a lot of C# experience, as do the programmers with whom I work - it is a very productive language for medium to large middleware projects. Some of our larger projects require that we lease both the hardware and software stack to our clients, most of whom are non-profits who don't have huge amounts of cash on hand. Windows licensing for a small server could seriously eat into any profit margin when dealing with 50 remote offices (with about 20 users each), without a dedicated net connection (so a web-based app won't help). Mono lets us install a small Debian-based server at each small location, reducing licensing costs to zero - but not requiring that we abandon our existing codebase/installed base by switching to Java. All told, savings can easily run into the tens-of-thousands per larger client, per year.

      --
      Lead developer, http://wisptools.net
    15. Re:Anyone Have Actual Experience With Mono? by kc8kgu · · Score: 5, Insightful

      I don't normally feed the trolls, but I'll make an exception in your case. I'm tired of hearing how great Java is especially compared to C#. I honestly don't know which is faster - I haven't tested them myself. But, I would guess that java, being much older then C#, has had time to do a good bit of optimization and may very well be as much as 20% to 30% faster.

      But who cares?

      If you need balls to the wall performance, you use C, C++ or assembly - plain and simple. It's not about performance. If it were, no one would have ever heard of Perl, Python, PHP, or Ruby. You don't need blistering speed for 99% of the apps you use in a day. And computer time is a thousand times cheaper then developer time. So unless you're writing an OS or crunching numbers speed is usually a secondary concern.

      IMHO Java's only useful feature is that it has the best platform portability in computing history (although it isn't perfect). Java apps run about as well on OS X as on Linux as on Windows as on Solaris on their various hardware. That is a wonderful thing. However, Java GUIs pretty much suck on every platform.

      As for C#, Ballmer had it right when he said Developers! Developers! Developers!. C# has a completely awesome IDE and a consistent and elegant language that hasn't been patched and tinkered with haphazardly a dozen times. And although I think C# is syntactically and semantically more elegant and consistent and well though out, those facts are irrelevant as well. VB didn't take the lion's share of professional software development because people loved the ascetics of the language. It was all about more easy it made a programmers job. You could do in a day in VB what would take you a week with C and the Win32 API and have fewer bugs to boot. How awesome is that. So now we have the wonderful rapid easy development environment of the VBs of yore mixed with the sugary love of consistent syntax and semantics that is the C# language.

      That's what Java didn't have and doesn't have, and probably never will

      DISCLAMER:
      My experience is mostly based on running things in windows. I have tried Eclipse and NetBeans as recently as a couple months ago. I'm a fan of Linux and open source and tinker with Debian at home. But, I am an independent software contractor and value my time and Visual Studio kicks ass.

      And remember kids, Linux is only free if your time has no value.

      Daniel Carter
      KC8KGU@hot?.com
      ?=mail

    16. Re:Anyone Have Actual Experience With Mono? by n0-0p · · Score: 2, Insightful

      Wait a second, one of the big pushes with the .NET CLR was to make assemblies that could be aggressively optimized. For example, the flatenned-tree structure of the CLR is for improved JIT efficiency. I'm no expert and honestly haven't benchmarked the two, but I question what you base your statement on. Please provide some evidence to support your point and clarify the issue.

    17. Re:Anyone Have Actual Experience With Mono? by Rolan · · Score: 2, Funny

      That is really pathetic. A whole week to solve one issue? Man, I wouldn't want to hire you! Doesn't matter if it was Windows or Linux!

      That's alright, I don't want to work for anyone who makes decisions and judgements without the relevant information, i.e. you.

      --
      - AMW
    18. Re:Anyone Have Actual Experience With Mono? by Tarwn · · Score: 2, Informative
      Wow. You must have low expectations. I cannot stand VS.NET. It has none of the refactoring and proper working code completetion tools that Eclipse and Netbeans has. I personally think its a horrid IDE.

      Wow. Says it all really. The fact that you cannot stand VS.Net probably in no way hampered your ability to find the options you like.
      I know of at least three refactoring add-ins for C#, one of which (at least) integrates itself directly into the IDE and menus. And thats 30 seconds with Google and not having a clear idea of what refactoring is.
      As far as code completion goes, I'm not sure what you thought was missing. Granted I stopped using IDE's for Java back in 2000, so I'm not sure of Eclipse (et al)'s capabilities. I'm fairly certain that automatically finishing what I am typing, automatically doing braces/etc, etc is probably the case though. Or maybe giving you the option to add event handlers (press tab to generate) or the functions the event handlers point to (press tab to generate) or setting up your namespace and class templates, as well as auto-completion (even in HTML view for ASP.Net)...I digress.

      As for the syntax of C#, when they get proper exception handling and stop allowing VB style code to enter in, I'll be happy.

      Define proper. As far as I can tell the only difference between try/catch/finally in Java and in C# is that classes that throw exceptions must(can? my Java is several versions out of date and rusty) be declared with "throws exception". cascading catches are supported, custom exception objects, no exception object at all for a "catch all", etc. But don't take my word for it, here is google to the rescue again.

      As far as the rest of your ill-formed sentance, I think your implying there is VB-syntax code in (or required by) C#. Please to be showing me an example.

      Disclaimer: My work desk has a windows and a linux box on it, I abhor ASP.Net, and learned/used Java before C# or VB.Net.
      --
      Whee signature.
    19. Re:Anyone Have Actual Experience With Mono? by Daytona955i · · Score: 5, Insightful

      Normally I don't feed the trolls either but....
      IMHO Java's only useful feature is that it has the best platform portability in computing history (although it isn't perfect). Java apps run about as well on OS X as on Linux as on Windows as on Solaris on their various hardware. That is a wonderful thing. However, Java GUIs pretty much suck on every platform.
      Yes, java apps run the same on all the platforms but to say their GUIs pretty much suck on every platform means that you are really misinformed or are basing your assumptions on things you've seen years ago. Take the bittorrent client Azureus... it looks just like any other windows program. The eclipse IDE, again looks just like a windows program. They are both written in Java. So if you think they look bad then you think that all programs on said windowing systems look bad.

      As for C#, Ballmer had it right when he said Developers! Developers! Developers!. C# has a completely awesome IDE and a consistent and elegant language that hasn't been patched and tinkered with haphazardly a dozen times. And although I think C# is syntactically and semantically more elegant and consistent and well though out, those facts are irrelevant as well. VB didn't take the lion's share of professional software development because people loved the ascetics of the language. It was all about more easy it made a programmers job. You could do in a day in VB what would take you a week with C and the Win32 API and have fewer bugs to boot. How awesome is that. So now we have the wonderful rapid easy development environment of the VBs of yore mixed with the sugary love of consistent syntax and semantics that is the C# language.
      Personally I love the JDeveloper IDE from Oracle. However eclipse is nice once you get it setup. Visual Studio is ok but it still doesn't make up for the fact that you're still having to write in C# or some other windows bastardization of a language.

      That's what Java didn't have and doesn't have, and probably never will
      Have what a dominace? I dunno, I like what google has done with java and most sites that use Oracle are now starting to use java as well because Oracle is starting to get behind it. .NET has what.... Microsoft? Ok so mono ports it to linux but you're still limiting yourself. Java runs on just about anything so if Microsoft and linux both go away tomorrow you don't have to throw away any of your code.

      DISCLAMER:
      My experience is mostly based on running things in windows. I have tried Eclipse and NetBeans as recently as a couple months ago. I'm a fan of Linux and open source and tinker with Debian at home. But, I am an independent software contractor and value my time and Visual Studio kicks ass.

      I value my time as well, that's why I prefer Linux. No more hunting through countless windows to find the right configuration tab... doh, windows moved it again. I can't remember where a config file in Linux is I can search for it. Can you search for a tab in a window? I work for a very small software company and we briefly considered .Net but it was only a brief thought. With Oracle and JDeveloper it took us very little time to get our stuff up and running. I've used Visial Studio and I really don't see what the big deal is. It's just another IDE that I would put on par with eclipse. However, I still prefer JDeveloper although I will eventually look at some of the plugins for eclipse and it may meet our needs as well. (JDeveloper is free and can be used with other DBs as well so it's not really an issue right now)

      Of course as you said, Who cares. I'm not going to convince you to use Java and you're certainly not going to convice me to use .NET so we'll just have to wait and see when Microsoft will decide to stop supporting it and force you to upgrade to .NET2006 and backwards compatibility will kindof work except for any networking features because all the network stuff has been rewritten. (Laugh... that was a joke)

    20. Re:Anyone Have Actual Experience With Mono? by 0xABADC0DA · · Score: 3, Informative

      The flattened tree is equivalent to the stack-based layout of Java opcodes (since the JVM knows the arity of each method call) so that's just "revisionist naming" practiced in C# and its libraries to not look like a pure rip of Java.

      Assemblies aggressively optimized means they are internally linked ahead of time like a normal DLL, so internal inlining uses static rules. Cross-assembly inlining is also more difficult. Basically .NET is faster loading but slower at runtime. Check the language shootout for instance.

    21. Re:Anyone Have Actual Experience With Mono? by Lije+Baley · · Score: 5, Funny

      >>VB didn't take the lion's share of professional software development because people loved the ascetics of the language.

      Yeah, I was once a VB ascetic. I spent a year wandering the desert, contemplating whether to use 1 or 0-based indexing. And when I returned with the Answer, there indeed was no love for me.

      --
      Strange things are afoot at the Circle-K.
    22. Re:Anyone Have Actual Experience With Mono? by AstroDrabb · · Score: 3, Informative
      Ok so mono ports it to Linux but you're still limiting yourself.
      I like and use both Java and C#. However, I have to tell you that your statement is wrong.

      Yes, the C# of the MS world is MS only which sucks. However, Mono has taken C# to Linux, Windows, Mac, Solaris, FreeBSD and more coming in the next version due this year. The architectures are x86, PowerPC, S390 and SPARC-based systems and the next version coming out is going to have more. There are two 64 bits ports: SPARC v9 with Solaris and the AMD64 port. When Mono 1.2 comes out this year, there won't be any reason for me to use Java really. I personally like C# better and the big thing I _hate_ about Java has always been Java exceptions. Exceptions in C# are much nicer and you are not forced to handle them.

      I have also noticed a huge advantage to Mono/.Net when it comes to memory footprint. When I run Java apps the memory usage gets high and the virtual memory usage gets really high. I love the Azureus program, however it always causes my MS Windows box to start hitting the swap file and MS Windows sucks at swap file usage compared to Linux so I am always forced to use Azureus under Linux. When I run C# apps, be it with Mono under Linux or MS .Net under MS Windows, the memory foot print is much smaller and swap is almost never used.

      The last two GUI apps I have written have been in C# and they have at least the same startup time if not faster than a similar Java program and the memory foot print doesn't even come close to being as high as a similar Java program would be.

      I don't want to sound as if I hate Java, because as I have said, I use both Java and C# and like them both. I have used some really nice Java apps that do things to keep the memory foot print down like IntelliJ IDEA. However, even with great programs like IntelliJ IDEA, the virtual memory still gets way up there due to the JVM.

      --
      If Tyranny and Oppression come to this land,
      it will be in the guise of fighting a foreign enemy. -James Madison
    23. Re:Anyone Have Actual Experience With Mono? by Anonymous Coward · · Score: 2, Insightful

      I'm a Java developer but I do agree with many of KC8KGU's opinions about performance. I'd use C/C++ or Assembly for the jobs that require them. I still use C for many things.

      Where .NET (and therefor Mono) fall flat in my opinion is in a long-term investment for a business. We know from Microsoft history that they will someday abandon .NET in favor of "the next big thing" and three years following that .NET will be erased from their product lines. This lesson is fresh on Visual Basic programmer's minds today.

      As far as KC8KGU's opinions about the IDE and C#, those are just opinions. I personally think that compared to the power of a bash shell Visual Studio blows. But if we were both on a development team I'd fight for KC8KGU's ability to use it for himself. Not every developer is best off using the same tools. C# to me doesn't represent an improvement compared to Java.

      Perhaps one root difference between our experiences is VB. To KC8KGU it was "the wonderfully rapid easy development environment." To me it was the "non-programmers made a giant mess that's impossible to work with and they want us to bail them out" environment and the "what do you mean it's downloading the entire table to change one row" environment. Somebody once called it Visual Beginners, which still makes me chuckle.

    24. Re:Anyone Have Actual Experience With Mono? by ClosedSource · · Score: 3, Insightful

      "IMHO Java's only useful feature is that it has the best platform portability in computing history"

      No. That would be C.

  2. It'll never work by geoffspear · · Score: 4, Funny

    Trying to tell people on Slashdot how to get Mono is kind of pointless. First you've got to talk to a girl.

    --
    Don't blame me; I'm never given mod points.
  3. Dubious Developers? by Anonymous Coward · · Score: 5, Insightful

    It seems rather unfair to call those developers who do not support Mono "dubious". Surely it would be better to say they are "sceptical".

    1. Re:Dubious Developers? by man_of_mr_e · · Score: 2, Insightful

      dubious ( P ) Pronunciation Key (db-s, dy-)
      adj.
      Fraught with uncertainty or doubt; undecided.
      Arousing doubt; doubtful: a dubious distinction.
      Of questionable character: dubious profits.

      You seem to be implying the third definition, while the author seems to be implying the second.

    2. Re:Dubious Developers? by hicksw · · Score: 2, Insightful

      Dubious refers to the object (Mono, C#, .NET).

      Sceptical refers to the programmer (Mono non-user).

  4. Bullet Points by GodLived · · Score: 5, Funny

    Interesting interview. I often find myself talking in bullet points, but the way Miguel adds boldface and sublevel indents while talking - now that is an achievement.

  5. One wonders by smittyoneeach · · Score: 2, Funny

    Will the register-based VM of Parrot trump the plethora of stack-based environments in circulation, e.g. Mono?
    Or, will MS port its Office suite to C#, relase Linux binaries, and enjoy a jolly chuckle?

    --
    Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
  6. A shackers guide to Mono by Anonymous Coward · · Score: 5, Funny

    The dreaded "kissing disease" mono is transferred through saliva from one living host to another. Mono may incubate, biding it's time, in the human host for up to a month before it starts exibiting symptoms. Once mono kicks in, expect swelling of the throat and lymphic nodes, headaches, and extreme fatigue.

    Victims of mono can be identified by the paling or discoloration of the skin, and will commonly walk with a shuffle and have half-opened eyes because of fatigue. Because of the swelling of the throat they may have difficulty talking, and will usually only talk in groaning sounding, short sentances. They will hunger, and they will hunger for something that they can manage to swallow, such as soft, succulent human brains. If you see anybody shuffling towards you, looking dead tired, moaning braaiiiiiiiins, it's best to stay away, or you too may be infected. You may become infected through exchanging saliva, or more commonly, having the sick exchange salive with your blood in an attempt for him or her to feed off of your brain-meats. Mono infected people only take half damage against physical attacks, and can only truly be killed by completely desroying the body through total physical damage or by burning. Recommended for parties of 4-5 players, levels 6-8.

    1. Re:A shackers guide to Mono by ArsonSmith · · Score: 3, Funny

      That sounds more like pink eye.

      --
      Paying taxes to buy civilization is like paying a hooker to buy love.
  7. The Secret of .NET by LegendOfLink · · Score: 4, Insightful

    I think Miguel is doing all of this because he feels that .NET will be the future of doing things. I remember a few years back all of those MS people having cosmic orgasms over .NET, even though nobody really knew what the hell is was.

    Maybe Miguel knows something we all don't?

    1. Re:The Secret of .NET by Nasher · · Score: 2, Insightful

      Well I can understand it if that's what he's thinking. I'm a c++er and a look at the job pages quickly has me thinking that .NET is gaining ground all the time. The dilema is that to move into that field moves me away from where I currently am, able to stradle several technologies and not just MS stuff.

    2. Re:The Secret of .NET by micromoog · · Score: 4, Informative
      The most important sentence in the interview is near the bottom:

      de Icaza: We are making Linux a fertile ground for third-party developers: we are allowing developers with Windows/.NET expertise to use and distribute software for Linux, easing the adoption of Linux.

    3. Re:The Secret of .NET by ultrabot · · Score: 2, Insightful

      Considering the amount of actual code Miguel has written in his lifetime, if he thinks the Mono technologies he's working on will make programming easier/better, I'd probably trust him on that.

      Of course it's going to be easier than C/C++, but that's mostly a strawman argument that everybody agrees on anyway.

      The real issue is whether the improvement is worth the price, and whether equivalent improvements could be achieved through other, less MSFT-dependent means. This needs to be hashed out by lawyers, not coders.

      --
      Save your wrists today - switch to Dvorak
    4. Re:The Secret of .NET by DrXym · · Score: 3, Informative
      Sadly that isn't as true as it might appear. While it's great that pure C# apps using common functionality will port, a hell of lot of real world apps won't.

      Real world .NET applications are peppered with PInvokes, COM interop, MSSQL / IIS extensions and various other crap which makes the run badly or not at all on Mono. Even the best will in the world won't change this.

      WINE might help a bit, but its too bad if you're on a non-x86 platform.

      Even Microsoft don't give a damn about portable .NET. Witness their new Enterprise Library which they're pushing on developers. It contains several dozen Win32 calls right there in this common library. Any enterprise app that relies on it will be infected as a result.

    5. Re:The Secret of .NET by The+Slashdolt · · Score: 4, Informative

      You're absolutely correct. In the end, .NET apps written on windows will not work on Linux. But .NET apps written on Linux will surely work on windows. How this gives people incentive to move towards linux(as opposed to away from it) I will never understand. I want to see MS write MS Office in .NET so that it runs on linux. You think they'll do that? Yeah Right!

      --
      mp3's are only for those with bad memories
    6. Re:The Secret of .NET by Screaming+Lunatic · · Score: 3, Informative
      I'm a c++er and a look at the job pages quickly has me thinking that .NET is gaining ground all the time. The dilema is that to move into that field moves me away from where I currently am, able to stradle several technologies and not just MS stuff.

      C++ is an ISO standard. And you do realize that C#, CLI, and C++/CLI are ECMA standards. And soon to be ISO standards.

      EDG is in the process of writing a front end for C++/CLI. The EDG parser is used by Intel, Borland, Comeau, and others. Although C#, CLI, C++/CLI were primarily created by MS, calling them MS technologies is inaccurate.

      (Note: .NET/CLR is MS's implementation of CLI. Mono is another implementation of the CLI. Think of it as analagous to JRE in the Java world. Which by the way is not standardized.)

  8. Re:CopyCats... by harlows_monkeys · · Score: 2, Informative
    This is what opensource is good at doing. Copycats! How about developing a new virtual machine architecture, a new visual interface from scratch?

    You mean like this?

  9. I don't see the point in using Mono by mwvdlee · · Score: 2, Insightful

    Just like I don't see the point in using .NET, why would I be using Mono instead?

    --
    Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
  10. Why the need to copy? by stuffisgood · · Score: 2, Insightful

    It's called portability... The .NET framework is, in my mind, an excellent idea, so why not copy the best bits while leaving out the bad. C# for example... C# is a much faster implementation of (basically) Java, removing the loadtime of the JVM which everyone on /. seems to hate so much! Couple this with the ability to use the right language for the job in all circumstances (for example "C# is overkill for this, lets use Perl instead) and I think that Mono a step in the right direction when it comes to ease of coding and portability.

  11. Useful? by DreadSpoon · · Score: 5, Insightful

    How would a new VM architecture be useful? What do you imagine it would be capable of that .NET is not? How much use would such an architecture get when it has no compatibility with anything else in the world? Why does Microsoft get slammed for creating a new proprietary technology and calling it 'innovating' while Open Source projects that reuse existing systems are slammed for not 'innovating'? How quickly do you think a VM as complete, efficient, and powerful as Mono's could have be written if they didn't have the Microsoft CLR to target during development (it was a year or two before Mono was self-hosting, yet during those initial years it was still developed at breakneck speeds) ?

  12. You want to speed mono acceptance? by Trigun · · Score: 3, Interesting

    First, release a C# compiler for linux. If you can get developers to user C# that compiles to native code so that it's not dependant on the CLR, then you can introduce the cross-platform aspects of it.

  13. Benefits of mono, and it's relationship to .net by Anonymous Coward · · Score: 2, Funny

    Mono is an Open Sores implementation of the .net Framework, that means that unlike the Closed Sores Implementation that microsoft has, you can spread Mono to anyone you kiss. The microsoft version, requires that you get it from a Microsoft authorised vendor, and well, who wants to kiss that guy eww!
    Now about the benefits, Since the open sores implementation is so infectious, you can get out of up to a month of social activities such as 'school' or 'work' to better work on your video game skills in your isolated room in your parents house.

  14. Hmm... by jav1231 · · Score: 2, Interesting

    I get the impression that while RMS would tell us to beware the Microsoft Whore, Miguel would ask us to suckle at her teats. The rest of us are somewhere in the middle.
    OT, I know.

  15. Re:CopyCats... by hey! · · Score: 5, Insightful
    Yep. And slashcode is just copying because it uses TCP/IP. It should have its own transmission protocol, called SCP, based on its own internetworking program, called SIP.


    The whole point of implementing a standard is to copy.

    --
    Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
  16. Mono is a good thing by CaymanIslandCarpedie · · Score: 4, Insightful

    I know that .NET has never been horribly well understood (even by .NET developers) because of the marketing mess MS came up with, but Mono is a VERY good thing.

    This is especially GREAT for those Linux lovers out there. Linux has MANY advantages over Windows, but for the most part this doesn't matter (sorry talking about desktops here not servers). Yes, lots of techies have jumped on board but that is pretty much a spec on the radar. For Linux (or any OS) to make real gains (especially in desktop) there needs to be HUGE 3-rd party software market for the OS. We need video editing, tax, accounting, etc, etc, etc. And this means broad developer support.

    This is where MS has always had a huge advantage. For good or bad, it has always been VERY easy to develop applications for Windows. In my opinion the .NET framework (a great technology) was perhaps one of the most dangerous weapons against Linux. Very powerful, and makes things VERY easy. So developers of Windows applications will move to .NET framework (where before .NET framework more and more Windows developers were looking at Java, etc) and BAM these developers (and their software) are again locked into Windows. So Windows will remain domainant since its so easy to get applications for.

    Enter MONO. Yes, it a copy of a MS technology and we all hate MS so we think its bad. ITS NOT!!!!! This is great! Those millions of Windows developers who move to .NET (wait for it) have also just learned what they need to develop for MONO (Linux). The millions of software titles which will be developed in .NET (wait for it), can now be fairly easily ported to Linux. So most of those products won't be F/OSS, big deal if it makes software companies jobs of porting their propietary software to Linux easier thats all we need! Once such software exists on Linux, may be I can suggest Linux to non-tech family and friends. Until then I know Windows is better for them as they cannot tell a line of code from a line of anceint san-script. They just want a huge variety of software to choose from.

    OK I've go on too long, but MONO is GREAT!!! It can only help the Linux (F/OSS) community even if it is a port of evil (MS) technology.

    This is where Mono comes in.

    --
    "reality has a well-known liberal bias" - Steven Colbert
    1. Re:Mono is a good thing by cdcarter · · Score: 2, Interesting

      Why not combine GNUstep and MONO. Allow for full compatibility in both MacOS X and Windows on their native copys?

      --
      "Love is like a trampoline, first it's like "SWEET!!" then it's like *BLAMM!*"
    2. Re:Mono is a good thing by argent · · Score: 2, Funny

      Why not combine GNUstep and MONO.

      It'd be even more fun than a Klingon-Esperanto dialect.

      I guess you haven't looked at GNUstep and .NET, how each is built, how they work, the languages and APIs they're built around.

    3. Re:Mono is a good thing by CaymanIslandCarpedie · · Score: 2, Insightful

      Completely agree, historically it was so easy because it let you to BAD and STUPID stuff. I never liked for those reasons (and others).

      However, the .NET framework really is pretty slick stuff (mostly ideas copied from JAVA). It isn't that bad anymore. Yes, there are still issues (but what doesn't have issues), but for the most part the changes they've made here really do fix a lot of their stupid past mistakes.

      If you want to attract good programmers who are used to coding to the API instead of having it propped up accomodate their bugs, upgrade GNUstep and track Cocoa and Mac OS X...

      Yes, having those would be great too! Problem is we always yell "come to us, our stuff is better, please come to us". We want to take over for Windows (or at least eat into its monopoly) and the BEST way to do that is take their developers (even if they are bad and stupid). Right now we have a great base! We just need TONS of more applications to make the platform more appealing to Joe Six-Pack. Guess who made a vast majority of the applications we want for Linux? Windows developers!!!!

      I'm not saying their as smart as you or code as well as you. Just saying winning them over would be a great step. You can never use MONO. Remain with C++, your applications will faster and thinner (better), but to build an audiance for your application we need more people using Linux in the first place. MONO could well, help for the above stated reasons.

      Give MONO a chance people!!!! Even if you never use it, please don't bad-mouth it!!! I could be one of the biggest weapons Linux has to grow its user base!!!!

      --
      "reality has a well-known liberal bias" - Steven Colbert
    4. Re:Mono is a good thing by argent · · Score: 2, Insightful

      5. Microsoft controls .NET. If they see Mono actually cutting into their pie, they'll change .NET faster than Mono can keep up. This has been their policy for over 20 years now, it's not going to change.

    5. Re:Mono is a good thing by The+Slashdolt · · Score: 2, Insightful

      MS would NEVER let this happen. Have you ever heard of J++? Once .NET grabs hold MS would extend it in such a way as to make apps written in C# incompatible with their non-ms bretheren. Exactly what they did with J++. The difference here is that Sun owned Java and sued MS for extending Java without their permission. In this case will Mono sue MS for extending C#? MS owns it! In your theory MS's killer application MS Office will be rewritten in .NET and run on Linux. Do you honestly think MS would allow this?

      Additionally, you make it sound like it would bring more developers to linux. The opposite would actually be true. If all apps run on windows and linux, what is the incentive to switch to linux for the average user? Linux needs a killer application that can't run on windows in order to give people the incentive to switch.

      --
      mp3's are only for those with bad memories
    6. Re:Mono is a good thing by Rolan · · Score: 2, Interesting

      MS would NEVER let this happen. Have you ever heard of J++? Once .NET grabs hold MS would extend it in such a way as to make apps written in C# incompatible with their non-ms bretheren. Exactly what they did with J++. The difference here is that Sun owned Java and sued MS for extending Java without their permission. In this case will Mono sue MS for extending C#? MS owns it!

      FUD. MS owns an implementation of the C# standard. They do not own C#.

      --
      - AMW
  17. I have tried Gtk# by r6144 · · Score: 5, Informative
    I ported a Doom map viewer I wrote in C/GTK/Glade to Mono/Gtk#. It was about 20k bytes of C code. Converting it to C# took little effort, though being almost my first C# program I had some difficulty deciding between structs and classes for data structures (C# classes have significant overhead when there is only a few members, and C# structs doesn't seem to be as flexible as C structs). The resulting C# code was a little less verbose (about 20% fewer bytes) than glib-style C code, since I no longer need to call g_free()'s, and callbacks are more concise in C#. It worked perfectly under Mono.

    My only gripe was the lack of a decent debugger (monodbg hardly worked then), but it was quite a while ago, and I hope someone would post their experience with a newer version of the debugger.

    1. Re:I have tried Gtk# by tidewaterblues · · Score: 3, Interesting

      IMHO the true benefit of Mono is not in its intrinsic value as a langauge (althought I think that, in general, C# was very well thought out--the Framework was less well thought out, but still pretty good), but in its value (eventually) as a tool for cross platform development.

      You can write an application using GTK# and have it run on Windows, OS X, Linux, Solaris, etc. Its the Java promise all over again, but reworked to run better. For this reason alone I am considering doing a non-trivial desktop database application for a publisher in Mono, since they have many platforms, and I think the overall effort of using this system will be easier that trying to pull a Mozilla on my budget.

      --


      ...En að Besta Sem Guð Hefur Skapað Er Nýr Dagur
    2. Re:I have tried Gtk# by Dr.+Sp0ng · · Score: 2, Insightful

      C# classes have significant overhead when there is only a few members, and C# structs doesn't seem to be as flexible as C structs

      Eh? Where are you getting this?

      The major difference between the two is that classes are reference objects while structs are value objects. Other than that there are limitations in terms of inheritance with structs and things of that nature, but your statement that C# classes with few members have a lot of overhead is simply false.

  18. why? by mattyrobinson69 · · Score: 3, Interesting

    As mono is only a reimplementation of .NET and the actual implementation can differ, why not compile the source into native executables rather than bytecode? Surely it would be faster that way.

    1. Re:why? by mwood · · Score: 2, Funny

      They won't "dump" it. MS hardly ever throws anything away. They'll just smear on another layer of frosting.

      Inside every DVD-ROM of bloatware there is an 11kB program screaming to get out.

    2. Re:why? by man_of_mr_e · · Score: 4, Informative

      Lol. I love these kinds of conspiracy theories. They completely ignore the facts.

      Microsoft is now wedded to .NET, whether it wants to or not. Longhorn's userland is now largely .NET based (WinFX) making .NET apps first class citizens of the OS. Core Longhorn technlogies such as Avalon and Indigo are written in .NET.

      MS isn't dumping .NET anytime soon.

    3. Re:why? by caseih · · Score: 4, Insightful

      Hmm, you mean like how gcj produces native java executables that are faster than running bytecode in the JVM? Oh wait. No it's slower. One of the main facets of .NET and Mono, though, is the ability to precompile the binaries to speed up loading (but not running). The thing about running code in the JVM and the CLR is that programs slowly get faster and faster as the jitter tweaks the optimizations and caches them.

      Therefore I don't see any real point to producing native executables. Heck you don't even see to many people clamoring for a perl native compiler or a python native compiler. Although they exist most people simply don't need them. The future is in languages like Python, Perl, C#, Java. Bytecode compiled or even straight interpreted languages are really coming of age. The bare underlying hardware is becoming less and less relevant.

    4. Re:why? by sjasja · · Score: 2, Informative
      in C++, the compiler will inline member functions [...] The above is not possible with run-time optimization, because the VM can not have a graph of the whole program.

      and

      the compiler can assert that the underlying object is always of a certain class. This can not be done with bytecode languages

      In fact, you have this exactly backwards.

      These types of optimizations are exactly the ones that can be done, and are done, in Java.

      The Hotspot Java compiler does not "assert that the underlying object is of a certain class". It can actually notice that, hey, this object seems to be of class X at least so far. So maybe it is always of that class. So Hotspot compiles a method that makes that assumption.

      Here is the neat trick: if Hotspot's assumption turns out to be wrong, it discards the earlier compilation and recompiles with a looser assumption.

      This is done today. It is called dynamic deoptimization. It means that "virtual" function calls can be compiled as direct jumps, and even inlined. If it turns out later that the call really needs to be virtual -> automatic recompilation on the fly and you are good to go again.

    5. Re:why? by master_p · · Score: 2, Informative

      You're right. But there is a trick that the Hotspot optimizer can't do, and that is to recognize the locality of an object, even if it has virtual methods. What the Hotspot actually does is to look up the inheritance tree of a newly loaded class; if the new class overrides methods of another class, and then super class' inline methods are de-inlined and the call becomes virtual. But the Hotspot VM can't tell whether an object is actually virtual or not, because it does not look at the program's graph, but at the class inheritance graph! the whole-optimization technique is able to do that, because it can actually understand that a class is never used in some places, and therefore it can inline some virtual calls. The whole-optimization technique can even inline whole algorithms, even when composed of multiple virtual function calls: it has been shown that it can improve the performance of an app by even a 70%.

      Furthermore, the Hotspot optimizer imposes a performance hit. All this monitoring that takes place takes computing cycles off the application. On the other hand, a C++ program is perfectly optimized by the compiler, and it runs without any VM overhead.

      I am not saying that bytecode sucks...on the contrary, it's very useful, since the same binary runs on any architecture. It's really important in a business application enviroment. But the argument that Hotspot optimization produces equal or faster code than pre-compiled code is false.

      Considering all, Java is slower than C++ for the following reasons:

      1) Java does not have stack-based objects. That imposes a performance hit, because the program's heap is literred with many small objects, that will be disposed of at the next collection of generation 0, but will not let those memory pages be swapped out to disk. A C++ program that uses many stack objects is way faster than the comparable Java program, because it makes much better resource management.

      2) The nature of the Java language, with everything being derived from class Object, makes every cast dynamic. The Hotspot compiler pauses the program and replaces the dynamic cast with a check if the class is the correct one and no dynamic cast. But the dynamic cast replacement with static cast is done by the C++ compiler during the compilation phase, and the executable runs without any Hotspot overhead. In reality, there are very few points in a Java program where the dynamic cast can be resolved and remain static. Take collections, for example: they can be used in thousands of places in a program. For every collection, there are thousands of places in code that the same casts are de-optimized again and again, in order to fulfill the assumption that the cast may be static. On the other hand, C++ generates different code for each template function, and is able to optimize the code better since primitives can be used in collections. A real example of this is the map class: in C++, key searches in maps (which is an operation that happens at every insertion, removal and search) with integers are hardware-based, with the integer kept in a register, whereas in Java it is an object, which is cast to 'Integer', then the value is obtained by a a virtual call (which may be inlined), then used as an integer value. And the map search loop can be easily be unrolled by the C++ compiler.

      Again, I am not saying that Java is useless. Personally, I don't mind my application to be a little slower, while I get a huge increase in productivity. But at the same time, we can not let false conclusions circulating around. Hotspot is nice, but all the pioneering work for compilers is done on the C++ front, and C++ is the leader in performance. It's obvious even to the most naive user that Java apps are slower. It is no accident that no major performance-intensive business application like a Word Processor is written in Java (actually Sun tried it, but it was very slow and unusable).

  19. I don't "get" Mono either. by Markus+Registrada · · Score: 3, Insightful

    C#, like Java, was designed to solve problems we don't have in the Free Software world. The compromises that are designed into the language make it, like Java, inherently less useful for Free Software than languages designed purely for performance and expressiveness. The haste with which it, like Java, was cobbled up make it poorly suited to describing what we want done with our machines. We don't need to "write once, run hardly anywhere"; we already build and run wherever we like.

    I don't have a Java VM on my hosts, and I don't see any reason to saddle them with a Mono VM, or VMs, either. The only Java program I have found a need or desire to run (pdftk, a PDF toolkit) runs (as well as any Java program can) as a native binary compiled with Gcj. A C# front-end to Gcc might have some value for compiling programs so unwisely written in that language, but a bytecode interpreter seems just silly.

    We already have a powerful, mature, and efficient language, proven effective for myriad successful Free Software projects. It's called C++. It integrates so well with Free Software systems that nobody even needs to know that they are running a C++ program. Murray Cummings has stepped up and produced well-packaged C++ library bindings for all of GTK and Gnome components, so it is easy to use for writing Gnome applications.

    Miguel's unhappy experience with Microsoft's buggy pre-standard compiler (mislabeled "C++") has unfortunately led him astray. We need not be similarly misled.

    1. Re:I don't "get" Mono either. by tc · · Score: 4, Informative

      Programmer productivity is higher in garbage-collected (MS calles them "managed") environments such as Java and .Net/C#.

      In addition, it's much harder to make programming blunders such as overstepping the bounds of an array or string, which can in turn lead to security vulnerabilities.

      Those two reasons alone are enough to favour a Java/C#-type approach in situations where absolutely bleeding-edge performance isn't a requirement (i.e. almost all of them).

    2. Re:I don't "get" Mono either. by brpr · · Score: 3, Insightful

      C#, like Java, was designed to solve problems we don't have in the Free Software world. The compromises that are designed into the language make it, like Java, inherently less useful for Free Software than languages designed purely for performance and expressiveness.

      Even by the standards of the times C was just a straightforward block-structured procedural language. Compared to predecessors such as Lisp or even Algol it's not especially expressive. (I'm not bashing C here, I quite like it. But I wouldn't say it was particularly expressive, and it wasn't obviously designed to be so.)

      We already have a powerful, mature, and efficient language, proven effective for myriad successful Free Software projects. It's called C++.

      OK, efficient is reasonable, powerful is debatable, but mature?? It's only very recently that gcc has come close to supporting the C++ standard properly (and the same goes for the MS compiler, of course). C++ compilers in general have a history of being buggy and incomplete, going right back to the pre-standard cfront from AT&T.

      Miguel's unhappy experience with Microsoft's buggy pre-standard compiler (mislabeled "C++") has unfortunately led him astray. We need not be similarly misled.

      Two years ago, was g++ in a much better situation? You'll note that virtually no current compiler supports the extern keyword for templates, so C++ programmars still have to use a crippled language to get cross-compiler compatibility (if you're using a lot of templates, you pretty much lose the ability to compile modules separately).

      --
      Freedom is not increased by mere diminuation of government. Anarchy is freedom for the strong and slavery for the weak.
    3. Re:I don't "get" Mono either. by LDoggg_ · · Score: 2, Informative

      Fine we'll all switch completely to C++.
      Just add a garbage collector, remove multiple inheritence, and eliminate the need for header files.

      Oh wait, now you have java and C#

      Don't just assume that because you like C++ for everything, that everyone else does.
      Some things are just easier to do in java or C#.
      There are plenty of cases when the bottleneck in your application is something like I/O or bandwith or SQL running time. In cases like these, often the benefit of a super fast GUI doesn't outweigh the rapid development of using something slightly higher level.

      C and C++ definetly have their place, but so do java and maybe even C#
      Just pick the right tool for the job.

      --

      "If they have both, tell them we use Linux. And if they have that, tell them the computers are down." -Dave Chapelle
    4. Re:I don't "get" Mono either. by Jugalator · · Score: 2, Insightful

      I don't "get" Mono either

      It's all about offering an API to develop for Linux while only requiring basic Windows development skills using .NET.

      C++ + GTK + other Linux specific libraries can often turn out to be scary for a Windows developer, making him/her stick with Windows and thinking "others" can "later" do the porting job if necessary. With Mono, a developer can go -- "hmm, I wonder if this will work on Linux now, being developed in .NET?" and maybe suddenly it will, or with only minor modifications. The result can actually be an application being released for both Windows and Linux, instead of just for Windows and a Linux port delayed indefinitely.

      Yes, we have Java for this too, but Java isn't all that hot for a major part of Windows developers. A large part enough to warrant Mono, I think. Java isn't a hugely successful language for many Windows developers; but I can sure say Visual Studio and its accompanying software is. We'll probably have more developers moving, or already having moved, from Visual Studio 6 to Visual Studio .NET than Windows developers programming in Java.

      --
      Beware: In C++, your friends can see your privates!
    5. Re:I don't "get" Mono either. by man_of_mr_e · · Score: 3, Informative

      A C# front-end to Gcc might have some value for compiling programs so unwisely written in that language, but a bytecode interpreter seems just silly.

      You seem to have a fundamental misunderstanding of .NET and Mono. While it's true that the first version of mono was interpreted, no version of MS's .NET ever has been and the most recent version of Mono does not interpret either. It uses JIT compilers to compile code at runtime as it's accessed.

      This is actually a nice situation in some ways, since the JIT compiler knows more about the machine's runtime situation than a static compiler can.

      For example, it can compile to 64 bit on 64 bit machines with zero changes in the source bytecode. It can also adapt to runtime situations (such as low memory conditions) more easily.

      Of course this has the penalty of a slightly less responsive application the first time the code executes, but that's a small price to pay.

    6. Re:I don't "get" Mono either. by The+Bungi · · Score: 2, Insightful
      Ah, elitist hubris.

      problems we don't have in the Free Software world

      That's why you have 1% of the market and 1 million developers, instead of 90% of the market and 10 million developers.

      If someone in your "world" would have bothered to code a Visual Basic clone, a good enough IDE/glue language for OO.org that actually worked and a RDBMS with basic features like triggers, relational integrity and stored procedures back in 2000 the world would be very different today. But alas, you don't have these "problems".

      BTW, you're also insulting a few hundred thousand Python, Perl and Ruby developers. Way to go.

    7. Re:I don't "get" Mono either. by halosfan · · Score: 3, Insightful

      Programmer productivity is higher in garbage-collected (MS calles them "managed") environments such as Java and .Net/C#.

      Nothing prevents C++ from being used with a garbage collector as well as with any of a number of other memory-management models. (Really, between STL and shared_ptr, memory management is a non-issue in the vast majority of properly written programs, without the overhead and non-deterministic destruction of a garbage collector.)

      And, by any chance, have you heard of products that detect memory leaks in Java programs?

      Another thing you may want to consider is this: memory is not the only resource your program needs to properly dispose of. There are things like file descriptors, database connections, network connections, threads, mutexes and so on. With C++ deterministic destruction, these can be handled correctly and automatically. Try this with Java, in the presense of exceptions, and see where you are more productive.

      --
      My only problem with Microsoft is the severity of bugs in their software.
  20. I want fewer dependancies by gr8_phk · · Score: 2, Insightful
    I just want my linux system to have fewer libraries, languages, and other dependancies. These would best be written in C or C++ for speed (common libraries, not necessarily apps). We don't need no stinkin' new languages - especially interpreted - to add to the bloat. Languages are like assholes - everybodys got one and thinks it's *the shit*. Now why should anyone jump on yet another bandwagon? Add to that even the most remote possibility that MS will try to stir the pot as a result and ask again. Why couldn't we just build nice libraries for C,C++,Python,(Java?) that are already popular instead of cloning MS and asking everyone to switch? We just saw a lot of ranting about how slow and bloated gnome is getting, so why is it imperative that everyone jump into a new language? I know why HE likes it, it's his job. But please stop bothering me about it.

    No, I'm not flaming - even Paul Grapham doesn't push Lisp as much as this mono geek. Get over it man, we don't all HAVE to use mono.

    1. Re:I want fewer dependancies by Lysol · · Score: 4, Interesting

      Serious!

      I make my filthy living doing enterprise Java apps. I love my Linux servers and my Powerbook. But I don't go around preaching the gospel of Java to the unconverted. And that's exactly the point: Linux already has two useful and proven languages for desktop apps - C/C++. Make those better!

      I almost feel like Miguel has been living in the corporate world a little too long, thus, like you said, his preaching of something else - a typical thing in the real world is not to fix it, but to re-do it in some other language. I see this stuff all the time and just roll my eyes. Then I spend ridiculous hours helping various teams meet their goal.

      This is actually classic if you think about it. At first, KDE, namely Qt, was not open source. So instead of trying to fix it they made an entirely new desktop system. Of course, Qt later dropped those restrictions and now Gnome is the fat dog that can't get off the porch. So the mantra is if it doesn't go our way, we'll re-do it, but make it worse! Deja vu anyone?

      Linux does not need sloppy developers porting all their crap from Windows. I mean, I think of all the junk out there on download.com.com.com.com and try to visualize that on my Mac (fortunately that's not possible) and a chill runs up my spine.
      If you want to program a Linux app, learn C - it's not that hard and it can actually be, dare I say, fun! If you find something you don't like or you see is broken, submit the changes/fixes back to the community. Yay, you're an open source developer now!
      C aside, sure, people will use Python, Perl, Ruby, nothing wrong with that. But these are languages with a Unix history, not a VB one. So I think the whole premise of wooing developers from a flawed platform design - ergo flawed programming logic - over to something that has much more academic exposure and a very rich history (I'm talking Unix here), is a disaster waiting to happen.

      When I first started being interested in programming desktop Linux I didn't go look for Java bindings (altho, I did look for a JDK for server stuff), I used what was out there; in other words, I didn't try to re-invent the wheel! That said, yeah, sure, the C/C++ libs aren't perfect nor are they the holy grail of software development. I dunno, it just strikes me as odd, like some alien invader trying to convince me feverishly to get on board his space ship but won't tell me why(if you can imagine that), that there is so much push for Mono. Does make sense, I suppose from a corporate control point of view. Mono's roots are in the devil and that's enough for me. Yeah, sure, Sun owns Java, but Sun's also a Unix (yes, somehow that DOES make it milimeter better, esp compared to M$!) company and I have a little more faith in their corporate sesspool than Microsoft's. Altho, Schwartz is kinda dorky.

      Anyway, the last line of the above post says it all; anyone invoking the name of Mr. Graham in a way that's pure and simple has the last word in my book.

    2. Re:I want fewer dependancies by ultrabot · · Score: 3, Insightful

      Linux already has two useful and proven languages for desktop apps - C/C++. Make those better!

      I'm afraid that is not feasible, because C++ and (especially) C are not optimal for application development by design. Application code does not need to be implemented at the low level of C++ (on PCs at least), so the low level features are just a burden.

      If you want to program a Linux app, learn C - it's not that hard and it can actually be, dare I say, fun!

      Believe me, spending 4 hours on a task you could accomplish w/ 5 minutes of Python coding gets old real fast.

      Mono's roots are in the devil and that's enough for me.

      But as they say, devil's always had the best tunes ;-).

      BTW, it's funny to note that I've only seen Mono promoted by Miguel&gang, and Eugenia of OSNews. Surely the technology should have more friends if it's so groktastic...

      --
      Save your wrists today - switch to Dvorak
  21. Regardless of Religion by PepeGSay · · Score: 5, Insightful

    C# and the .NET Framework *are* powerful and *do* provide things nothing else does in quite the same way. This guy shouldn't be trying to explain it to us so we can "get" the Mono project. He should be asking "How come you guys are so hung up on your religion that you question this so much?"

  22. aha! LISP! by SparafucileMan · · Score: 2, Insightful

    So if I understand tfa, the main benefit of using .Net is because it has automatic memory management? Because it cuts down on developer time, bugs, etc?

    I mean, big fucking deal. I'd rather not use another development platform that's just a wanna-be LISP dialect with a bunch of new libraries to learn.

    For god's sakes, can everyone just please get over their small-dick big-dick contest and use a LISP dialect? It's only been around for 50 years... with automatic memory management, the whole deal. You'll write code 10x faster than if you used C++....

  23. Mono takes away resources from delopment by acomj · · Score: 4, Insightful

    I have to say, while C# is an ok language I just don't see the point of having mono without .net. Its going to drive developers to window (where the best tools /standard implimentation is).

    The Open Source Community has no lack of projects for developers (gcc/vi/emacs/apache foundation).

    Linux clearly needs better developemnt tools and more developers working on these unglamorous development tools. Projects like eclipse give me hope the first class development tools are comming to opensource. I fear C# even with Novell's $, is never going to be up to snuff with the ms version, always chasing, not living up to the write once run anywhere hope.

    And with so many projects in need of help (gjc/ parrot(perl6)/gnustep) do we need more?

    This reminds me of the disaster that is the dual GTK/KDE (QT) desktop libraries thats really put linux destop development in a crappy place. People really do want to cut and paste across applications, and not worry about 2 or more sets of windowing libraries. I know you can run a GTK app on KDE, but it doesn't seem to make for an easy end user experience. Its not bad to have multiple items, but at some point a winner should be clear, and everyone should move on (not linger like the dvd+/dvd- standard where the solution is to have dual format drives.)

    Having seen some of the new Apple API's development stuff, I was blown away but what a company with a vision can do to leverage open source for development.

    1. Re:Mono takes away resources from delopment by Gruneun · · Score: 2, Insightful

      I just don't see the point of having mono without .net. Its going to drive developers to window

      Let's assume that 10% of Windows/.NET developers decide to switch to Linux/Mono and 10% of Linux/Mono developers switch to Windows/.NET. Who do you think comes out ahead?

      In the end, if means that developers will be able to port their Windows apps to Linux easier, it can only be a good thing.

  24. "Compiler" -vs- Libraries by mosel-saar-ruwer · · Score: 4, Insightful

    First, release a C# compiler for linux. If you can get developers to user C# that compiles to native code so that it's not dependant on the CLR, then you can introduce the cross-platform aspects of it.

    While I agree that it would be nice to do away with the overhead consumed by the virtual machine, I was always under the impression that [with maybe a few exceptions*] the creation of a compiler for a language is relatively trivial.

    The thing that makes these virtual machine languages so powerful [and the thing that makes them so appealing to the marketplace] is not that nonsense about "compile once, run anywhere" [which, as I understand it, has largely proved to be a fraud], but rather the feature-richness of their libraries: So much stuff has been written into the libraries that the application programmer's job devolves into not much more than providing a little glue to hold together the specific library calls that his project needs [i.e. it's foolish to reinvent the kitchen sink if it's already been invented for you].

    *One instance where I've heard that the compiler end of the thing is rather impressive is javac's handling of multithreading logic.

    1. Re:"Compiler" -vs- Libraries by mosel-saar-ruwer · · Score: 2, Insightful

      But doesn't the CLR merely turn the byte-code into machine code? Maybe I'm oversimplifying things here, but I would assume that those could be compiled as well, the same way any #INCLUDE statement would do it. The benefit to this would be able to compile the same source using a mono compiler, and get the benefits of Mono, but where it isn't needed, just compile it to native lang. As long as things don't fork (big if here), we should be fine.

      I think you're talking about doing away with the virtual machines, and having syntactically similar languages that "compile" straight to machine language executables rather than to "byte code" virtual machine classes. There are several companies that offer commercial products that do something like that for Java, although I don't know whether anyone has done it yet for C#.

      My point, though, was that while it's relatively trivial to create the compiler to do this, the compiler, in and of itself, doesn't get you much: It's the feature-rich library [not the "compile once, run anywhere" nonsense] that gives the virtual machine paradigm its power in the marketplace. Without the feature-rich libraries, you get maybe the ability to write simple command line "Hello World!" kinds of programs, but not much more.

      So it seems to me that you'd need to go to Sun and ask, "Hey, will you port all your feature-rich Java libraries to my Java-esque language that compiles to machine language executables?" Or to Microsoft, and ask "Hey, will you port all your feature-rich .NET libraries to my C#-esque language that compiles to machine language executables?"

      To which I imagine they'd respond: "Go fly a kite."

    2. Re:"Compiler" -vs- Libraries by Mr.+Slippery · · Score: 2, Informative
      So it seems to me that you'd need to go to Sun and ask, "Hey, will you port all your feature-rich Java libraries to my Java-esque language that compiles to machine language executables?"

      Don't ask them. Ask the GCC team.

      --
      Tom Swiss | the infamous tms | my blog
      You cannot wash away blood with blood
    3. Re:"Compiler" -vs- Libraries by williamhb · · Score: 2, Insightful

      Write-once-run-anywhere is actually rather attractive even with it being not quite true across GUIs and operating systems:

      If you distribute bytecode specialised to the OS / desktop environment, you have around 2 to 5 different versions to distribute (there are 2 to 5 operating systems most user applications would particularly want to support)

      If you distribute native binaries, then you have 2-5 OS / environments times 3 or more processors (possibly plus optional extensions.)

      If you distribute sourcecode, you're back at one version per OS, but users really don't like the idea of the thing needing to be compiled (which can be lengthy - eg OpenOffice.org)

      Distributing bytecode suddenly looks attractive. And you can theoretically get the gentoo-like advantages of it being optimised for your system.

      Brave prediction: Within 5 years, users will generally expect the VM to be "always available" in the OS, rather than needing to specially start up for an application - ie, bytecode will be a "native" (natural) langauge for the OS.

      Brave prediction 2: there's going to be a battle between Java and Mono for which one is going to be natural for Linux. (Mono looks like winning, but when it starts to get very popular, watch Sun change its tune and suddenly want to push a GPL'ed Java VM into Linux)

  25. Mono and GCC/gcj by norwoodites · · Score: 3, Interesting

    Well here is the problem of Mono from a GCC prospective:
    Why another back-end, yes GCC does not support JIT but you could have used LLVM for that.
    Another thing is Mono developers don't seem to listen to some of the GCC developers when it comes to algorithms, one example is their PRE implementation is based on much slower and not as good algorithm as the one which GCC uses GVN/PRE.

    From gcj prospective:
    (again) Why another back-end?
    Why another ABI, instead of hooking gcj and Mono together, there is another static ABI?

    1. Re:Mono and GCC/gcj by Jon+Pryor · · Score: 2, Informative
      Why another back-end, yes GCC does not support JIT but you could have used LLVM for that.

      The JIT isn't the issue. The intermediate language is, or rather was, the issue. When Mono was started, GCC used a register-based intermediate language. It is difficult to translate a register-based intermediate language to a stack-based intermediate language.

      Look at the GCC/Java backend, which skips the entire register-based intermediate layer; the GCC/Java project basically re-wrote the GCC back-end to avoid the register layer. Because of this, you couldn't compile any GCC-supported language to Java bytecode, such as C, C++, FORTRAN, Ada, because they all targeted the register IL instead of Java's stack-based IL.

      See also: Mono's Technical FAQ.

      Things are somewhat different as of GCC 4, due to the GIMPLE architecture which should support stack-based architectures such as Java bytecode and CIL. However, GCC 4 didn't exist when Mono was started (it doesn't exist now, except in beta form), so it obviously couldn't be used as part of Mono.

      Another thing is Mono developers don't seem to listen to some of the GCC developers when it comes to algorithms, one example is their PRE implementation is based on much slower and not as good algorithm as the one which GCC uses GVN/PRE.

      I can't speak to the truth of this, but I can say that I haven't seen any comments from GCC developers on the mono mailing lists regarding the SSAPRE algorithms. I can't think of any messages from a GCC developer on the mono lists, actually...

      From gcj prospective: (again) Why another back-end? Why another ABI, instead of hooking gcj and Mono together, there is another static ABI?

      Another backend was necessary because CIL and Java bytecode are different. Differences are outside the scope of this, but one difference is whether or not types are part of the opcodes -- compare Java's iadd, ladd, fadd, dadd to CIL's add opcode. Generics add a further difference -- compare Java's type erasure to the "baked-in" generics support of CIL.

      To support CIL at all, you need to support another backend, just to support the differences between Java bytecode and CIL. Alternatively, you can argue that CIL shouldn't be supported, which would tie .NET developers to Windows without any chance of migrating to another platform.

  26. Re:quote by Richard_at_work · · Score: 2, Interesting
    Why not read what Miguel has to say on the matter?

    Microsoft has granted RAND+Royalty Free licenses to any patents they might own that are required to implement the ECMA 334/335 standards. So at least our core VM, classes and compilers are safe from any litigation from *Microsoft*.
  27. I know how to get mono by stratjakt · · Score: 3, Interesting

    JUST TELL ME HOW I GET DOCUMENTATION FOR GTK# AND ALL THE OTHER BINDINGS!!!!!

    I'm serious, you have to wade through old C based documentation, then guess what the .NET wrapper "should" look like.. Bah.

    Oh, and monodevelop is still useless. Kudos for the effort, but I pretty much have to develop with #Develop under windows, then copy my exe to linux for testing.

    And whats with the libicu version it requires? An emerge -u world pretty much broke everything mono related on my gentoo box.

    --
    I don't need no instructions to know how to rock!!!!
    1. Re:I know how to get mono by miguel · · Score: 3, Informative

      Have you tried using Monodoc? We have documented most of the Gtk namespace, and most of the underlying libraries (Gdk, GObject).

      There are a couple of missing pieces like the Accessibility Toolkit (Atk) or Pango, but we are working towards finishing it.

      Miguel.

  28. Re:Another VM? by danheskett · · Score: 4, Insightful

    It's not just "another VM".

    It's the VM that right now thousands of software vendors are writing against.

    Virtually of MS's ISVs are writing against .NET now. That's a lot of applications, and especially, vertical market applications.

    As these next batch of applications gets out to the market and Mono continues to mature, you will see that a Linux desktop can be an excellent companion to a corporate or small business setting.

    My wife works in the medical field. The software vendor they support are porting their Windows app to .NET with a commitment to maintain only "100% managed code". What does this mean?

    It means that when released it will, very likely, run without any modification on Mono, and therefore Linux, and probably someday Mac OSX.

    That's huge.

  29. Asked Microsoft about this yet? by puppetluva · · Score: 3, Insightful

    Someone wake me up when:

    • Microsoft gives us permission to use the copywritten/trademarked parts of .Net not covered by the ECMA specs.
    • Microsoft gives us permission to use the copywritten/trademarked parts of .Net that are covered by the ECMA specs.
    • Microsoft assures us that they will not deviate from the ECMA specification for the platform like they did with ECMAscript (Javascript)
    • .Net offers anywhere near the same enterprise library support as Java and has the backing of a number of companies that aren't Microsoft
    I'm sorry to be a party-pooper, but these are still real issues. Ignoring them doesn't make them go away. You are talking about a technology that is legally locked up by a company that HATES the open-source community and phenomenon. Living under the thumb of someone that hates you is not something I would relish.
  30. It makes easier to migrate to Linux by vadim_t · · Score: 2, Interesting

    Or, at least that's what I intend to do it.

    Here I maintain some old apps written in VB6. Mainly interfaces to a SQL Server database and such. Microsoft is dropping support, so it seems logical to start thinking of something else to write stuff in, and .NET seems a fairly good choice.

    We have a very MS-centric environment here, but it doesn't seem that anybody particularly cares if it's Windows or not. Simply, stuff works with MS at the moment, and of course nobody is going to let me rewrite it all on Linux on company time without some very good reason.

    So, I'm thinking .NET looks like a good choice for future programs. The language looks pretty good, and if I properly separate UI and logic, it should be a lot easier to migrate stuff to Linux. Besides, by the time Microsoft drops support there will be mature and well tested alternative implementations out there.

    I'm not going to start making a switch to Linux right now, but my idea is that eventually somebody is going to ask me what to do when our VB6 stuff won't run on the newest Windows version, and I'll be able to answer "We can switch to Linux, and it will work without having to rewrite it".

  31. All this is irrelevant without the toolkits by IGnatius+T+Foobar · · Score: 4, Insightful

    I'm hearing all sorts of things here about how great Mono is, and how it's going to let all those new Windows apps run unmodified on Linux, as if it's the new WINE. Great, but how many Windows ISV's care about Linux? The ones I've met do not. And that means they're going to make use of every Windows-only API (sorry ... "assembly") that Microsoft throws at them.

    Welcome back to the moving target that's plagued WINE for more than a decade. Once they get Windows.Forms up and running, Microsoft will come up with some "must have" new API that the ISV's will start using. Maybe it'll be Avalon, who knows.

    Mono makes it possible to write cross-platform apps that don't need to be recompiled (linking to Qt# or GTK# for example) but don't count on Mono being the magic bullet that suddenly makes an entire generation of Windows software run on Linux. Microsoft isn't that stupid.

    --
    Tired of FB/Google censorship? Visit UNCENSORED!
  32. We are better than CopyCats by B0mbtruck · · Score: 2, Insightful

    ... because we make the "copy" better, more secure and add more features all while adhereing to open, published standards.

    Take http://www.spreadfirefox.com/, which is the Firefox webbrowser, for example. This piece of software is hardly new in the sense of being first of its kind, and yes it "copies" the same basic functionality that IE does (and IE copies from Mosaic - check out help->About Internet Explorer, it says clearly "Based on NCSA Mosaic."), but just because someone else invented the wheel doesn't mean we can't use it or make our own, or a better one.

    And don't get me started on innovation. As a matter of fact FOSS has already beaten the mighty M$ to a better desktop search (Beagel http://www.gnome.org/projects/beagle/ vs. WinFS - though I will admit I can't quite predict what WinFS will be like IF it ever gets released or if the 2 are even comparable).

    Oh, and we are creating new virtual machine architectures[VMA] (XEN http://www.xensource.com/ for example? Again, not sure if that is what you meant with VMA) and new visual interfaces (check out http://cairographics.org/introduction/ for Cairo, which may beat M$ again to the finish-line).

    And while M$ buys 90% of the time the technology or licenses it, FOSS actually does develop their stuf from scratch.

    Rehashing what's been done before and then claim we do not have freedom to do what we want to do. Interesting. I am not quite sure where these 2 opinions intersect to make sense. Please explain yourself further ...

    All in all I think you are way of mark, Microsoft-Fanboy!

  33. Doesn't instill a lot of patent confidence by jbwiv · · Score: 3, Insightful

    After reading the article, I was disappointed in how Miguel danced around the whole patent issue. This is one of the biggest issues surrounding using Mono for actual commercial development, but he really doesn't ease concerns by saying "no problems...yet".

    The Mono Project could convert a lot of folks by directly dealing with the patent issue and the fear that Microsoft will eventually lay the smack down. Tell me *why* my company can feel comfortable using Mono for commercial development...or I'll go elsewhere.

  34. People here STILL don't get it by zoomba · · Score: 4, Insightful

    I see all sorts of comments about "Why do I need that if I'm running Linux? I'll just write my code in C/C++ and compile natively!" Basically most of the people here lack the ability to step back and see this from a much wider perspective. Mono isn't so much here to help the existing Linux developers develop under Linux better, but to allow Windows developers and Windows software companies to (more) easily make the transition to Linux.

    Sure, you still have to rework parts of your .NET code when moving between platforms, but compared to the rewrites that are often necessary with other languages, the time investment is minimal. With Mono you can pretty quickly move your app from Windows, to Linux, to MacOS.

    Mono (to me) is more of an outreach project, a bridge like WINE or Cedega to the Windows world. It's a note saying "Hey guys, I know we haven't been on the best terms in the past, but we want to make it as easy as possible for you to come over and pay us a visit on the other side of the OS world. Bring your code with you too if you'd like, we're working on making that work too!"

  35. A simple solution by Qwavel · · Score: 4, Interesting


    There is a very simple solution to all this.

    Rather than Miguel having to repeat himself over and over in defense of Mono, why doesn't Novell just release the legal opinions they have on the important issues related to Mono?

    Instead of telling us not to worry, just give us the facts.

    I realize that this is a lot to ask of a company, but the FLOSS community is hard to satisfy. It wants to get the real info, not just the marketing.

    Novell doesn't need to release their whole Mono legal opinion. Just enough to answer the questions that concern OSS developers. For example, could the EMCA parts of Mono ever require a license other than the GPL? What is likely to happen with the Mono implementation of ASP.NET?

  36. Yeah. Is mono even legal? by r00t · · Score: 2, Interesting
    I sure have doubts over the patent issue. No, I take that back. I'm confident that mono has patent problems. There is nothing to doubt.

    Now, why would I want to rely on software that will get stopped in court? Why would I want to buy from a Linux vendor that might get shut down (bankrupted, etc.) via court action?

    1. Re:Yeah. Is mono even legal? by dash2 · · Score: 2, Insightful

      But as Miguel points out, pretty much all software, written in any language, has patent problems. That's just the kray-zee world we live in. If anything, GPLed projects may be safer, because IBM and Novell have threatened to use their patent arsenals in retalation against anyone trying to sue open source projects for patent infringement.

  37. Re:C# vs Python by ultrabot · · Score: 2, Insightful

    So why would one take one over the other?

    One reason to pick C# might be a desire to integrate the code in some .NET windows apps later on.

    If that is not a concern, just pick Python and go. It's going to be easier, and also the more "mainstream" alternative in the near future. You can learn C# later if you feel like it, but you will still be thankful that you learned Python. Unlike C#, it's good at scripting as well.

    --
    Save your wrists today - switch to Dvorak
  38. There's not much confidence to be had... by MenTaLguY · · Score: 2, Interesting

    Wake up.

    I hate to say it, but given the current software patent regime, that is the strongest guarantee ANY software project can give (Free or otherwise).

    Let's say you're writing a piece of software. Can you guarantee that you aren't violating any patents?

    Probably not -- you're almost assured that there are already patents in place, even for relatively trivial things; your safety from those depends wholly on either the patent-holder's ignorance or good graces.

    Oh, and by the way, don't go looking for yourself to make sure there aren't any patents covering what you want to do. Once you've read a patent you're liable for triple damages if a court later determines that you violated it. That you think you're safe (per your interpretation of the patent) doesn't matter; before the law only patent lawyers are deemed legally competent to make those evaluations.

    Yes, Virginia, things really are that bad.

    In Mono's case at least Novell had patent lawyers look at the situation before proceding.

    --

    DNA just wants to be free...
  39. Why not stick with Objective-C? by bonch · · Score: 4, Interesting

    Believe it or not, Objective-C and Cocoa still have advantages that C# has yet to catch up to.

    I still shake my head when I use the Visual Studio beta and create a form, and look at the code to see it instancing classes in an InitializeComponent() function. Anyone whose used Visual Studio before knows things can go haywire if you dare touch any of that code. You have to leave it alone or the editor gets pissy.

    In Cocoa, the .nib files are actual serialized object graphs, so there is no code-generation. At run-time, the objects are just loaded into memory automatically as though they were created in code. Which keeps my project clean and seperated from the GUI (that whole model-view-controller thing) and really makes prototyping a GUI easy. I just hit Cmd-R to test the GUI in Interface Builder.

    I also like the way method parameters are self-documenting in Objective-C. It's easier to understand a "[something doThis:parameter1 usingThis:parameter2 forThis:parameter3]" then it is a "something.doThis(parameter1, parameter2, parameter3)".

    Just my opinion, and I'm sure there are those who have valid reasons to use C#/.NET instead. But I used to be a C# guy too until I learned Cocoa. The flexible messaging system alone keeps me using it.

  40. Re:I, for one, must be missing the point ! by miguel · · Score: 3, Informative

    Seems fairly simple to intercept those calls and map them to managed code.

    We might evaluate interception on a case-by-case basis.

    Miguel.

  41. I tried to get Mono, I really did by melted · · Score: 2, Informative

    However, my policy is, if it won't install clear out of yum repository on Fedora Core 3 it's not ready for my use. I'm sorry, I work on my computer. I have better things to do than chasing down dependencies and installing RPMs from untrusted sources. In year 2005 I simply refuse to spend my time on this kind of shit.

    So, Miguel, how about putting together a god damn yum repository that contains all required dependencies so that the users of one of the most popular distros would be able to at least try your software, if not "get" it? I remember back in Ximian days the only thing you needed to install Gnome was ssh connection.

  42. Re:Mono on Windows? by jellomizer · · Score: 2, Informative

    Compatibilty checking.

    Develop Mono on windows there is a better change of having simular compatibility running on Linux vs. .NET on windows and seeing if it will run in Linux.

    --
    If something is so important that you feel the need to post it on the internet... It probably isn't that important.
  43. Not too smart by Julian+Morrison · · Score: 2, Insightful

    I assume that by "problem we don't have" you mean the idea of a single binary that runs everywhere, and your ideal solution is to build CPU-specific binaries from (open|free) source.

    Obviously you haven't given it enough thought.

    First off, there is no such thing as one source that compiles for every CPU. What you get is meta-source that preprocesses into various different programs, for each architecture and OS. All the different outputs need to be tested seperately. But it gets worse, since the assumptions underlying each OS are dissimilar enough that "cross platform" is really hard. Big, impressive projects like apache and postgresql have wrestled with cross platform - and won, but at no small cost in time and effort. It is not merely a matter of "configure; make all". Most CPU-compiled programs don't even make the effort, they are doomed to running only under posix (or windows, or mac, or whatever).

    Second, you lose the ability to migrate your programs unchanged with full functionality across eg: the upcoming 32bit => 64bit i386 CPU changeover. Or across totally different CPUs. This could well be very important if business depends on the predictable running of those programs. It's also pertinent from an open hardware perspective. Compiled binaries are vendor lock-in on the CPU. Even if you're willing to suck it up and assume a CPU, time is against you - CPU architectures predictably change. Likewise OSes.

    Third, you lose the ability to have code that actually exchanges runnables across platforms or with strangers on unknown machines. "Applets" could not have been done with compiled code.

    And of course fourth, you waste disk space, time and intellectual effort grubbing around compiling source code when all you likely want is binaries that work.