How NodeJS Is Dominating .NET in 3 Easy Charts
OK I have to admit my title to this article is my first attempt at click bait. Hey, I’m learning my new toy here, what can I say? But, I think what you’ll find in this article will be of value to you if you are a .NET developer (or an application or web developer with any sort of business acumen).
In this article, I am going to put a little more thought into a concept that have touched on and by accounts have assumed readers might already understand. I am going to dive into it a little more to make sure that I have this stated and also provide an opportunity for those to offer their feedback (welcomed — as always!) to correct any assumptions (to assume does indeed make an “ass of u and me” — but mostly me in this case) that I have.
In doing so, I hope this will help others understand the driving business force and factors for Microsoft to provide a ubiquitous .NET client application development model offering.
Platform Market Reach
To start with, I am going to give an overview of the big three players: Microsoft (around which my 15-year career and consequently this blog is built around), Apple, and Google. Here I have made a chart with the awesome amCharts showing the three platforms as they currently stand to my knowledge in the marketplace:
First, if you are wondering about the colors, I attempted to find a color from each store’s logo and use it accordingly.
Secondly (and more importantly), how did I get these numbers? To be fair, they are all guestimates. I do not have the quoted $6-10k (!) required from NetMarketShare to get exact numbers that an analyst will have to work a few weeks to figure out. However, I can extrapolate from data that I have seen around the interwebs. To start with, if Apple currently has 1 billion active devices, and Apple has ~33% of the market, that means if Droid has ~59% of the market, then Google Play has around 1.7 billion devices. Additionally, if Windows 10 has 200 million installs, and Windows 10 has ~12% of the market, then I can extrapolate the numbers for Windows 7 at ~52% (885.5 million – !), Windows 8 at ~3% (45 million) and Windows 8.1 at ~10% (175.5 million).
Make sense? Please let me know in the comments below if I am way off base here in some way and I will adjust accordingly.
Native-Hosted Technology Reach
With our platform market reach ascertained, we can start to break down the relevant different technologies available to .NET developers, and see how they stack up. I will start first by way of native-hosted client application technologies. These are technologies that are run within a host of a native platform process (like a store or OS). For a .NET developer, the following options are available to them:
- Universal Windows Platform (Windows Store-capable OS’s, so Windows 8+)
- Windows Presentation Foundation (.NET 4.5+, so Windows 7+)
- Xamarin.iOS (Apple Store)
- Xamarin.Android (Google Play)
- Xamarin.Forms (Windows Store, Apple Store, Google Play)
- NodeJS with Cordova (Windows Store, Apple Store, Google Play)
From the looks of this, a .NET developer might be tempted to go with Xamarin.Forms, which is understandable. However, as we can see, NodeJS gets as much reach as Xamarin.Forms. Let’s also remember that from an ISV perspective, Xamarin.Forms is a 3rd-party product and not a first-class promoted and supported technology like UWP is. Additionally, we also have a very significant scenario to consider: web-hosted applications.
Web-Hosted Technology Reach
Now I am going to take the same technologies available to .NET developers as listed above and chart them out as they are available to web-hosted application development. In this case, a web-hosted application is an application that lives within a web-host — or to be more precise, an HTML5-compliant browser.
Notice something? Not a single available recommended .NET technology offering works within a web-hosted environment with the exception of NodeJS — which is not even a Microsoft technology! In fact, instead of creating a competitive .NET model to NodeJS, Microsoft leadership is inexplicably pushing its developers to use NodeJS on the client and .NET on the server, which will only create costly and inefficient solutions — which in turn will _eventually push every .NET developer to NodeJS!_ Well, those who care about writing cost-effective and efficient solutions, that is.
To wrap up here, NodeJS:
- Works in Native-hosted application scenarios (via Cordova), reaching over approximately 3 billion devices.
- Works in Web-hosted application scenarios, again reaching over approximately 3 billion devices and workstations.
- Works in server-process-hosted scenarios and therefore (most importantly)
- Saves money and resources by allowing code reuse between server and client, preserving encapsulation and honoring DRY.
It is no wonder that .NET developers are starting to gravitate over to NodeJS and ditching .NET altogether. I personally have to be honest here and say that the more I talk about this subject, the more I am convincing myself to do the exact same thing! However, it is hard to give up 15 years of investment (I still have faith!), and that is why I am promoting the following vote.
Show Your Support
If you like the idea of a ubiquitous .NET client application development model offering from Microsoft, please take the time and let Microsoft know by voting for this idea on UserVoice by clicking the pretty button here and voting on the issue there:
Thank you all as always for reading, your feedback, and support!