Where did the Microsoft Tech Stack disappear?

Did you hear about stackshare? It’s a pretty neat website that I recently discovered. The idea is that you can search for any tech company, and see their technology stack. For example, here is Airbnb’s:

Airbnb tech stack

So the first interesting thing that came to mind was checking out what the most successful startups are using. I used this list of “successful startups”, in addition to angel.co startup database. After looking at about 100 startups, I ended up with data from 23.

Focusing on back-end technology, this is the result:

startup back-end technology chart

I didn’t include PHP because there were a lot of startups that had nothing but PHP and Apache Server. That’s partly why I looked at 100 startups and ended up with 23. Startups with just PHP are probably e-commerce websites or non-software at all. You can see the raw data spreadsheet here.

That chart surprised me in a few ways. For example, I didn’t expect the great popularity of Ruby. But mostly, being a .NET developer, it was discouraging browsing through those endless startup companies and never seeing C#, .NET, Asp.NET, Xamarin or SqlServer. Eventually, I was able to find a company (Vungle) with a .NET element, but their stack was so crowded that it might have been used for some minor part for all I know.

There were other interesting things in the data. For example,  nginxReactPostgreSQLBackbone.js, Kafka, and Redis turned out to be very popular.

As for the lack of Microsoft technologies, I heard that .NET weren’t too popular with startups but never thought things were that bad.

Maybe it would be more popular with software giants like Uber, Dropbox, and Shopify? That’s pretty easy to check with stackshare.

Software giants

I looked at all the big tech companies I know, that aren’t creating their own dev tools. The final list had 22 companies. including Dropbox, Uber, Stack Overflow, eBay, Shopify,  Stripe, PayPal, and Netflix. Here is the result:

software giants back-end technology chart

The raw data spreadsheet is here.

This paints a pretty similar picture to the startup chart.  Java, Go and Python are a bit more popular and Ruby is a bit less popular in comparison. A single company used Microsoft tech: The ever-helpful Stack Overflow.

Figuring out the mystery of the missing tech stack

JetBrains survey of 2018 and StackOverflow developer survey of 2018 show that C# is the 4th most popular language after JavaScript, Java, Python and possibly PHP. So C# is definitely widely used, but where?

Looking at the Software Giants list again, I realized all these companies were initially software startups. And as already established, startups don’t much use .NET.

So if startups and software giants don’t use .NET, who does? The answer that comes to mind is Enterprises that aren’t software companies.

That means companies whose primary product is not software. Or wasn’t initially. These can be Banks that need websites and trading platforms. These can be hardware companies that require Command-and-Control applications. Various government and military branches that need all kinds of software solutions.

Any corporation nowadays needs a software solution. These corporations are willing to spend money on more expensive technology and feel more “at ease” with a big company like Microsoft backing it. This is very much In contrast to open source technology that won’t give support to the big clients in the way they would want.

Will .NET ever become popular with startups?

I think Microsoft realized the future lies in the cloud. The money will not come from selling Visual Studio licenses or SqlServer. The big money is in the compute time sold on Azure. This means it’s in Microsoft’s interest to make tools cheaper. Cheap tools will attract more customers which will end up spending even more money on Azure.

Microsoft is making big efforts to make their tech stack more accessible to startups and small companies.

  • Visual Studio is now free for small development teams in the form of VS Community.
  • With the development of .NET Core, you can develop in .NET and deploy on cheap Linux servers. This should make a huge difference in my opinion.
  • Microsoft is investing a great deal to get closer to open-source culture. In addition to actually acquiring GitHub,  Microsoft is now the biggest contributor in GitHub.
  • Microsoft has special programs for startups, which will give free licenses and Azure credit to encourage startups to get started.

I don’t know how much any of that will help. There’s a great deal of existing startup culture, which needs a good enough reason to change.

This brings up the question if .NET brings any advantages to startups, say over Ruby or Node.js. My personal point of view is definitely. But that’s an issue for another blog post.


Enjoy the blog? I would love you to subscribe! Performance Optimizations in C#: 10 Best Practices (exclusive article)

Want to become an expert problem fixer? Check out a chapter from my book Practical Debugging for .NET Developers

13 thoughts on “Where did the Microsoft Tech Stack disappear?”

  1. I think part of the problem with .Net in many people’s perceptions is the fact that it’s joined at the hip with the Windows platform.

    I’m not so naive as to suggest that Windows isn’t a HUGE player in the server platform space – it definitely is. (Ask anyone in a small to mid size bank) but it’s not clear to me that many start-ups would choose Windows Server as their OS of choice.

    I realize there’s Mono and the like, but I don’t know how well suppored that is by Microsoft’s tooling.

    1. @feoh for any greenfield software dev – AKA whatever any startup would be doing – there’s virtually no reason to not use the cross-platform .NET stack components or to be deploying to the cloud which heavily abstracts OS choice anyway.

      Mono isn’t really relevant for many use cases but Core 2.0 + is extremely mature and performant, with a ton of support for the majority of front end web tools that you’d need. SQL Server runs on linux, etc. etc.

    2. The Windows argument is irrelevant these days. .NET Core runs on Linux and is officially supported by Microsoft. It is also maturing so unlike 2 years ago it is now reasonable to base your project on .NET Core

    3. That hasn’t been the case since .NET Core (which is currently at 2.1) shipped. It’s just as native to Linux and OS X as it is to Windows – and not an OS component on any of them, but rather more like Java.

  2. The problem is pricing of Visual Studio. All the nice developer things are reserved for Enterprise version which costs around 3k USD per year so basically the new features are behind a paywall.

    I bought into Xamarin few years ago and when MS bought them I lost access to Xamarin profiler – it is only included in Enterprise version and I have VS Pro. Memory dump debugging also became Enterprise only – you now easily get dump, but you can’t use the VS anymore. So if you want to write code – MS is acceptable, but if you want to write quality code – it will cost you a lot, too much for most of the teams.

    I would choose any other stack which is supported by the Jetbrains IDE,
    because even now VS editor is just a glorified Notepad compared to Jetbrains Rider or VS+Resharper.

  3. All the more popular languages and complementary tools (Ubuntu/Rails/NodeJS/Python/PostgreSQL) are free, which is a huge issue for early stage startups. You don’t want to spend your first month forking over money for MS SQL Server or Visual Studio or Windows.

    Also, most engineers I know absolutely hate working on Windows so have traditionally avoided the .NET tools as a result. That has obviously changed recently, but unless .NET starts offering something that you don’t get with Rails/Python/NodeJS I don’t see things changing.

  4. It’s always been about price and licensing. I have no idea how much it currently costs to run MSSQL server as your database but it used to (late 90s) cost thousands in licensing fees for multiple environments (dev, staging, production, etc) Then don’t forget about the licensing for VS, all your server operating systems, etc, the constant fear of being noncompliant and getting hit with some mega bill…who needs all that when you could download a linux ISO burn a CD and be off to the races writing PHP, Perl, MySql, etc. Since then obviously PHP and Perl have been supplanted with things like Python and Ruby but the song remains the same.

  5. It is practically impossible to get any support from Microsoft if you are a startup. So we had to leave azure for aws for that reason.

  6. I spent 10+ years working on the MS stack before switching to the open source world. While C# is a great language it is the tooling around the MS stack that is the biggest problem. Apart from the expense the licencing, things like Enterprise Manager, VS and the Windows environment itself are just clunky, hard to use and offer very poor value for money in comparison to their open source alternatives.

    This is an opinion, but one coming from years of experience; IIS is a complete disaster in comparison to Apache and NGINX and should have been discontinued years ago; SQL Server Enterprise Manager would still be garbage if it was free but the fact it costs money is baffling.

    I think the terseness of languages like Python and Ruby also play a big role in attracting developers and start-ups too. Just a an anecdotal stat but I generally find I can implement the same functionality with about 70% less code in Python than in .net. Also the stack is really heavy, it’s freaking huge, to have Windows + SQLServer + VS is unnecessarily massive, is difficult to provision, almost impossible to reliably automate.

    That being said Microsoft is making huge strides in getting rid of its technical debt and attracting developers back. But it doesn’t offer anything that is more compelling than it’s competitors and also has a reputation and history of being terrible so it’s an uphill battle.

    I could go on, but judging by the numbers above many people have come to the same conclusions as me over time.

    1. Thanks for commenting James. I’d like to give some counter argument to you and others why .NET would actually be a great choice for a startup.

      1. As far as money to start with tools is concerned, as a startup you can start for free with VS community. When you go beyond 5 developers, Microsoft will help you to get free initial licenses. That will eventually stop, but even then, all the tools combined are negligible in comparison to programmer salaries (If you still work out of your garage after 2 years, you’re probably not going to make it anyway)
      2. You don’t have to work with SQL Server. .NET works great with post PostgreSQL and MongoDB.
      3. It’s true that you’ll have to write much less code initially with Python or Ruby. However, the dynamic nature of the languages will make your system un-maintainable without a ton of tests. Refactoring also becomes exponentially harder. C# and Java are better for a large code base, which you will inevitable reach.
      4. .NET Core is now an excellent choice to avoid Windows altogether. You’ll probably have to keep developing on Windows to use Visual Studio, but deploy on Linux.

  7. Why all the talk about Windows server and SQL Licenses, hopefully if you build a startup today you wouldn’t use a tech stack from 2010. You would probably be all cloud, and in the cloud you can pick any PaaS/SaaS product you want, for a long time startsups have defacto selected AWS, which is why there is no MS stack in any of the startups. It seems that Microsoft is finally winning some startups over to Azure, but they have been really slow at that, probably justified because why focus on startups, when you have enterprise customers with a lot of money that is also interested in the cloud, it is a lot safer to appeal to them than startsups where 1 out of 100 goes big.

Comments are closed.