Home > Mono > Miguel de Icaza on Mono Miguel de Icaza on Mono Thom Holwerda 2005-07-26 Mono 48 Comments Mono is an open-source implementation of Microsoft’s .NET for Linux and other operating systems. In this article, Tim Anderson interviews project leader Miguel de Icaza. Why is Mono now partnering with Mainsoft to ease migration to J2EE? About The Author Thom Holwerda Follow me on Twitter @thomholwerda 48 Comments 2005-07-26 9:23 pm Lumbergh When you put together the words “totally indifferent” with “it’s great what they’re doing”, you can see what I mean by Microsoft being in two minds about Mono. This guy has a hard time playing jr. shrink. Many people at Microsoft (at least engineer types) like that others are implementing the platform, but it doesn’t mean that they’re going to help them out with the project (that’s the indifferent). The Grasshopper compiler converts your compiled ASP.NET project into Java byte code, for deployment on a J2EE application server; I don’t know much about ASP.NET, but I would presume this grasshopper tool would have a hard time converting all C# code (pointers for one thing), rather than IKVM which can easily handle Java bytecode Interesting take on J2EE being a pain to develop with. Seems to be a big demand for J2EE developers. Maybe developers are getting sick of working with it. 2005-07-26 10:02 pm japail If there is anyone out there that uses unverifiable IL in their ASP.NET code, please come forward. 2005-07-26 9:24 pm narcissus What’s this about? 2005-07-27 3:28 pm narcissus I’m serious, he mentions a new media player and I hadn’t heard anything thing about it before. I use SuSE and and curious if this thing will play all the codecs, unlike the crippled players they were shipping. And instead of someone just answering the question, they mod me to -2. 2005-07-27 8:05 pm segedunum I’m serious, he mentions a new media player and I hadn’t heard anything thing about it before. I use SuSE and and curious if this thing will play all the codecs, unlike the crippled players they were shipping. And instead of someone just answering the question, they mod me to -2. I don’t know why you were modded down either. I don’t know what media player he’s talking about, but it’s probably one of the existing ones we already know about like Muine. Certainly, the media player used in Suse is Real Player and that’s not written with Mono. I’ve no idea what he’s talking about. 2005-07-26 9:31 pm instead of developing new technologies,why the Icaza team don’t take a look at the fantastic bonobo component ? 2005-07-26 9:36 pm sbenitezb What’s more interesting to me is he talked about ICE, which I didn’t know before today. 2005-07-26 10:03 pm “What is clear is that Mono (as opposed to .NET) is not currently designed for scalability or transactional distributed applications. De Icaza’s comments suggest that this is unlikely to change, although the ICE wrappers are an interesting area to explore.” Come on in boys and girls! The water’s cold! 2005-07-26 10:29 pm The whole excitement(hype?) about the .NET framework is long gone and .NET seems to die off while new frameworks such as Bonobo have become increasinly popular. I have quite a bit of .NET experience and, honestly, I wouldn’t wish any other developer to go through the pains of coding for .NET. There are much better frameworks around now. 2005-07-26 11:07 pm Lumbergh The whole excitement(hype?) about the .NET framework is long gone and .NET seems to die off while new frameworks such as Bonobo have become increasinly popular. Bonobo is increasingly popular while .NET dies off? Bahah…rofl. 2005-07-27 12:35 am rayiner Ironic, isn’t it? Especially considering that Miguel himself considers Bonobo a failure, and is no working on .NET? 2005-07-27 2:09 am japail I think that fits the definition of a troll rather well. 2005-07-27 3:12 am pravda .NET is a rather spectacular failure compared to the expectations Microsoft originally set for it. But Bonobo… that was a reach, no doubt. It is rather clear that there may not be any great “framework” based on current models of programming computers that ever works very well. While I think .NET is a bit nicer than Java, currently it is also a lot less mature than Java. Perhaps in 2-3 years, .NET 3.0 will be mostly caught up to Java. The current release 1.1 version of .NET is immature at best which is to be expected from a 1.0 bug fix release. What I find interesting about .NET is that the main benefit is the nice/flexible APIs you get out of it. The programmer does not have to relearn N times how to open a file based on the language the programmer is using. However, the actual programming models are as stupid and uninspired as they ever were. Once the shared-API schemes are more prevalent, .NET may offer no value proposition beyond Microsoft pushing it as the only way to write Windows apps (other than Microsoft’s internal APIs). .NET has a future and a strong one — on Windows. It is hard to say right now if Mono will make it. Perhaps if the Mono people innovate more and copy less. 2005-07-27 12:44 pm “The whole excitement(hype?) about the .NET framework is long gone and .NET seems to die off while new frameworks such as Bonobo have become increasinly popular. I have quite a bit of .NET experience and, honestly, I wouldn’t wish any other developer to go through the pains of coding for .NET. There are much better frameworks around now.” I think you don’t know what you’re talking about. Please, refrain from posting unfounded claim publicly. 2005-07-27 2:28 pm Even though Mainsoft can make javabyte code from ASP.net or C#, performanc tracing will be an issues. They would need the ability to go from logs and performance test to the source code similar to IBM’s Performance Optimization Toolkit. 2005-07-26 10:45 pm netdur it is company where windows 2000’s source code leaked? 2005-07-27 12:21 am NemesisBLK Yep, you are correct. http://www.eweek.com/article2/0,4149,1526829,00.asp?kc=EWRSS03119TX… 2005-07-26 11:16 pm The whole excitement(hype?) about the .NET framework is long gone and .NET seems to die off while new frameworks such as Bonobo have become increasinly popular. I have quite a bit of .NET experience and, honestly, I wouldn’t wish any other developer to go through the pains of coding for .NET. There are much better frameworks around now. Dude seriously what planet are you on ? Bonobo is popular but .net is dead ? No offense but go hit the crack pipe a few more times as reality is nothing like what you have just described. hahaha 2005-07-26 11:42 pm I would agree: .NET is loosing its popularity. I knew several people who have been developing for .NET once but gave up on it and moved on. .NET development was just a pain in the neck and in the meantime there are better and easier to develop for frameworks around. 2005-07-27 12:04 am Lumbergh NET is loosing its popularity. I knew several people who have been developing for .NET once but gave up on it and moved on. Yeah, I know several people who have been developing for Acme Framework once but gave up on it and move on? But don’t you fret, the future of windows programming is .NET so it’s not going anywhere. 2005-07-27 12:44 am Icaza is a double agent paid by M$ to put much .Not code on Gnome and to M$ can use this as a legal trojan horse using its patents to delay linux as it used SCO to do the dirty job. 2005-07-27 12:52 am I do not understand why people want to put their *time* and in case of Novell *MONEY* too in Mono. No matter what Microsoft does and says, going by their track record, how sure can one be, it will not come back and twist arms of Open-Source community when it feels it will hurt them. Why should one invest time and money and put everything at risk by supporting Mono. I can understand someone doing this when there are substancial benefits of doing it but .NET does not offers such innovation. Future programming for Windows platform(atleast for forseeable future) will be done in .NET but should we all just go with the hype surrounding it? I am looking for insights/comments on my views. 2005-07-27 6:19 am david g No matter what Microsoft does and says, going by their track record, how sure can one be, it will not come back and twist arms of Open-Source community when it feels it will hurt them. Why should one invest time and money and put everything at risk by supporting Mono. Let’s be honest. No matter what development framework you support, there’s always the risk of attracting the ire of Microsoft. *Any* platform can have code that infringes Microsoft patents, regardless of whether it implements or imitates Microsoft APIs. 2005-07-27 1:27 am We need new langs that enable faster ,more efficient programming. Almost something like automated robots. Everything we programmed has been thought up and we are just reinventing the wheel unless you are on leading edge experimental stuff. 2005-07-27 10:16 am Moocha Almost something like automated robots. You mean, as opposed to the traditional manual robots? 2005-07-27 2:22 am I don’t know much about ASP.NET, but I would presume this grasshopper tool would have a hard time converting all C# code (pointers for one thing), rather than IKVM which can easily handle Java bytecode First fo all, they wont convert any C# code, they will convert the assemblies, the common code generated for all .NET project to java bytecode. Second .- there’s no pointers in C#. 2005-07-27 3:52 am Lumbergh Second .- there’s no pointers in C#. Why are you commenting if you don’t even know the language? 2005-07-27 12:23 pm segedunum Why are you commenting if you don’t even know the language? 2005-07-27 2:52 am Hm, I had never heard of ICE until Migeul mentioned it. It looks a lot cleaner than the typical SOAP equivilent,and Slice as a definition language looks *pretty* sweet. Interesting, but I won’t be using it (licensing issues and all that). 2005-07-27 3:13 am I knew several people who have been developing for .NET once but gave up on it and moved on. .NET development was just a pain in the neck and in the meantime there are better and easier to develop for frameworks around. Could you tell me only one better and easier framework ? No python, php or other children’s toys, but any real alternative ? IMHO the only one competitor the java, but the .NET is more advanced. 2005-07-27 4:51 am http://www.c-sharpcorner.com/Code/2004/Oct/WritingUnsafeCode.asp 2005-07-27 7:40 am Hi there Does anyone here know of an easy way to install Mono and to use Mono on a Debian server ? I have tried, but found the configuration to be a big pain to do, never got even the simplest ‘Hello world’ aspx page to work 2005-07-27 12:49 pm pel! Huh? I’ve tried to apt-get and compiling from source – never been a problem for me. 2005-07-27 1:19 pm I did the same, got it installed, but never got it to work. Running the aspx page. 2005-07-27 1:53 pm what did you ‘apt-get install ***’ did you add anything to the apt sources file ? Are you running it with Apache ? 2005-07-27 8:46 am Rodrigo >>I have tried, but found the configuration to be a big pain to do, never got even the simplest ‘Hello world’ aspx page to work Do yourself a favor and try Ruby on Rails instead 2005-07-27 8:54 am RoR looks nice, but not for what i am working with. I am developing .net application both for web and standalone, so yet another language, no thanks. Php, Java, C#, VB is enough for me 2005-07-27 12:43 pm pravda RoR is the latest fad of the “blog generation”. It is no easier to get working in a real production environment than ASP.NET. 2005-07-27 2:16 pm Rodrigo RoR is the latest fad of the “blog generation”. I agree. My comment was a bit tongue in cheek..I would never replace my current dev environment (ASP.Net + oracle) to RoR + MySQL..but hell, RoR is *fun* to work with I would recommend people who like to try different stuff to have a spin on it, it’s worthy, and one may even take some nice ideas from it back to whatever is their “serious” development platform It is no easier to get working in a real production environment than ASP.NET. That I would prefer to know from someone who actually developed big stuff with both (did you?) But I know at least one person who would disagree with you: http://groups-beta.google.com/group/comp.lang.ruby/msg/47655971c922… 2005-07-27 2:33 pm pravda No, I didn’t get RoR to work in an enterprise environment… that just makes me laugh. However, I have installed RoR and looked at how it interacts with its execution environment, user environment, security environment, etc. As far as my experiments took me, it seems RoR is still a fiddly system and does not have any GUI tools or other management tools that I am aware of. RoR is nice for simple SQL-centric app(lets). We’ve developed a mid-size ASP app and security was a hassle, but the easy COM accessibility more than made up for that. We tended to use a lot of COM vs. going to heavy into the intricacies of ASP. Microsoft definitely has some issues if you don’t use the latest ASP.NET on W2K3 server. But that’s nothing new in Microsoft land. The thing you posted is about someone who sounds like they like objects vs. other abstractions. And that is a valid market segment. There will always be the “pure OO” folks who stay in the Ruby/Smalltalk/etc domain. But as soon as you move to a larger scale project, most of the time the wheels fall off “pure OO” really fast. Perhaps that is due to the relatively small number of “pure OO” folks that are around. It could be a purist team of object lovers could do amazing things together. 2005-07-27 9:57 am TBPrince I think Miguel has been very honest about the whole situation. The facts about Java and .NET look credible, as I said in other post. Of course .NET cannot aim to compete with Java in higher ends of market where Java gained a reputation among years. But MS doesn’t really need to enter all segments of such market. Right now, I guess it’s enough to have .NET getting ground on lowest or middle level. That would surely help turning .NET into a competitor against Java, maybe even by the release of Indigo on servers (Vista Server). Meanwhile, .NET will drive sales of Windows2003 the same way PHP drives part of the sales of Linux and that’s how Win2003 share will increase (as we’re witnessing). I have to say that only criticism against Indigo looks “forced”. But maybe explanation on this could be that MS stopped any attempt to implement Indigo and Avalon on MONO while they left room for MONO itself. That’s the only propaganda part, maybe. The whole interview look well-balanced. Let me just add that it was pretty nice to see De Icaza sponsoring ICE. If you look at ICE homepage, you will be able to read one of most direct accusation to standards committee I ever read (against CORBA specs). It’s nice to see that someone can freely admit (without getting bashed) that such committees many times just mess with things to pursue other goals, let’s say “political” goals which infacts are goals from companies paying their bills. IMO, one could had CSS to CORBA as an example of how to turn a beauty and simple things into an horrible mess. Just my opinion, of course… 2005-07-27 10:00 am TBPrince What a typo! It should read: “IMO, one could ADD…”. Sowwy 😀 2005-07-27 1:56 pm segedunum I’m pleased to see someone has listened to me, slightly anyway ;-). It’s nice to see that Mainsoft are at least injecting some real-world business sense into Mono – namely that there is no demand whatsoever for Mono/ASP.Net powered applications servers, or in many environments, even ASP.Net powered Microsoft servers. Apart from that, they seem to regurgitate the same stuff. The Grasshopper compiler converts your compiled ASP.NET project into Java byte code, for deployment on a J2EE application server; This is the thing that I think is just plain lunacy. Aside from the fact that I have a hard time seeing the advantages of running a machine within a machine most of the time anyway, what on Earth is the logic in converting one set of bytecode to another? All you’re doing is running two different virtal machines, both running above native code, for no reason whatsoever. Is that worth the hassle of the so-called productivity benefits .Net and ASP.Net supposedly bring? No, it damn well isn’t and no J2EE user is going to allow that anywhere near their servers. In many environments I have seen a need for .Net clients and J2EE servers to communicate, but there are many very and more reliable ways and many products on the market for doing that. “The hole that Mainsoft’s product fills is one that Microsoft has not been able to penetrate with ASP.NET…So that market is very hard for Microsoft to penetrate.” This is the thing that really does make me roll on the floor and laugh and then shake my head in disbelief when I think of Mono. You notice here that Miguel has no other option but to equate the success and penetration of Mono with the success and penetration of .Net and Microsoft in the enterprise space. You can’t have one without the other, because if there’s no demand for Microsoft and .Net there’s no demand for Mono, and for Mono to succeed Microsoft has to have got there first. Does anyone see how incredibly stupid that is?! Microsoft would have to displace all of the J2EE infrastructure out there, and then there may actually be some scraps of demand for Mono. Where do you think that will put open source software? Miguel might be a talented technical person and Mono might be a good technical achievement, but when it comes to what will work in the real world, and real-world demand, he’s a fish straight out of water. “The development model in ASP.NET is lighter than the development model with J2EE. J2EE has taken this approach of Model-View-Controller, which is a beautiful thing from an academic perspective, but it does add a burden.” I do not know where this MVC thing comes from with Java. It is perfectly possible to write a very simple layered system with Java and J2EE without buying into MVC at all. MVC is there, and always has been, when you have difficulties you need to solve with communication between multiple layers of your system. You don’t need to use it though, and in terms of that complexity, that’s a bridge .Net hasn’t even got to yet. At Ximian we consulted with a number of software companies. They said, ‘We can develop applications 20 to 25% faster than with ASP.NET than we can with J2EE.’ Err, no Miguel. That’s something you picked up out of one of Microsoft’s surveys when you were trying to bolster demand. If you cut the complexity you don’t need from your J2EE systems, you can quite easily cut your development time and that cut in development time is also dependant on good development tools and IDEs. The reason why that apparent complexity exists with Java is simply because people have been using Java for many different and complex systems over the years. If .Net ever approaches that kind of usage then you’ll see frameworks like Struts and Hibernate that apparently increase the complexity of everything. The problem is, people tend to buy into these frameworks without evaluating them. Even then though, the actual development time should be pretty insignificant compared to the analysis and design stages of your project, and if you do that properly, that will also cut your development time more significantly than any fancy new technology ;-). I asked de Icaza what is the current state of adoption for Mono in the Enterprise. He says that the numbers are not being tracked. Non-existant, that’s the current state. We do know that a lot of the existing open-source applications are now being certified to run directly on Mono. That’s not going to help Mono’s adoption or help pay for itself. Pretty much all of the desktop efforts are built on Mono. Blah, blah, blah. There’s simply no evidence for that apart from the usual Beagle/F-Spot stuff that isn’t significant for Novell at all. They’re not even Novell software either. “It enables the large number of VB.NET and C# people to target a platform other than Windows.” Yes, and any company migrating will need to migrate to Microsoft’s .Net first to enable that to happen, not to mention the things they increasingly won’t be able to port ;-). And then they’re somehow magically expected to move Mono because they simply think running all this stuff on Linux as well is going to be wonderful :-). It had an application for provisioning and human resources management that was running on ASP.NET. The company which developed the application came to Mono for help with porting. So Mono cannot possibly get away from .Net compatibility then. And what are the developers actually using (and even using to compile) to develop this application? Visual Studio and Microsoft .Net? And what happens when these development tools start using and linking directly into technology like Indigo which Mono will probably never support? And if Mono starts having to steer people away from these technologies are people going to be confident doing that considering that they are still using Microsoft technology and development tools? Which way are they going to go? The wheels are going to fall right (and are falling) off the wagon with that kind of thinking. De Icaza made some sharp comments concerning Indigo, the next-generation Windows technology which replaces COM+ and .NET Enterprise Services Well of course he did. Since Mono isn’t going to be able to reproduce Indigo for various reasons he needs a plausible reason not to do it ;-). They wanted to have something simpler than Corba, and created Ice [Internet Communication Engine], which works in Java, C++, PHP, and of course any of the .NET languages. Thanks for the admission about CORBA. Most people have known that for years. “So when people ask me about Indigo I say well, you can get Ice today. Ice has everything you can dream of. You can try it out for free, for free applications, or you can buy a commercial license. Ice is fantastic, and people deserve to know more about it.” My God. Miguel de Icaza talking about a dual/multi-licensed piece of software, and recommending people use it. No wonder it’s called ICE! but in reality moving from say WebSphere to BEA is unlikely to be easy It is if you keep away from the vendor specific stuff. I’d love to know how they think moving from .Net to Mono (or even vice versa ;-)) is any better. The company promotes Grasshopper in conjunction with a high-end J2EE server as a means of adding scalability to .NET, yet it has not attempted to port the System.EnterpriseServices libraries If they haven’t ported that then any interest any company may have had will end there. Finally, if you would like to try Mono, you can now do do in a pain-free manner by downloading a new live CD. Tried the Live CD. Thought it was a great idea, and everyone seems to be doing it these days. 2005-07-27 2:41 pm Hey, does nobody ask if Mono is breaking any of Microsoft’s patents? 😉 2005-07-28 6:12 am The reason why that apparent complexity exists with Java is simply because people have been using Java for many different and complex systems over the years. Not. The main reason IMHO the bad design of java. Many very important things are missing, and many independent small and large OSS or commercial products tired to refill this holes (hybernate, struts, oracle ADF, etc) whithout any central desing. The another problem is the language: C# is not too nice if you come from C++, but the java is more primitive. IMHO there is only two reason to using java: there is no visual basic compiler for JVM and there are relative good development environments for java under linux. But if you want to create a database-aware application with both web and rich clients and do you want common business logic with multi-tier, IMHO you can create this thing faster and easier under .NET. And if you want to create a simple data-driven application (rich client or web), you can create it easier under .NET then java or any other development environtment. 2005-07-28 1:25 pm segedunum Not. The main reason IMHO the bad design of java. No it’s not. It’s the frameworks that have been bolted on like EJB that you don’t necessarily need to use. There have been many books written on the subject, and there is some very good stuff written now about how you don’t need to use this stuff. Many very important things are missing, and many independent small and large OSS or commercial products tired to refill this holes… Like what? The reason those projects exist is because people went off using Java for different things. There is absolutely nothing missing with Java itself at all. C# is not too nice if you come from C++, but the java is more primitive. That statement is just plain silly. C# is Java essentially! And if you have used C++, C# and Java are a doddle. IMHO there is only two reason to using java: there is no visual basic compiler for JVM The fact that there is no VB compiler for the JVM is not a reason to use Java. And VB?! Anyone who has used .Net will know the language neutrality is pointless. You end up writing syntactically different, but absolutely identical, code with VB and C#. .Net is designed for C# so just use C#. But if you want to create a database-aware application with both web and rich clients and do you want common business logic with multi-tier, IMHO you can create this thing faster and easier under .NET. You’ve never used some of the IDEs out there to do this stuff. Eclipse with something like MyEclipseIDE and Netbeans make this pretty trivial and much more enjoyable, and there are a lot of areas such as refactoring where many Java IDEs are streets ahead that Microsoft are only now getting around to copying. And remember – .Net doesn’t make any of this stuff easier, it’s Visual Studio. There are parts of Java and .Net that are different ideology-wise, but they really don’t make any difference to real-world development. 2005-07-28 2:52 pm TBPrince Anyone who has used .Net will know the language neutrality is pointless. I don’t think so. Instead, being able to use language you like most is very good for productivity, expecially in big projects or when you use many different external libraries. I don’t agree with this kind of view. Saying that cross-language is not important for you does’t imply cross-language isn’t a big feature per se. The very fact that I’m seeing many articles stating that Java can handle different languages (I read at least 2 or 3 interviews where Goslin himself states that) is a symptom about how important this factor can be. Which doesn’t mean that everyone should use a different language but just that you can. A live example is myself: I rather prefer using VB.NET than C# expecially. VB.NET is powerful enough to enhance your productivity instead of keeping to correct mispelled variables. However, when it comes down to a few things VB.NET can’t handle (say, for example, anonymous methods) I end up using C#. But if someone feels comfortable in using Python to write an assembly, why should I care? I’ll just take it and use it as it was VB.NET or C#. Definitely a good thing even if you can surely live without. You end up writing syntactically different, but absolutely identical, code with VB and C#. .Net is designed for C# so just use C#. That’s not true, at least not in the absolute way you put it. It’s true that MS thought that C# is going to be direct replacement for C++ but other languages aren’t toys. There are a very few things you can’t do in (say) VB.NET and VB is not newbie language or 2nd class language anymore as it was during VB/C++ era. I cannot give details about other languages I’m not using everyday. VB6 was self-limited and MS designed it for specific purposes which didn’t include most complex software. That changed with VB.NET since you’re not limited anymore in things you can do and you have no parts of .NET framework which you cannot access. So you can leverage full power of platform. Comparing VB and VB.NET is really a mistake because things changed. Best regards. 2005-07-29 12:04 am segedunum I don’t think so. Instead, being able to use language you like most is very good for productivity, expecially in big projects or when you use many different external libraries. The language is syntactic sugar for the same target platform – end of story. If you have the same target platform the languages are the same, and there’s no getting past that. The comfort thing of different languages with .Net is over, simply because when people use a language with .Net they find they have to learn a whole new environment anyway – the .Net framework. They then find that because their language is retro-fitted on to it it is no longer the language they are familiar with. Language neutrality becomes meaningless. It’s happened to VB.Net programmers the world over. The very fact that I’m seeing many articles stating that Java can handle different languages (I read at least 2 or 3 interviews where Goslin himself states that) Everybody says that, and they then realise it doesn’t mean a thing. Language neutrality for COM may have made a difference where there was actually a difference between languages. With .Net, there just isn’t. Comparing VB and VB.NET is really a mistake because things changed. There was a purpose to VB. It was a RAD environment. VB.Net simply isn’t, and there is no point in using it over C#. Every language has to have a purpose, and they don’t in the .Net or Java worlds. You’ve been swallowing too much .Net literature. The airy fairy comments of ‘using what language you feel comfortable with’ have passed.