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

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

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

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

  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?

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

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

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

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

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

  11. 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!
  12. 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!"

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