This post is a call to Xamarin and Microsoft to continue pushing further the fantastic movement of making .NET as a free, OSS and cross-platform ecosystem, not only for the core stack but also for the client stack.
More than 10 years ago, Microsoft started to work on .NET and we are here, with a great ecosystem that could even be more awesome! While making the C# language ECMA and releasing the Rotor source was a promising move from Microsoft, we quickly felt that it was in fact not enough, as we were still prisoner from a mono-centric-platform. Mono (!) and then Xamarin went into business with lots of love for C# to allow to use this ecosystem on other platforms. I’m deeply thankful because without their dedicated work, the development experience would be today quite a boring landscape… I was deligted when I learned last week about all the goodness Microsoft is going to put in .NET…
Still, and I know that Miguel is looking at this forum, as we have been already discussing indirectly about this, I would love to see an era where we don’t have anymore barriers in the adoption of .NET on all platforms, from Linux, Android, iOS, All Windows and consoles. Having .NET being backed by companies like Microsoft and Xamarin is great, but I would love to see a full .NET, OSS, free that will reach more communities, like academics for example, to see people experimenting ideas on language designs, JIT, native compilation, GC, performance… etc. I would love to see a community porting .NET to new platforms. I would love to see my company be more confident with .NET and to fully embrace this full .NET OSS, as we would be able to tweak the last things in the runtime to make their fear disappear about pricing, portability or performance issues… etc. Their are a tremendous amount of things that we could build more efficiently on top of .NET. Obviously, we all share lots of love for this environment, so let’s share the maximum of it so that we can improve it and build new products with great added value on top of it. Their are several examples in the industry, like LLVM/Clang, that strongly encourage this move for .NET
What to open, OSS, for free? Everything that is part of the core/client/full .NET, past and in development. See what is doing ASP.vnext, with pushing directly their commits to github, this is so delightful to see Microsoft taking this direction!
Let’s OSS .NET Native, the current JIT and RyuJIT… As discussed with someone from the .NET team, don’t wait to port the old JIT to RyuJIT, or cleanup the code, and make it open-source after, just release the source as soon as possible (in the state where it can be built easily), so that we can watch all commits coming inside, pull-requests and gets the full traction of an enthusiastic community that could bring some powerful additions.
What about some of the “old” techs like WinForms, WPF, Silverlight? Release them as well, we don’t care if it won’t work out-of-the-box on Linux. If some people are still interested in using these techs in some unexpected way, or on other platforms, let them go, contribute and innovate the way they feel!
Let’s make this dream real!