If anyone asked me about the future of .NET precisely a year ago, I’d surely answer that it’s as bright and shiny as possible. Constantly improving modern development language (C#), best IDE on the market (regardless of platform - Visual Studio). But a lot has happened within last 12 months, some cracks has appeared on this flawless image and they seem to widen more and more each month.
- First, Microsoft quietly and without clear statement has practically abandoned all their non-web native client technologies: WPF & Silverlight (WinForms is abandoned for a long time) - it was a very brave move, a consequence of clear bet on WinStore app development. Unfortunately, it didn’t "click" - even if Windows 8 is a commercial success (in terms of licenses sold), people use it just like previous version of Windows, declining the new Metro (aka Modern) UI (and pitiful selection of available apps).
- Second, new trends in IT market are barely present in Microsoft world - NoSQL, BigData, modern, functional languages conquer the world rapidly, but as they are majorly stimulated by Open Source community (and as we all know, this one is weaklish in .NET world), they barely exist on Microsoft Platform. Additionally, as Microsoft tends to fill some of these gaps by adding components to … MS SQL Server. From commercial point of view, it surely makes much sense, but I surely don’t want full SQL Server license if I am just for CEP (StreamInsight in Microsoft world).
- Third, Microsoft is barely present on mobile platforms. Windows Phone 7.x/8 is still a niche (I’ve got one for almost 3 yrs and there are just FEW applications worth mentioning on that platform - majority of them is just Andy/iOS app ports) and WinRT is even worse (well, it’s just 1 year old, but let me remain sceptilcal anyway).
Obviously Redmond is trying to save the day as hard as they can - their new focus on JavaScript tooling, hard efforts to bring Redis on Windows and cooperation with Hortonworks (on Hadoop's Windows port) are all welcome, but I believe that they are too late and far too few.
What then? Is Microsoft .NET already a burning platform, without clear roadmap and strong community support? Probably not - at least it’s not going to die in a short time, but if I were asked about platform with strongest potential in next few years, my answer would be JVM with its Scala/Clojure and Android for mobile platforms.