Welcome!

Microsoft Cloud Authors: Yeshim Deniz, Janakiram MSV, Andreas Grabner, Stackify Blog, Liz McMillan

Related Topics: Microsoft Cloud, Linux Containers, Eclipse

Microsoft Cloud: Article

Linux - Mono - .NET: An Exclusive SYS-CON.TV Interview With Miguel de Icaza

Mono is the leading non-Microsoft implementation of the Common Language Infrastructure (CLI) specification

Mono is the leading non-Microsoft implementation of the Common Language Infrastructure (CLI) specification. The CLI is the foundation of .NET. Because Mono runs on a number of platforms, it is the main choice today for people who want to run .NET applications on non-Microsoft platforms such as Linux.

 .NETDJ's editor in chief recently interviewed Mono's creator, Miguel de Icaza,  directly at the Microsoft headquarters in Redmond, Washington!

.NETDJ: How did Mono come about?

MI: I have been working on open source for a very long time. I don't remember exactly how long - maybe since 1992. The genesis of Mono lay in the creation of the Gimp project, which was intended to bring usability to Linux. This was around 1997.

Mono was initially a response to all of the needs that we saw in trying to implement our desktop software. Today Mono has morphed into its own thing. It is still all about a desire to make Linux successful on the desktop.

.NETDJ: How will Mono make Linux successful on the desktop?

MI: With the Gimp project, we were coming from a background where we were building applications using C. We had a strong feeling that we really wanted to raise the programming level so that developers wouldn't need to bother about things like allocating their own memory. In figuring out how to raise the language level, we really wanted to be language agnostic.

.NETDJ: How did you think you could manage that in 1997?

MI: We tried two different directions. First, we did language bindings so that every time we created an API we would bind those to it in all of our supported programming languages. We had this idea that a platform shouldn't mandate the languages people have to use in order to leverage it.

The other approach was that - as we wrapped large APIs (course APIs) - we tried to define them using CORBA IDL. There was CORBA support available for a bunch of different languages so, by exposing our APIs via CORBA, we were able to support a bunch of different languages.

.NETDJ: What was wrong with that approach?

MI: The problem with the CORBA approach was that -- while CORBA is very good for course-grained interfaces - it is not very good for fine-grained interfaces.

The problem with the other approach was that doing manual bindings was very cumbersome. If we stayed with the manual language bindings approach, an API introduced today wouldn't be available on all supported languages for six months!

.NETDJ: So, how did this lead to Mono?

MI: We had just completed an application called Evolution (very similar to Outlook), that was completely written in C and which used a lot of CORBA. During development we found that it was extremely painful to debug a multithreaded process using C and CORBA.

As we were about ready to ship version 1.0 of Evolution, we wanted to see what we could do to improve our process for its next version. This was about when Microsoft came out with .NET and Microsoft had put a lot of focus on making sure that their platform would work with multiple languages. They had actually gone through the time and trouble of writing down everything that people needed to do in order to have full language interoperability.

.NETDJ: In what ways did you feel that .NET could help your development process at that point?

MI: The major thing that we felt would bring productivity to our development efforts was its automatic garbage collection and support for multithreading. Beyond basic support for multithreading, most of the indigenous .NET APIs were meant for multithreading, unlike the other platforms we had tried.

There were also a couple of cute things like properties and events, which turn out to be very useful for user interface developers.

C# as a language had a very fun feeling - like Java, but with some additional features.

.NETDJ: Why didn't you just develop on Microsoft's existing implementation of .NET?

MI: We needed this thing on Linux, so we couldn't do that.

.NETDJ: Why not Java, then?

MI: Java was almost there, but it always felt as though there were things missing - C# had these!

Also, if you are going to build completely open source software, there are some distribution complications inherent in using Java.

.NETDJ: Once you decided to build an open source implementation of .NET, how did it progress?

MI: The first six months were the most interesting because a lot of projects die just in this initial proposal phase. People have good intentions but they don't have the time or the skills needed to get the work done.

We needed to get at least the basics done so that we could involve a larger community, but the responsibility fell mostly on Ximian. One of our groups started building an interpreter for CIL. This team worked 100 percent on Linux. They began, of course, by building everything necessary to interpret the standard "Hello World" application.

Our other group (which was at the time just me, and then a friend of mine named Raj) started working on a C# compiler. Our intention was to get the C# compiler to compile itself - "bootstrapping," it's called. This group worked mostly on Windows.

Once we got the compiler to compile itself, the guys on Linux were almost ready to run our stuff. In fact, they finished a little early, so they started building out some additional class libraries.

After approximately the first nine months, other people started contributing. Some people did the ADO.NET stack, and a lot of different people did database providers, which is why Mono has so many providers even today.

.NETDJ: Did you keep all of those initial bits, then?

MI: Historically we have had to go back to scratch on some things - like the XML portion. One of the lessons we learned from this process is that it was much better to write our tests first so that we had something to measure against and to see if we had introduced a regression error. Today, we require test cases for all fixes and bugs that are submitted. Currently we have about 60,000 tests for Mono.

.NETDJ: How did you wind up getting together with Novell?

MI: That was actually really interesting. It turns out that they were interested in three things from Ximian. First, we had this desktop product called Evolution.

Second, when we first started building Evolution, Linux didn't have an install system. So, we had had to develop one in order to properly distribute Evolution. This actually became one of the most important products for Linux, called Red Carpet. Novell was probably most interested in this because they wanted to enter the Linux market with their own suite of desktop applications.

We were having engineering meetings about this with them and - because they were doing their due diligence - it turned out that a couple of their products (particularly iFolder, a product for doing desktop file synchronization) were starting to use .NET. They really wanted to continue using .NET, but also wanted to offer these products on Linux. So, the people who were doing due diligence on Ximian got really excited about Mono, and that was the third thing in which they were interested.

It was basically a pretty good match between our two companies. After our acquisition, our team of about six people grew into 20.

More Stories By Derek Ferguson

Derek Ferguson, founding editor and editor-in-chief of .Net Developer's Journal, is a noted technology expert and former Microsoft MVP.

Comments (1) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
.NET Developer's Journal News Desk 10/20/05 09:17:14 PM EDT

Linux - Mono - .NET: An Exclusive SYS-CON.TV Interview With Miguel de Icaza. Mono is the leading non-Microsoft implementation of the Common Language Infrastructure (CLI) specification. The CLI is the foundation of .NET. Because Mono runs on a number of platforms, it is the main choice today for people who want to run .NET applications on non-Microsoft platforms such as Linux.

@ThingsExpo Stories
"We provide IoT solutions. We provide the most compatible solutions for many applications. Our solutions are industry agnostic and also protocol agnostic," explained Richard Han, Head of Sales and Marketing and Engineering at Systena America, in this SYS-CON.tv interview at @ThingsExpo, held June 6-8, 2017, at the Javits Center in New York City, NY.
"We've been engaging with a lot of customers including Panasonic, we've been involved with Cisco and now we're working with the U.S. government - the Department of Homeland Security," explained Peter Jung, Chief Product Officer at Pulzze Systems, in this SYS-CON.tv interview at @ThingsExpo, held June 6-8, 2017, at the Javits Center in New York City, NY.
SYS-CON Events announced today that Calligo, an innovative cloud service provider offering mid-sized companies the highest levels of data privacy and security, has been named "Bronze Sponsor" of SYS-CON's 21st International Cloud Expo ®, which will take place on Oct 31 - Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Calligo offers unparalleled application performance guarantees, commercial flexibility and a personalised support service from its globally located cloud plat...
Internet of @ThingsExpo, taking place October 31 - November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA, is co-located with 21st Cloud Expo and will feature technical sessions from a rock star conference faculty and the leading industry players in the world. The Internet of Things (IoT) is the most profound change in personal and enterprise IT since the creation of the Worldwide Web more than 20 years ago. All major researchers estimate there will be tens of billions devic...
"The Striim platform is a full end-to-end streaming integration and analytics platform that is middleware that covers a lot of different use cases," explained Steve Wilkes, Founder and CTO at Striim, in this SYS-CON.tv interview at 20th Cloud Expo, held June 6-8, 2017, at the Javits Center in New York City, NY.
SYS-CON Events announced today that DXWorldExpo has been named “Global Sponsor” of SYS-CON's 21st International Cloud Expo, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Digital Transformation is the key issue driving the global enterprise IT business. Digital Transformation is most prominent among Global 2000 enterprises and government institutions.
SYS-CON Events announced today that Datera, that offers a radically new data management architecture, has been named "Exhibitor" of SYS-CON's 21st International Cloud Expo ®, which will take place on Oct 31 - Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Datera is transforming the traditional datacenter model through modern cloud simplicity. The technology industry is at another major inflection point. The rise of mobile, the Internet of Things, data storage and Big...
"We are focused on SAP running in the clouds, to make this super easy because we believe in the tremendous value of those powerful worlds - SAP and the cloud," explained Frank Stienhans, CTO of Ocean9, Inc., in this SYS-CON.tv interview at 20th Cloud Expo, held June 6-8, 2017, at the Javits Center in New York City, NY.
DX World EXPO, LLC., a Lighthouse Point, Florida-based startup trade show producer and the creator of "DXWorldEXPO® - Digital Transformation Conference & Expo" has announced its executive management team. The team is headed by Levent Selamoglu, who has been named CEO. "Now is the time for a truly global DX event, to bring together the leading minds from the technology world in a conversation about Digital Transformation," he said in making the announcement.
"MobiDev is a Ukraine-based software development company. We do mobile development, and we're specialists in that. But we do full stack software development for entrepreneurs, for emerging companies, and for enterprise ventures," explained Alan Winters, U.S. Head of Business Development at MobiDev, in this SYS-CON.tv interview at 20th Cloud Expo, held June 6-8, 2017, at the Javits Center in New York City, NY.
While the focus and objectives of IoT initiatives are many and diverse, they all share a few common attributes, and one of those is the network. Commonly, that network includes the Internet, over which there isn't any real control for performance and availability. Or is there? The current state of the art for Big Data analytics, as applied to network telemetry, offers new opportunities for improving and assuring operational integrity. In his session at @ThingsExpo, Jim Frey, Vice President of S...
SYS-CON Events announced today that DXWorldExpo has been named “Global Sponsor” of SYS-CON's 21st International Cloud Expo, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Digital Transformation is the key issue driving the global enterprise IT business. Digital Transformation is most prominent among Global 2000 enterprises and government institutions.
In his opening keynote at 20th Cloud Expo, Michael Maximilien, Research Scientist, Architect, and Engineer at IBM, discussed the full potential of the cloud and social data requires artificial intelligence. By mixing Cloud Foundry and the rich set of Watson services, IBM's Bluemix is the best cloud operating system for enterprises today, providing rapid development and deployment of applications that can take advantage of the rich catalog of Watson services to help drive insights from the vast t...
SYS-CON Events announced today that EnterpriseTech has been named “Media Sponsor” of SYS-CON's 21st International Cloud Expo, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. EnterpriseTech is a professional resource for news and intelligence covering the migration of high-end technologies into the enterprise and business-IT industry, with a special focus on high-tech solutions in new product development, workload management, increased effic...
SYS-CON Events announced today that Massive Networks, that helps your business operate seamlessly with fast, reliable, and secure internet and network solutions, has been named "Exhibitor" of SYS-CON's 21st International Cloud Expo ®, which will take place on Oct 31 - Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. As a premier telecommunications provider, Massive Networks is headquartered out of Louisville, Colorado. With years of experience under their belt, their team of...
SYS-CON Events announced today that Cloud Academy named "Bronze Sponsor" of 21st International Cloud Expo which will take place October 31 - November 2, 2017 at the Santa Clara Convention Center in Santa Clara, CA. Cloud Academy is the industry’s most innovative, vendor-neutral cloud technology training platform. Cloud Academy provides continuous learning solutions for individuals and enterprise teams for Amazon Web Services, Microsoft Azure, Google Cloud Platform, and the most popular cloud com...
SYS-CON Events announced today that Cloudistics, an on-premises cloud computing company, has been named “Bronze Sponsor” of SYS-CON's 21st International Cloud Expo, which will take place on Oct 31 - Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Cloudistics delivers a complete public cloud experience with composable on-premises infrastructures to medium and large enterprises. Its software-defined technology natively converges network, storage, compute, virtualization, and ...
SYS-CON Events announced today that CHEETAH Training & Innovation will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place on Oct. 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. CHEETAH Training & Innovation is a cloud consulting and IT training firm specializing in improving clients cloud strategies and infrastructures for medium to large companies.
SYS-CON Events announced today that Datanami has been named “Media Sponsor” of SYS-CON's 21st International Cloud Expo, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Datanami is a communication channel dedicated to providing insight, analysis and up-to-the-minute information about emerging trends and solutions in Big Data. The publication sheds light on all cutting-edge technologies including networking, storage and applications, and thei...
The current age of digital transformation means that IT organizations must adapt their toolset to cover all digital experiences, beyond just the end users’. Today’s businesses can no longer focus solely on the digital interactions they manage with employees or customers; they must now contend with non-traditional factors. Whether it's the power of brand to make or break a company, the need to monitor across all locations 24/7, or the ability to proactively resolve issues, companies must adapt to...