Skip to content

Instantly share code, notes, and snippets.

@dsplaisted
Last active August 29, 2015 14:00
Show Gist options
  • Save dsplaisted/11199894 to your computer and use it in GitHub Desktop.
Save dsplaisted/11199894 to your computer and use it in GitHub Desktop.
Miguel de Icaza answers questions on the .NET Foundation, Moonlight, and OSS licensing

Miguel de Icaza answers questions on the .NET Foundation, Moonlight, and OSS licensing

Source: .NET Community & Open Source discussion at Build 2014.

17:15

Q: What would the .NET Foundation look like if it’s successful in one or two years?

Miguel: I think that what we want is to energize the existing .NET community. So there’s a lot of .NET developers. We want to talk about things, we want to energize them. We want to create a very healthy ecosystem around the .NET platform, and Mono of course, of software that people use.

I personally want to see this succeed to the same extent that the Apache Foundation has where they created a very fertile soil for people to have a place to contribute code, a place to discuss ideas, a place to evolve these APIs. I mean, I don’t know if you realize, but people don’t typically discuss the future of Java within the Java community process. There was certainly some of that. But it tends to happen now that it’s kind of the Apache Foundation that has taken on that role.

So for me, a successful .NET Foundation doesn’t really need to define what happens to the core of .NET. I think the core of .NET, which is shared with Mono, is pretty good, give or take a few classes like the Process class which is a disaster.

?: What?!

Miguel: System.Diagnostics, beginning with the namespace. Who puts the Process class in System.Diagnostics? It makes no sense. There’s value, but who designed the thing? The Process class raises events for standard input and output- it makes no sense!

Anyways, give or take a few of these things, in general it’s a fantastic design. With a couple exceptions like this one, it’s a fantastic design. So in my opinion I don’t think that we really need to design the future of the .NET class libraries themselves but the ecosystem that has built around it. So distributed computing, all the stuff that’s happening. I mean Azure of course is huge. But it’s all being planned within Microsoft. I wonder, can we create the next wave of things like the agent technology that was announced recently and all these things in the foundation. Can we make this a fertile soil for experimentation, a welcoming place for third-party devs?

Because there’s been a history with .NET where people didn’t really jump into improving .NET because they were afraid that “well, Microsoft is going to come up with some alternative”- which is still possible. But we need to create an environment where anybody can just come in, the ideas can flourish, and maybe some of these things will become parts of the product. And maybe they won’t. But we want to create that thing, and I think that spirit of community and that spirit of advancing .NET has been missing for a plurality of reasons. And there’s an opportunity to fix it. There’s the will to change this, and there’s the will of making this all very fertile. So that’s my opinion.

21:50

Q: Carlos asks, what about Moonlight, the open source version of Silverlight, around having that join the .NET Foundation?

Miguel: So, a couple of things about Moonlight. The major… Moonlight has a problem. And I think it was a mistake and it took us too long to realize the big mistake. Moonlight is implemented in the worst possible language. C++. And it’s a colossal unmitigated disaster. And here’s the problem. I did not trust my instinct. I believed the hype. So we implemented the C++ core and then we put C# on top of it. And people on my team said the reasons… I can go into the reasons, they’re very boring. But we had what we thought were valid reasons and my team said: Those are bad reasons. Let the garbage collector do the job. And we said, no, no, this sounds like a valid reason. And we went with the stupidest approach, which is to use C++.

So that was an unmitigated disaster. So I would not start… first off, Moonlight, the IP is owned by Novell. We can talk Novell into putting it there. But it is a foundation that is sadly hampered. It’s a tainted foundation. I wouldn’t want to touch it. I learned my lesson. And one day I’ll write a big blog post about all the technical reasons because they’re very interesting. But everything that we thought we were going to get out of C++ came back to bite us back. And it’s very painful. So it’s a code base, there’s lessons to learn from it. There’s definitely all the drawing, optimizations for drawing are good, but it needs to be… if somebody cares about it, they would need to rewrite it completely in C#.

Nowadays I think that on the Web it’s pretty clear that what you want is HTML. There’s really very little space for plug-ins and there’s perhaps one exception I can think of: Native Client. But it’s for very specific workloads. I don’t think you want to bet on Silverlight. Now the engine might be useful in other scenarios but I’m struggling right now in this world of a very strong iOS, a very strong Android, a very strong Windows Runtime, to bringing this set of APIs. I don’t know that they help very much. So that’s my 400 words on the subject.

29:50

Q: Jeremy Bell asks Miguel, would you ever consider relicensing the Mono runtime under Apache 2 and submit it to the Foundation?

Miguel: Well, we currently don’t have plans. And the reason is our entire business is built on the idea that here’s LGPL2. If you want to abide by the rules of free software, you can use it. You need to publish the source, relinkability, all these things. And in particular it’s incompatible with the app stores, so we’re actually quite happy because we also relicense it for commercial use. So our entire business is based on that.

I’m a big open source guy and I tried to make open source work for many years. But it’s very difficult, it’s a very difficult business to try to make money on purely open source software. So we open source some things under Apache 2 when it makes sense, and we keep things under, in this broad license case I think we’ve maximized what we give back to the world and what we keep to ourselves. So at this point we don’t have any intentions to do that.

But we’ll be happy to negotiate a license with you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment