Using the ECMA standard: an interview with Miguel de Icaza

Source: Internet
Author: User
Tags web services linux
Standard use ECMA Standard: Interview with Miguel de Icaza
Dare Obasanjo
December 2001

Summary:In this interview, GNOME and Ximian founder Miguel de Icaza discussed UNIX components, Bonobo, Mono, and Microsoft. NET.
Dare Obasanjo:Recently you have been busy publishing a Ximian (English) statement announcing the creation of an open source version of the Microsoft. NET Development Platform (English). Previously, your work for GNOME (English) and Bonobo has given you a wide range of attention from all over the world. Can you briefly summarize your work on free software development from early projects to Mono (English)?
Miguel de Icaza:For the past four years, I've been working on various areas of the GNOME project, such as the GNOME project's organization, libraries, and applications. Before that, I worked on the Linux kernel: I spent a lot of time researching SPARC ports; this was followed by software RAID and Linux/sgi. Before, I wrote the midnight Commander File Manager.
Dare Obasanjo:In your written let's made Unix not suck series, you mentioned that the development of UNIX has long been constrained by the lack of reusable code, and you highlighted the "Software integrated circuit" concept of Brad Cox. It is pointed out that software construction is mainly based on composite reusable components, that is, to write code that can be reused. Many people disagree with your view that UNIX is built on the basis of using reusable components to complete program construction by connecting the output of smaller programs with pipelines. What do you think of this objection?
Miguel de Icaza:Yes, this question has been published in detail. The "pipe" mentioned here is strictly not a complete component system. It is simply a transport mechanism for processing information using certain common protocols such as rows, characters, buffers, and so on. And the protocol only has information flow.
Details are published in the article (in English). [ Dare-See "Unix Components:small is Beautiful". ]
Dare Obasanjo:Bonobo is the product that you tried to build UNIX components based on CORBA, and then why did you turn to Mono?
Miguel de Icaza:The goal of the GNOME project is to complement the technologies that are missing in Unix, making it more competitive in the desktop application marketplace. We have long recognized the importance of language independence, which is why the GNOME API is built using standard code. This standard code allows APIs to be packaged easily by other languages. Most of the programming languages of Unix (such as Perl, Python, Scheme, C + +, objective-c, Ada) can use our APIs.
Later, we decided to use a better way to encapsulate the API, so we started using CORBA to define the interface of the component. We also use policies and a standard GNOME interface to complement it to make it easier to create reusable, language-independent components, controls, and composite documents. This technology is today's bonobo. C, Perl, Python, and Java can all use the Bonobo interface.
CORBA is good at defining rough interfaces, and most of the bonobo interfaces are rough. The only problem is that BONOBO/CORBA interfaces are not good at defining small interfaces. For example, the XML parsing Bonobo/corba component may not be valid with the C API.
I have discussed this before:
my interest in. NET stems from our previous efforts in the GNOME project, and we tried to get. NET to accomplish the following goals:
    • APIs that can be delivered to multiple languages
    • Cross-language integration
    • Programming based on contract/interface

Of course, I've always loved all sorts of things about Java, but I don't want to have a flaw in the Java mix.
We try to provide APIs in multiple languages with a common object base class (Gtkobject), and then easily package APIs for its own programming language, based on API conventions and formats. We also have a programmatic definition of the API and use it to generate the wrapper freely. For a variety of reasons, the solution has been somewhat poor.
Cross-language integration with CORBA is somewhat similar to COM, but costs some marshaling. It handles non-process components well, but for process components, the situation is less wonderful: because there are no CORBA ABI available, the results are bad. I don't want to say much about this question.
In addition, we also encountered the expansion of the library problem. Most libraries can follow code practices very accurately, but occasionally they violate conventions, or we use libraries written by others, which leads to confusion in the library: Although powerful, it implements multiple programming patterns. Sometimes there are different allocation and ownership policies, and sometimes there are 5 different kinds of "ref/unref" behaviors (such as CORBA local references, CORBA object references on unknown objects, reference counts for object wrappers). This brought us into a great mess.
Of course, we've been trying to fix these problems and things have improved-although the GNOME 2.x platform does solve a lot of problems, there are still some problems.
For me,. NET is like an upgrade for WIN32 developers: they encountered the same problem when handling APIs, because the API was designed many years ago and there are a lot of inconsistencies. So, when I create my own application, I want to introduce something new.
Dare Obasanjo:Bonobo is not very dependent on COM and OLE2, which can be introduced from the fact that the Bonobo interface is based on the Bonobo::unknown interface. This interface provides two basic services: Object lifetime Management and object feature search, and contains only three methods.
Module Bonobo {interface Unknown {void ref ();         void Unref ();      Object query_interface (in string repoid);   }; };

They are very similar to the three methods of the Microsoft COM IUnknown interface.
HRESULT QueryInterface (REFIID riid, void **ppvobject); ULONG AddRef (); ULONG release ();

Does the fact that. NET seems to imply the end of COM also means that Mono will end bonobo? Similarly, does Mono and Bonobo have similar plans, given that the. NET plan implements semi-transparent com/.net Interoperability (English)?
Miguel de Icaza:That's true. Mono must interoperate with a large number of systems other than GNOME's bonobo.
Dare Obasanjo:Many people claim that the Microsoft. NET platform is simply a lame clone of the Java™ platform. In this case, why did Ximian decide not to clone or use the Java platform while cloning the Microsoft. NET platform?
Miguel de Icaza:Because the CLR can solve the problems that plague us every day, the Java VM does not, so we prefer the CLR.
Dare Obasanjo:The Mono rationale page indicates that Microsoft. NET policy provides many features:
    • . NET development Platform, a new platform for software writing
    • WEB Services
    • Microsoft Server Applications
    • New tools for using new development platforms
    • Hailstorm is integrated into Microsoft Windows XP as a single sign-on system with Microsoft. NET Passport as the center.

You also point out that Mono is just the implementation of the. NET development platform, so Ximian plan to implement other parts of the. NET policy?
Miguel de Icaza:It is not yet intended to do so. What we are currently developing are:
    • CLI runtime with Jiter for x86 CPU
    • C # compiler
    • Class Library

All of these goals require outside help. To know that this is a huge project, if no one is willing to selflessly dedicate their time, technology and code, then we will not be able to quickly provide the complete product.
We do this for selfish reasons: we want to find a better way to develop our own Linux and Unix applications, and the CLI is what we need.
That is, in service and support business, Ximian will provide support to help Mono projects address issues such as porting to a new platform, improving the JIT engine, or focusing on a particular area of Mono.
But in addition to these, we are currently not considering the study of three items other than the basic declaration.
Dare Obasanjo:There are many other projects that now rely on the free platform to implement other parts of. NET, which seems to be somewhat conflicted with the Mono project. In the FAQ (English) in section 7.2, it seems to mean that Martin Coxall is banned in the DotGNU mailing list because they clashed with the Mono project. What's your opinion on this?
Miguel de Icaza:I didn't notice the details of Martin in the DotGNU mailing list. Usenet and Internet mailing lists reflect their respective characteristics, which I think is one of the common phenomena on the Internet. However, it is indeed sad to have such a problem.
There are only subtle differences between Mono and. NET: We write programs in high-level languages such as C # and use other languages to write reusable pieces of software. At present, is written in C language.
Dare Obasanjo:Media coverage of the relationship between Ximian and Microsoft is also very different, and some reports seem to imply that there may be a licensing problem between the license agreements protecting the. NET and the GPL. There are also reports that some people within Microsoft are extremely concerned about Mono. So what is the current relationship between Ximian and Microsoft? What measures should be taken to ensure that, when a Microsoft License agreement becomes restricted, Mono does not violate Microsoft's license agreement on a. NET issue?
Miguel de Icaza:Well, 1th, we're writing everything from scratch.
Moreover, in respect of patents, we also try to avoid the infringement problem. In other words, we are currently using methods that others have used before. And for Mono, we have not done too much work or achieved very effective results, on the contrary, we are still very far away, currently only using existing technology and methods.
Dare Obasanjo:It has been pointed out that Sun has recovered Java from standard processes at least two times, so if, for whatever reason,. NET is no longer an open standard, will you continue to Mono the project?
Miguel de Icaza:Upgrading our development platform has special value, whether it's a standard platform or not. The fact that Microsoft has submitted its own specifications to a standardized organization can further illustrate this, as people who understand these issues have begun to consider these issues and are able to identify the cause of the problem from an interoperability perspective.
Dare Obasanjo:Similarly, what if Dan Kusnetzky's prophecy becomes a reality, and then Microsoft changes the. NET Api,mono project? Is it a follow-up, or does it become an incompatible. NET implementation scenario on a UNIX platform?
Miguel de Icaza:Microsoft has done a very good job of keeping the API backwards compatible, and I think that's one of the reasons it's been a great success as a platform vendor, so I don't think that's going to be a problem.
Even with such a problem, there are several implementations that can get the same API and get the right solution by selecting the appropriate assembly at run time. An assembly is a new way to process packages and files (as part of an assembly), and you can encrypt the assemblies and test their APIs to check their compatibility. [ Dare-For more information on assemblies, see the. NET Framework Glossary (English). ]
So, even if they deviate from the original version, we have the ability to provide a compatible version of the assembly, both for Microsoft software and for our own software.
Dare Obasanjo:In the Mono Class Status page (English), I noticed that there are a large number of. NET class libraries in Mono that are not implemented, such as Windows forms,, Web services, XML schemas, images, and many other class libraries. This means that when Mono and. NET are eventually released, programs written for. NET will most likely not be ported to Mono. Do you intend to revise it in the future or do you think that the Mono project does not intend to create a portable. NET platform? In other words, what are the immediate and long-term goals of the Mono project?
Miguel de Icaza:The Status Web page reflects the class that people "must" use, as if to say "Hey, I'm using this class now" to avoid code duplication. If someone chooses a class that interests them and then gives up after a while, then we can take back the class.
Because the project is just beginning, you'll find that the basic classes work much more than the end user class.
Unexpectedly, it attracted so many talented programmers at the start of the project. According to my initial projections, the first three months to deal with public relations in order to solve the problem of lack of external collaborators, it turns out I was wrong.
You should be aware that the goals of the Mono project are not just ximian goals. Ximian has a set of goals, but each partner has his own goal: someone wants to learn, someone likes to study C #, someone wants to implement. NET compatibility on Linux, someone likes language independence, someone wants to optimize the code, someone likes the underlying programming, someone wants to compete with Microsoft , and others like the way. NET services work.
So the direction of the project is in the hands of those who have worked for it. Many people are interested in implementing a compatible. NET on a non-Windows platform and are working towards that goal.
Dare Obasanjo:Many of the companies that have relied on venture funds to invest in free software have been bankrupt recently, such as Indrema, Eazel and Great Bridge, while a significant portion of the only surviving companies based on free software is on the verge of bankruptcy. Under such circumstances, has Ximian considered how to pay for Mono development costs? In addition, Ximian plans how to make money from free software, more specifically, how to use Mono?
Miguel de Icaza:Ximian is ready to provide support and various services. We recently announced several services, and more products and services have been formed and will be released within the next six months.
Recently released services include:
    • Red carpet Express: A subscription service that provides reliable, fast access to red carpet servers.
    • Red carpet Corporate Connect: We have modified the red carpet Update technology to help people easily manage Linux network workstations and easily deploy and maintain custom packages.
    • Support and services for GNOME desktops and Evolution: The latest series of products reflect our idea of "providing support services for multiple products".

We have also been providing professional services and support to people who integrate solutions based on free software.
The special situation of Mono is very interesting. We are working on Mono research to reduce development costs, and a very good fund has been put in and submitted to ECMA. Now, many other groups have recognized the strength of Mono, and with their generous service, we are developing Mono runtime and development tools to improve productivity.
In fact, the team that is currently engaged in Mono in Ximian is the team that used to lay the groundwork for the rest of the company's careers.
Dare Obasanjo:Few people may know that you have ever talked to Microsoft about developing an Internet Explorer SPARC port. Given your current impact in the free software world, do you ever imagine what it would be like if you had joined Microsoft?
Miguel de Icaza:I didn't think much of it, but I did ask every person I visited at Microsoft to open the Internet Explorer source code before the public Netscape Communicator.
Dare Obasanjo ( is a senior student at the Georgia Institute of Technology (Georgia Institute of Technology) who is working on a bachelor's degree in Computer Science Engineering. In his spare time, he has published articles in many online forums, such as Slashdot, Kuro5hin and Advogato, and has written many articles about programming and software. He has been an intern at several companies, including Radiant Systems, I2 Technologies and Microsoft. At the moment he is preparing his thesis defense, and after completing his studies at Georgia Polytechnic, he is most likely to go to Redmond.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.