Slashdot Mirror


Mono and .NET - An Interview

all-of-the-dot writes "Would you use an open-source implementation of the .NET Framework? Ximian's Mono project enables you to build .NET apps that run on Linux and Unix as well as Windows. Check out the story from .NET Magazine's interview with Miguel de Icaza, Ximian cofounder and CTO" Added to which, AirLace writes "The Mono project has just achieved full self-hosting on Linux. While the C# compiler, itself written in C#, has been able to compile itself since March, Mono can now compile its own complete set of class libraries too. This announcement closely follows the release of the Phonic media player, the first .NET application for the GNOME desktop."

26 of 583 comments (clear)

  1. Who else is amused... by modulus · · Score: 5, Interesting

    That this "phonic" thing, built with the ultra-portable .net dealy, still only runs on linux (or at least nix-ish) machines with gtk?

    On a more serious note...

    Seriously. Where's the portability at? Will .net apps written for windows similarly only work with the "windows gui toolkit" (or whatever)?

    1. Re:Who else is amused... by calarts_nutmeg · · Score: 4, Insightful

      That's the biggest problem, .Net isn't as portable as java, also java is meant to be a great kitchen sink system, with everything from multimedia to raw socket connections. Also, if you don't like java, you can use python with jython to write java class files using a simple scripting language. Java is just so rich, the api has so many goodies to choose from, and the apps can be easily adapted from J2SE to the simpler J2ME CLDC, you still can only use C# to write desktop applications, and having it run clients on the handheld really isn't in the cards for c#, since all applications are supposed to run on MS servers. True I suppose things are getting ported to C#, but still, why go to all the effort to learn it when Java has such a huge head start, and Sun isn't try to kill linux either.

      --
      Check my site out for ogg vorbis music produced with linux.
    2. Re:Who else is amused... by samael · · Score: 4, Informative

      You can call non .NET programs from within .NET. If you decide to use a library that only exists in Windows (like DirectX) or in Linux (like that version of GTK) then of course it only works in that system.

      Once more of Mono is complete, you'll be able to do the whole of your program in it, including the libraries, and moving between Windows and Linux will be transparent.

  2. Yes, I definitively would! by Koyaanisqatsi · · Score: 5, Interesting

    The .Net framework is a very clean and interesting initiative. Forget Passport, forget web-services and all the other pieces and focus only on the framework and the common language runtime (that the focus of MONO) - its neat, and being able to compile code on several platforms without worrying about ports is a great achievement.

    Off course, don't use platform-specific calls (PInvoke) if you want interoperability, but almost everything else is ok.

  3. Useful technology by Jonner · · Score: 4, Interesting

    I am not interested in .NET because of M$'s clout, but I am somewhat interested in CLR and the standard libraries because it may be a genuinely useful technology. I'm not interested much in C#, as it appears to be quite similar to Java with some C++-like stuff, but if the promise of easy cross-language development is true, that is interesting. Of course, that is possible with a JVM and standard Java libraries, but the CLR may be superior in that respect. Let's wait and see.

  4. Re:What are the chances for survival!? by mgv · · Score: 5, Insightful

    No...they'll go ahead and change their infrastructure so that it doesn't work with open source code.

    Well, sometimes this works, and sometimes it fails.

    Despite numerous attempts to redefine HTML, its still a fairly broadly defined language, irrespective of what IE will render. .net (the concept) makes alot of sense, its just whether or not you trust M$ to implement it. (No prize for guessing my opinions on that one).

    But M$ do do some things right (Office apps and development suites). .net has the potential to be one of those things, and as long as mono exists also, I look forward to it.

    Michael

    --
    There is no cryptographic solution to the problem where the intended receiver and the attacker are the same entity.
  5. No personal use of .NET or Mono by Daimaou · · Score: 4, Insightful

    I use C#, ASP.NET and VS.NET at work. I find developing web applications with these MS technologies glumed together as irritating as it gets. While the integration between disperate technologies is commendible, VS.NET is slower than frozen mud. Give me a good text editor and command line tools any day.

    I think that the whole Mono project will turn out to be a major debacle. Microsoft is going to integrate and complicate .NET with Windows to the point that Mono will never work. MS will release new .NET crap every year and Mono will play catch up for a year so it finally works again just as MS is releasing a new incompatible version.

    In the past, Microsoft has either presented an "open" standard, or pushed someone else's open standard, only to hijack it in the end, to the detriment of non-Windows users and developers.

    I think the Open Source community would be better off backing a web technology like J2EE and not .NET. Microsoft has proven time and again that it can't play well with others. I think Java has a good record for working everywhere consistantly.

    I would recommend consulting members of the Wine and Samba development groups. I'm sure they have plenty of horror stories about working with constantly changing MS technologies.

    1. Re:No personal use of .NET or Mono by erasmus_ · · Score: 5, Insightful

      How does .NET prevent you from using a good text editor and command line tools? All the files, including forms, code, resource, and project files are simple text/XML files. That means that you can use any text editor, then use the command line compilation tools, which are vbc for VB.NET, cs for C#, etc. And as others above have pointed out, C# has been approved by a standards body, so unlike Samba, there are not going to be issues of trying to integrate with something the vendor (MS) does not necessarily want you integrating with.

      --
      Please subscribe to see the more insightful version of th
  6. It's not the code stupid... by chuckw · · Score: 5, Insightful

    Two of our developers just came back from a .NET training session and were wowed beyond belief. (Note: This session was put on by a private company, not Microsoft). These guys were hardcore Linux/Java hackers working on our latest web based application. What changed their mind? It was the tools. The code had *NOTHING* to do with it as far as they were concerned. I told them there were OSS alternatives that pretty much replicated all of the .NET functionality. They still shook their heads saying it's the tools they were introduced to that made the real difference, not the code. One small example they used was that the MSFT tools allow you to backtrace a transaction all the way from your HTML front end clear on in to the database with a simple click of a button. There were a lot of other examples, but that was the one that stood out in my mind the most. It was the fact that they could write code faster and worry less about the crap that tipped the scales.

    The thinking progresses with the argument that since we're developing on Microsoft tools we should be running a Microsoft OS on our servers since no two JVM's 'er I mean CLR's are alike...

    --
    *Condense fact from the vapor of nuance*
    1. Re:It's not the code stupid... by Iamthefallen · · Score: 4, Insightful

      When that day comes you look up how to do it, if you spend your time with a bad buggy tool solely to get better understanding of the system/framework, you're wasting a lot more precious time. Start coding, when you get stuck, pick up a book or ask around.

      --
      Wax-Museum Fire Results In Hundreds Of New Danny DeVito Statues
  7. Re:bad news for Linux? by miguel · · Score: 5, Informative

    Developers in the Windows world that do not care about cross platform issues (which is, 99% of them) are tired of C++, and Visual Basic, and C# happens to be a nice language to move to delivered by the company that does their OS.

    So people will be adopting C# as a programming language no matter what anyone does. The language is here, and the tools are here, and the community is rapidly growing.

    So what we are enabling is to bring a number of things to Linux: we bring the people, the knowledge and we are reusing Microsoft's investment in documenting, promoting and producing training materials to benefit us.

    So, I am fairly possitive that this is good.

    And then, there is the added advantage of open source: now you got a compiler, a runtime and classes. If they serve your purposes, take it, improve it, extend it, change it, modify it, rip it, research, reuse what you feel like reusing.

    Miguel

  8. Bob... by sterno · · Score: 4, Insightful

    Microsoft Bob... Need I say more? :)

    Overall .Net is going to get used by the places that have tended towards being heavily windows environments originally. Companies that have been using Unix, Linux, and Java will probably not be moving to .Net anytime soon.

    Personally I'd be very interested in using .Net on Linux provided that it works well and provided that I can have faith that, in the long term, I'll be able to do this without risking a microsoft tax or lock-in.

    My big concern down the road is that Microsoft is going to start using patents and license restrictions to control the fate of .Net. Wait until enough people develop .Net solutions on alternative platforms then say, "well that's great, now you can pay us a license fee."

    I just can't believe that Microsoft would develop any technology that wasn't designed from the ground up to further their control. If just about any other company had put forth .Net I'd probably see it as a good thing. Hell, I've been a java developer for a while and I don't think much better of Sun than I do of Microsoft. The only reason I trust sun to stick with some level of openess is that it's about the only ammunition they have available to leverage against Microsoft's hegemony.

    --
    This sig has been temporarily disconnected or is no longer in service
  9. Re:It's no use to resist .NET.... by Restil · · Score: 5, Interesting

    We're playing the wrong game here. We need to have microsoft constantly chasing after US to keep up to date with the existing "standards", not the other way around. The open source community as a whole needs to be frontlining new standards. If we can keep Microsoft and other evil empires constantly playing catchup, it will severely limit the damage they can do overall. Sure, they'll play the embrace and extend game, but only if we give them enough time to do so.

    -Restil

    --
    Play with my webcams and lights here
  10. Not that great an example... by sterno · · Score: 5, Insightful

    There was an article just the other day on here about how web developers are designing for Microsoft now and ignoring standards. Though Microsoft is never going to make themselves fully incompatible with other browsers, they have continued to distinguish themselves from the competition by their "innovations". The result is that while I can surf websites on linux using mozilla, I will be given a decidedly different experience doing so. Some sites will refuse to let me in all together, and others will just break horribly.

    Now, you might say the reaction to this is that those companies will suffer from losing my business. Yeah, so they are losing what, 5% of the market? Ooooo, big deal. This causes people who don't have a tolerance for these glitches to go with a windows platform out of their lack of patience for that stuff.

    --
    This sig has been temporarily disconnected or is no longer in service
  11. Re:What are the chances for survival!? by Anonymous Coward · · Score: 4, Insightful

    Exactly!

    Microsoft's track record with Java alone is reason enough to avoid .NET. Microsoft couldn't even be trusted to stick with the spec...they IMMEDIATELY started changing Java (adding worthless crap like *pointers* to a language that was designed NOT to need it). Why did they do it? Because, this is EXACTLY how microsoft gets ahead--embrace, extend, sieze control, and keep changing the API so no competitors can catch up. CHRIST folks, we've got the MEMOS sent around Microsoft HQ as part of public record. They went out of their way to "neutralize" Java as much as possible. .NET will be NO different. Why should it be? Almost all of Microsoft's former competitors complained that Microsoft had the upper hand--because Microsoft had access to the "hidden" APIs while their competitors did not. Will .NET be different? Why in the hell should it? This tactic has worked for Microsoft OVER AND OVER again. Why throw away a perfectly good tactic that has yet to fail?

    Do you honestly think Microsoft has suddenly turned over a new leaf? This is the company that FAKED EVIDENCE in a court of LAW for God's sake.

    Is Miguel smart? Possibly. Is he smart enough to outwit Bill Gates and his army of monopolists? I doubt it. Just look at the graveyard of those who have tried to dance with the devil...the legacy of the 90's computer industry is a full graveyard.

  12. makes me nervous by Dr.+Awktagon · · Score: 5, Insightful

    I guess I have to make my obligitory post on this subject:

    As a technology person, I like the .NET framework, the web services aspects, the runtime, and I think C# is infinitely better than C++ (then again, what isn't...). I'm looking forward to playing with C# on my Linux machine.

    But I'm just a little creeped out by the idea of using Mono for anything important (business-related), such as deploying services or products. I really have trouble figuring out what Microsoft has to gain from allowing Mono to exist indefinitely. They have plenty to gain from a sweeping, cross-plaform, bait-and-switch ploy.. they can just wait until Mono is somewhat established, apps are built and deployed... then break it and wait patiently for the inevitable migration back to Windows.

    I would like to hear from Microsoft that they won't sue any Mono developer (or user) for patent infringement. I'd like to hear that all relevant APIs and specification are public and open and will stay that way. Miguel's attitude seems to be one of "hope", quote:

    So I think the APIs will remain fairly stable, and I hope that Microsoft won't go into proprietary protocols or protocols that would make it really hard for us to implement Mono. There's is always the possibility it will do so. Microsoft has some strange patterns in terms of how it competes. I really hope it will "behave like a good citizen," as Steve Ballmer said recently it would.

    Now, I could be all wrong, Microsoft actually might not mind that we will use their technology and not their products...but...this is Microsoft we're talking about here.

    Sure this sounds like fear, uncertainty, and doubt, but that's exactly what I feel whenever I think about Mono......

  13. Why .NET is good for Linux by rseuhs · · Score: 4, Insightful
    Now, take a step back, cool off and take a deep breath.

    Look at .NET, what is it? Basically it's just another API (plus some other enhancements, but I told you to take a step back and look at the bigger picture.) like the Win32 API

    Microsoft wants to fuel upgrades just like the transition from Win16 to Win32 fueled upgrades.

    The worst case in a Linux-point-of-view is that everything stays the same - Windows-apps don't run under Linux.

    The best case is that .NET apps run under Mono/Linux right from the start.

    .NET could be the biggest blunder of Microsoft's history, taking away the only advantage they really got (a huge software library).

  14. Re:It's no use to resist .NET.... by MrResistor · · Score: 5, Insightful

    We need to have microsoft constantly chasing after US

    They are. Can you name a single "technology" MS has announced recently that *nix hasn't had for years (if not decades)? What does .NET offer, really? "Portable" code and remote apps? Java has offered portable code for about 7 years now, and remote apps predate Unix.

    All MS has done since they started developing NT is chase *nix. The only thing I can think of that they might have had a head start on is the GUI, but I have my doubts about that, too. What OS was Xerox using at PARC, anyway?

    The problem for *nix is that the general public isn't aware of that fact.

    --
    Under capitalism man exploits man. Under communism it's the other way around.
  15. Making the interviewers' point by einhverfr · · Score: 5, Interesting

    About some people using a technology out of religion rather than merit.

    This interview is a very interesting interview in part because it seems to indicate that Mono is a good way of getting Windows developers into Open Source software development-- something that Microsoft has generally been pretty successful at preventing. I have generally likes what I have seen in .NET but I tend to see it as an exit strategy from the OS market (in a world where the OS market is saturating in the key markets in the developed world). This is a real reason that open source, being more flexible in its development pace (and giving customers what they need through community effort rather than centralized marketing). So, I wish Mono the best.

    --

    LedgerSMB: Open source Accounting/ERP
  16. We're talking about the platform not the language by alext · · Score: 5, Interesting

    This doesn't really add up to much.

    Only about 120 classes of the 1200 in the Dotnet platform are standardized as part of the C Sharp language, so standardization offers little protection if your application uses a GUI (Windows Forms, Web Forms) or a database (ADO Dotnet). Not only are these libraries not standardized, they are likely to be protected by patents.

    Sun does not have the same room for manoeuvre as MS since the JCP has other powerful participants. In practice, there have been few ownership/legal issues in developing Open Source versions of the JVM - see the Kawa web site for a list of these. Their complaints revolve around issues such as access to the test suites - ultimately Sun just owns the Java name, not all the implementations.

  17. Re:Just Wondering by miguel · · Score: 4, Informative

    We are not planning ourselves on writing one, but several people have expressed their interest on doing so.

    There is already a proof that this can be done (Microsoft's JUMP), but it is not fundamentally a hard problem either.

    There are three groups of people to my knowledge working on free software versions of such a tool.

    Miguel

  18. A very simple analogy. by Kaypro · · Score: 4, Insightful
    I've been a hard core Linux user for many years and do most of my development on Linux (usually GTK/Gnome) but I must admit that the whole .NET thing is quite impressive. I'm actually quite surprised by it. Microsoft has never been know to make huge leaps but .NET is a MAJOR one. It is similar to the leap Apple made when jumping to OSX from MacOS. OSX fixed many of the things wrong with MacOS and similarly .NET fixes almost all of the prior things wrong with not only web development, but development in general. I strongly urge Linux developers to push there pride aside and learn about one of the first true inovations coming from Redmond since the wheel mouse :-) Whether or not it is accepted is yet to be seen (though personally I think it will, especially with the MONO project developing so rapidly)

    Cheers!

    1. Re:A very simple analogy. by NotoriousQ · · Score: 4, Insightful

      Your analogy is a good one, but for the wrong reason. OS X is really good because Apple merged UNIX OS with their GUI, thus giving their previously full of crap os a nice boost.

      What MSFT did is they took java concepts and mirrored them, keeping only the IDE. The result is that previously sucky RAD dev languages (talking VB here) and actually making them perform decently, while their IDE keeps kicking ass.

      A true move for the better, but no real new innovation, just a new product.

      Few more points....

      .NET fixes almost all of the prior things wrong with not only web development, but development in general.

      I will have to disagree with you here though....Web development is not fixed..and ASP.NET is actually more clumsy than it was before. Sure it is easier for the newbies, but it does not allow easy flexibility...just look at all the newsgroups talking about trying to avoid or at least control rampant postbacks, the horrible performance of webcontrols, and actually doing anything clientside....

      Do not believe me? Just try adding a client side onclick event to the asp:button, and you will see what I mean

      And do not start on the webservices thing...the only thing that is is just transparent to the user soap calls....

      And what about the development in general....well there are two types of development....one where you write small apps that store some data, and you want to develop them fast, and two is where you write some seriously big software, where you want it to work fast and last. .NET is fine for the first one, I will take pure C for the second one

      Furthermore, it seems that no one is seeing the .NET shortcomings....

      First, the gui (win forms) is not generic, which means microsoft never planned, eventual transparent porting to other platforms gui. Everything is in the absolute positioning, and does not even have an option for the layout system like gtk/swing IIRC. Sure it makes it easier for the noobs, but, you have to have the layout, if you want your app to be fully platform / device independent. Second, there are too many windows quirks in the core libs....drive letters?, unc paths?...sure there had to be a way for a more flexible system...so that apps could be ported a bit easier.

      first true inovations coming from Redmond
      I would not consider this an innovation, just a remake of what java is/tries to be...And like java it has design bugs....just look at the ICollection sometimes returning DictionaryEntry, sometimes the actual value...damn it people...it is an interface it is supposed to have common behavior....i do not want to check every f***ing time what object the for each loop is returning. BLAH

      since the wheel mouse :-)

      probably not their innovation, but they did recognize it as useful...gotta give them credit for that. I still think that there are some double mouse designs that are more useful...but do not have much time to play with them...but think multi axis mice (hat buttons, jog dials, etc, think the left hand joistick for RTS)

      Whether or not it is accepted is yet to be seen (though personally I think it will, especially with the MONO project developing so rapidly)

      What are you talking about? .NET is quite accepted in the Microsoft shops since it beats the shit out of old VB. However I wonder if mono is going to be accepted. This would be a very good thing for one good reason. This would cause competition within the libs, and if mono is going to play the lets stick to the standards and only the standards game...it will force microsoft to play to the same standards or risk losing control, and suffer a split in the .NET world. I would think they would take option 1, which is a win for us developers.

      So I say yay for mono, and hope that one day I can do my job for the (unfortunately all Microsoft) company from my linux box at home, and not having to shell out for WIN and VS and fear the BSA.

      --
      badness 10000
  19. Rundown: why this GPL programmer didn't choose NET by afflatus_com · · Score: 5, Interesting

    Look at the toolsets, the final contenders I looked at for a cross-platform GUI toolkit were: .NET
    Trolltech Qt
    GTK
    Delphi/Kylix
    wxWindows .NET:
    -Poor history of MSW undocumented APIs.
    -Poor history of MSW trying to break other toolsets not blessed by the company.
    -Poor history of MSW once actually finishing a piece of software's features (eg Office) trying to find other ways to pinch money off people.
    -Poor history towards GPL software.

    Qt:
    -A strong contender: good documentation, tools.
    -Lost out because they say the Windows version requires a purchased copy of Visual C++ to do any compiling with it.
    -Emulates widgets instead of using native.

    GTK (1.2 back then, I can't comment on 2.0):
    -Very free.
    -A lot of component scattered libraries makes documentation difficult.
    -Sometimes higher level widgets don't exist: need to make them from scratch using the window primitives.
    -MSW port is a bit rough.

    Delphi/Kylix:
    -Easy to use, a company respected by me that makes good software.
    -No Mac available.
    -Proprietary, liable to not be maintained if company goes under.
    -Free version is nagware under Linux, I believe their documentation said.

    wxWindows:
    -Works out of the box, now.
    -A single project can be compiled for MSW, GTK, OSX and less commons like X11 embedded.
    -Good documentation, sample code, etc.
    -Core team is *very* accepting to new features and sharper code.
    -Native widgets always used, where they exist makes a proper look and feel for an application.
    -The open library in unencumbered by a company that needs to ship new versions of tools or the library.
    -Fast: native compiles so no runtimes needed.
    -The C++ is designed to by truly compatible with almost any compiler, toolset, not ones blessed by one certain company.
    -Well tested (10 years).
    -Tools and library are no cost, (or nagware). Free compilers exist on all supported platforms.

    wxWindows was the one that was selected, and now 10 months into the project, I am very satisfied with the results from that toolkit choice.

    --

    -----
    Cast a Cold Eye
    On Life, on Death
    Horseman, pass by
    --W.B. Yeats' gravestone
  20. Re:No I would not. by JoeBuck · · Score: 5, Insightful

    Mono is a stupid reason to switch from Gnome to KDE, in that the Gnome project has not accepted Mono. It's a proposal from the Ximian folks that Gnome eventually accept Mono. I wouldn't be surprised to see the Gnome project split if Mono were forced on it in a central role (rather than as an optional add-on), as many Gnome developers are not fans of it at all.

    What will you do if some KDE developer says he wants to support .NET in the KDE framework? You'll then have to drop KDE, since you drop platforms based merely on proposals that they go in a direction you don't like.

  21. Re:What about Dot-GNU? by miguel · · Score: 5, Informative

    DotGNU is = Portable.NET + other_stuff.

    Portable.NET and Mono are doing the same things. Mono is a lot more advanced than Portable.NET: JIT, a working compiler, large development team.

    About the `other_stuff', I have never been able to figure out what it is, or what they are doing.

    It is a duplicated effort as you very well point out. From the Ximian perspective, we did have the resources to work on this project, and we had our developers work on it.