IMHO: My .NET Bets

Let us re-visit this section in one or two years (2018) ;). These are my guesses where the journey goes.

#1: .NET Native will go WebAssembly

The last frontier .NET Core cannot reach as of 2016 is the web browser. After all browser vendors have banished plugins, the only programming option for them is JavaScript (or a transpilation to it).

Some years ago, it became clear that the current state of JavaScript and the Web Technology stack essentially is a very inexpensive virtual machine or container. As a consequence of the ever-improving JavaScript engines, a shared bytecode between all machines became inevitable. As a forerunner the asm.js concept laid the performance groundwork with the Emscripten project showing the compilation pipeline to LLVM based C++. Out of this foundation, the WebAssembly working group was established including all major browser vendors (Google, Mozilla, Apple and Microsoft). Early 2016 all vendors showed a shared demo, running a C++ Game in experimental mode of their browsers. WebAssembly has a bright future!

Considering that any JavaScript full stack competitor needs a story for the browser, the fact that Microsoft already has a ahead of time compilation story with .NET Native and a work in progress for LLVM my bet goes that .NET Native will support WebAssembly as a compilation target. They deny it so far but I think they will do it.

#2: Xamarin will switch to .NET Native

Hearing between the lines from presentations, the .NET Standard Library (that is the class library evolved from the .NET Core project) is going to be used for UWP, .NET Core and Xamarin. This leaves Xamarin in the state, that they have to switch their SDKs to the .NET Standard Library leaving only the runtime from the previous Mono involvement. My bet here is that Microsoft owned Xamarin will also exchange the runtime in favor of .NET Native to reduce the overall workload for the teams.

#3: Mono is dead

After Microsoft acquired Xamarin, they “own” all three big implementations of .NET: .NET Framework, .NET Core and Mono, with .NET Core invading all classic Mono markets. For sanity they will stop financing contributions to the Mono project. Since Xamarin was the major force behind Mono, this makes Mono a dead project.

#4: A client side development model for all devices

UWP and Xamarin will compete for the users. Xamarin.Forms already supports Android, iOS and Windows. UWP only Windows. On the long run, it would make more sense to only have one, similar what Cordova can offer with HTML.

I have no idea, how that will turn out, but there is a conflict here which need to be resolved.

#5: Other languages takeover Roslyn / Omnisharp concepts

The Roslyn compiler platform and its amazing support for dozens of editors via Omnisharp without any loss of quality is a inspiration for other programming platforms, especially for the new ones like Go and Rust. Maybe it already happened, but so far it is amazing how fast the OmniSharp project reached all major editors.