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

54 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 Anonymous Coward · · Score: 1, Insightful

      I've used MS C# (nice, no real difference from anything else) and I'd like to try Mono, but I want somebody else to tell me which ide to use. I mean, is vim still the answer or is there something comparable to Studio?

    3. Re:Anyone Have Actual Experience With Mono? by Anonymous Coward · · Score: 1, Insightful

      Sweet!
      Kinda like java's functionality 8 or 9 years ago.

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

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

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

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

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

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

  3. 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 MikeBabcock · · Score: 1, 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.

      --
      - Michael T. Babcock (Yes, I blog)
    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. 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?
  5. 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.

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

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

    3. 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
  9. 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 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.
    2. 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!
    3. Re:I don't "get" Mono either. by elmartinos · · Score: 1, Insightful

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

      Are you joking? With the same thinking, we all would still code Assembler. There are plenty of other mature, powerful, efficent, proven languages available that are often a much better choice than C++. For example Ruby, Python, Perl, Java, Ocaml Tcl, C, to name only a few of them. The right tool for the right job.

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

    5. 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.
  10. 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 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
  11. 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?"

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

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

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

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

  16. 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.
  17. 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!
  18. 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!

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

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

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

  23. Re:I, for one, must be missing the point ! by Anonymous Coward · · Score: 1, Insightful

    Except that C# programmers never (rarely) make those calls directly. They are buried under class libraries that abstract them out. Most of Windows.Forms is fairly abstracted out and developers don't have to ever touch a message loop. There is no GetMessage and WM_CLICK, just a Click event. It's trivial to expose the same functionality under Mono.

    You might as well say that Java is a fake language because of JNI, or because the JRE maps down to non-Java calls (and they all do.) You might as well say that c is a fake language because of stdcall support between Pascal and FORTRAN languages, or because c still compiles down to native bytecode. Pick a language; it's based on another language, built on another language and typically (if it is worth anything), interoperates with other languages.

    Way to FUD, though, assmonkey.

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

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

  26. Re:Nothing is Free by Anonymous Coward · · Score: 1, Insightful

    MS is evil. This is fact. They will crush any competitor using any possible tactic.

    Setting fire to kittens: evil.
    Gassing 6 million Jews: evil.
    Raping little girls: evil.
    Flying airliners into office buildings: evil.
    Employing standard competetive business practices: not evil.

    Please get a sense of proportion. When you say "MS is evil", I think "immature fanboy". Shut up until you have some evidence to support your wild claims.

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

  28. Re:I have tried Gtk# by Anonymous Coward · · Score: 1, Insightful

    Maybe you should check your ass.

    I made a clever.