I built a company on a .net stack a long time ago; it was fine. The biggest problem is SQL Server used to cost a lot of money and was kind of a waste in the face of postgres. As far as the programming ecosystem; C# as a language is great, but so much of the standard library and 3rd party libraries are old and crusty. Some were legitimately great though, like Dapper for talking to the DB, and ASP.net MVC was a decent web framework.
Yup. Licensing cost is the elephant in the room here. SQL Server, Windows Server itself, IIS, it all adds up pretty quick, and if you’re running a startup, paying for such licenses at scale is maybe not so attractive.
Exactly. Its unclear why you’d pay for SQLServer and IIS when postgresql and apache or nginix cost nothing to license. Many people would argue that the latter are superior anyway. There are plenty of companies that will provide paid support for those products too.
The .NET stack never existed as a viable platform for the popular/consumer startups. That said, there have been many “startups” in industries aligned with the enterprise that have been very successful with .NET. You just don’t hear about them because their value proposition was very different, and they weren’t a startup in the same way. Azure and modern .NET are trying to change things, but I think the former makes the biggest difference.
Yes, those types of “startups” are usually started by insiders in some vertical industry and exist in the funding, sales, and recruiting ecosystem for that industry. They never really touch the Silicon Vally / Tech startup funding and recruiting ecosystem.
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.
Currently it lacks ecosystem badly. Over its history, almost everything in .NET world was exclusively made by Microsoft. Java has Apache Software Foundation and Spring, which are attractive to startups. .NET basically has only Weblogic/Websphere-like stuff. Even its build system (msbuild) is based on scary Visual Studio xml stuff which is hard to manage without Visual Studio GUI (there is better tooling on top of this from F# community such as Paket).
.NET/Mono is, however, became popular in indie gamedev because of Monogame (based on Microsoft’s XNA framework) and, later, Unity.
C# language is also not so attractive, being basically slightly better Java but still Java. F# might be more attractive than Scala, though, but it lacks ad-hoc polymorphism and has weird mix of OO and non-OO (only OO part of language has interfaces), I didn’t find this language very pleasant.
There’s probably some missing evidence here.
He’s not looking at all startups, he’s looking at successful startups.
It’s unlikely that startups never choose .NET considering it’s large developer base.
It’s more likely that startups who choose .NET fail.
I think we could all speculate on the reason.
“Startups with just PHP are probably e-commerce websites or non-software at all. “
It’s definitely not fair to dismiss PHP like this.
Microsoft’s perceived lack of clarity in the roadmap (.NET Standard, .NET Core, .NET Framework, etc) and history of killing off or deprecating frameworks (Silverlight, Winforms, should I use WPF or UWP?) are a couple more reasons why startups don’t turn to .NET. Add what others have mentioned, the closed source and history of high cost, the lack of ecosystem, and the long history of being actively against open source and copyleft licenses, and Microsoft just doesn’t look like a startup choice. Microsoft was also relatively late as a cloud computing choice. Maybe something will emerge from their Bizspark program and their open source efforts to change their perceived position.
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.
I wonder if this is reasonable to exclude PHP? I could see the point of excluding it because there’s a Wordpress blog hanging off the domain or if, as the author states, an e-commerce startup kicked things off with Magento or the like. On the other hand, is PHP just being excluded because, well, PHP?
I read it as the author saying that they couldn’t distinguish between shops using PHP for a webshop/CMS and doing new software development with it, so it was excluded from the analysis.
I think with the .NET Standard and more streamlined feature set across non-Windows environments, C# / .NET could be viable going forward. It has been a while since I last used it, but it could probably benefit from some basic CLI tools tailored for unix-like systems (considering a lot of those Ruby developers are sitting on Mac computers most likely and developing for Linux environments) - if C# already has this, even better.
I think a strong, multi-platform option in using VS Code for .NET programming might also open up the market. The biggest blocker is probably public perception coupled with the “MS tools first” history, meaning you can use nginx, Redis, Postgres and other tools, but SQL Server and IIS integration will work out of the box with ease.
I built a company on a .net stack a long time ago; it was fine. The biggest problem is SQL Server used to cost a lot of money and was kind of a waste in the face of postgres. As far as the programming ecosystem; C# as a language is great, but so much of the standard library and 3rd party libraries are old and crusty. Some were legitimately great though, like Dapper for talking to the DB, and ASP.net MVC was a decent web framework.
Yup. Licensing cost is the elephant in the room here. SQL Server, Windows Server itself, IIS, it all adds up pretty quick, and if you’re running a startup, paying for such licenses at scale is maybe not so attractive.
Exactly. Its unclear why you’d pay for SQLServer and IIS when postgresql and apache or nginix cost nothing to license. Many people would argue that the latter are superior anyway. There are plenty of companies that will provide paid support for those products too.
The .NET stack never existed as a viable platform for the popular/consumer startups. That said, there have been many “startups” in industries aligned with the enterprise that have been very successful with .NET. You just don’t hear about them because their value proposition was very different, and they weren’t a startup in the same way. Azure and modern .NET are trying to change things, but I think the former makes the biggest difference.
Yes, those types of “startups” are usually started by insiders in some vertical industry and exist in the funding, sales, and recruiting ecosystem for that industry. They never really touch the Silicon Vally / Tech startup funding and recruiting ecosystem.
Currently it lacks ecosystem badly. Over its history, almost everything in .NET world was exclusively made by Microsoft. Java has Apache Software Foundation and Spring, which are attractive to startups. .NET basically has only Weblogic/Websphere-like stuff. Even its build system (msbuild) is based on scary Visual Studio xml stuff which is hard to manage without Visual Studio GUI (there is better tooling on top of this from F# community such as Paket).
.NET/Mono is, however, became popular in indie gamedev because of Monogame (based on Microsoft’s XNA framework) and, later, Unity.
C# language is also not so attractive, being basically slightly better Java but still Java. F# might be more attractive than Scala, though, but it lacks ad-hoc polymorphism and has weird mix of OO and non-OO (only OO part of language has interfaces), I didn’t find this language very pleasant.
There’s probably some missing evidence here. He’s not looking at all startups, he’s looking at successful startups.
It’s unlikely that startups never choose .NET considering it’s large developer base. It’s more likely that startups who choose .NET fail. I think we could all speculate on the reason.
It’s definitely not fair to dismiss PHP like this.
Microsoft’s perceived lack of clarity in the roadmap (.NET Standard, .NET Core, .NET Framework, etc) and history of killing off or deprecating frameworks (Silverlight, Winforms, should I use WPF or UWP?) are a couple more reasons why startups don’t turn to .NET. Add what others have mentioned, the closed source and history of high cost, the lack of ecosystem, and the long history of being actively against open source and copyleft licenses, and Microsoft just doesn’t look like a startup choice. Microsoft was also relatively late as a cloud computing choice. Maybe something will emerge from their Bizspark program and their open source efforts to change their perceived position.
I wonder if this is reasonable to exclude PHP? I could see the point of excluding it because there’s a Wordpress blog hanging off the domain or if, as the author states, an e-commerce startup kicked things off with Magento or the like. On the other hand, is PHP just being excluded because, well, PHP?
I read it as the author saying that they couldn’t distinguish between shops using PHP for a webshop/CMS and doing new software development with it, so it was excluded from the analysis.
I think with the .NET Standard and more streamlined feature set across non-Windows environments, C# / .NET could be viable going forward. It has been a while since I last used it, but it could probably benefit from some basic CLI tools tailored for unix-like systems (considering a lot of those Ruby developers are sitting on Mac computers most likely and developing for Linux environments) - if C# already has this, even better.
I think a strong, multi-platform option in using VS Code for .NET programming might also open up the market. The biggest blocker is probably public perception coupled with the “MS tools first” history, meaning you can use nginx, Redis, Postgres and other tools, but SQL Server and IIS integration will work out of the box with ease.