Access: Miguel de Icaza
New Architect, November 2002
by Thomas Claburn
New Architect: You recently demonstrated Mono at the O’Reilly Open Source Convention. How was it received?
Miguel de Icaza: What people mostly were interested in was our support for ASP.Net. That and the embeddability of the runtime, so you can extend existing applications with the Mono runtime. I think those were the two things that people liked the most. But it was a nice surprise to see that people were interested in ASP.Net, which is this framework for building Web applications. We also demonstrated Gtk#, which is the toolkit that allows us to integrate with the existing GNOME platform.
NA: Given that Mono is an open source project, will it reduce development costs?
MdI: Yes. That’s why people are so excited about the ASP support, which basically means you can develop on Windows or use third-party controls and third-party applications built with ASP.Net, and deploy them on Linux. What is interesting about ASP.Net is that it’s a component model. That means that you can build your application, but if you need some specific functionality, you can always develop third-party components easily and deploy those on Linux. With ASP.Net, it’s really simple to integrate a third-party component, like a graphics component, a card component, a customer-tracking component, or a discussion form component.
NA: What’s the advantage of the .Net architecture from a development point of view?
MdI: It depends who you ask. From my perspective, it is interesting because it’s a platform designed to run code in multiple languages and not code written in a single language. Java is basically single language, multiple platforms, and .Net is more single platform, multiple languages. What you get with Mono is a combination of Java and .Net: multiple platforms and multiple languages. So for some people, it’s the cross-language functionality—being able to purchase third-party controls written in any language and deploying them with any language. And finally, it’s about increased productivity. A lot of the rationale for using .Net is really the kind of productivity gains you’d win from Java. But the problem with Java is that you have to move everything to Java. It’s kind of binary: You’re either using Java or you’re not using Java. With the .Net platform, you have multiple degrees of adoption.
NA: Does that overcome some of the criticisms of C#, like the contention that it’s not as portable as Java?
MdI: I haven’t seen criticisms of C#, at least not any informed criticisms. The closest I’ve seen is the one that says C# is not secure because it includes an unsafe option. But that one is famous because it came from James Gosling. It’s also famous because he’s wrong. .Net comes with a verification system. So if you use the unsafe code option, then your code is not trusted, and you cannot develop trusted applications with that. But if you want to develop system applications that are always trusted— part of your operating system—you can still use C#.
NA: Do you foresee issues with the GPL and .Net?
MdI: Microsoft is confused on their reading of it. They’re trying to scare people away from using the GPL, because that’s their strongest competitor. The analysis of the GPL they present on their Web site is correct. But their assumption is that people are too dumb and that people might accidentally trip over GPL code, which is not the case. Microsoft is trying to blow it out of proportion in that particular sense. You don’t accidentally trip over code. It’s a conscious decision to incorporate pieces of GPL code into your code. You need to get legal permission to incorporate goods from a third party, even at Microsoft. If they’re going to incorporate IBM code, they have to get clearance from a lawyer. And the same needs to happen with GPL code. It’s not something that happens by accident. That being said, we don’t have any problems with the GPL. But for Mono, we’re actually using the LGPL, which is a much softer license.
NA: Looking a few years down the road, how do you expect Mono to affect the development process?
MdI: I think you’ll be pleased to see that ASP.Net and WindowsForms actually simplify the development process quite a lot. That’s why Microsoft had to build .Net, because they were losing people to Java. Their Win32 development platform was horrible. We need to simplify the development process, and that’s what these things achieve. Because people couldn’t deal with that stuff. It was really, really complex.
