Back in 2005 when I started Loopt I went all in with Windows Server, .NET, and SQL Server. I already knew the tooling[1]. No regrets. It never held us back - product issues did.
Now I'm using it again, for the same reasons. I already know it, I'm pretty quick with it, it's predictable, and it works. I'm also old school and will probably deploy physical servers when the time comes. Look at StackOverflow - their whole site runs on a handful of properly configured servers running properly written code.
That said, .NET is not sexy. The tooling is expensive (Pro, Ultimate) or crippled (Express). It runs on Windows, which has fallen out of favor[2].
Even though I like .NET, I'd advise anyone new to learn JavaScript first. In my opinion, Node.js is my nightmare realized, but it works, and it's now possible to make things work in the browser and on the server with knowledge of only one language. More bang for your buck.
For startups technology choices are incidental when they're not the core of the business. If you're making a database, your tech choices matter. A consumer app? You're more likely to die of a bad product or team drama[3] than fallout from rendering HTML with bash scripts via CGI.
So anyway, you don't see more .NET because it's expensive, it's not the best beginner language, and it doesn't run on OS X. Also, the alternatives are much improved - It's hard to argue for .NET over something else because even where it's better, it's not that much better. And most of the time it doesn't matter.
[1] Grew up with access to an MSDN subscription. I knew of and played with Linux, but in the pre-virtualization days, I had to reboot to use it. Understandably, I preferred tools I could use on Windows, my primary OS. Also, while it's no longer the case, the MSDN documentation used to be fantastic. I basically taught myself how to program by reading the MSDN docs and tearing apart the sample code and programs.
[2] For the same reasons I developed on Windows as a kid, younger developers will want something they can run on OS X directly, or for free in a VM.
> The tooling is expensive (Pro, Ultimate) or crippled (Express).
Visual Studio Community 2013 (and 2015) are completely free and nearly fully featured. Gone are the days of Express being a super lightweight VS IDE. I used to buy Pro for side work but now I can get by with Community.
> Visual Studio Community 2013 (and 2015) are completely free and nearly fully featured.
But have licensing terms which limit the contexts in which they can (legally) be used.
> Gone are the days of Express being a super lightweight VS IDE.
Express is still a super lightweight VS IDE. Community may eliminate most of the use cases for Express, since most of the cases where it makes sense to use Express may be places where Community is an available, per the licensing restrictions, and better choice.
SQL Server Web Edition is not the same as Standard or Enterprise. The reason you use SQL Server instead of PostgreSQL is for Database Encryption, Analysis Services, AlwaysOn Availability Groups, etc. Web Edition won't even do mirroring.
The cost is worth it if it saves you multiple employees worth of development work or administration overhead, and in my experience it does. The pricing is also (surprise!) negotiable. At Loopt, our annual software licensing cost was well under the cost of one developer, and this was before BizSpark.
I've shipped production code developed in Mono on OS X, deployed to both Windows and Linux. I don't think that should be a huge roadblock moving forward. MS itself is trying to foster this (for the benefit of selling more Azure services presumably) with the next version of ASP.net which will run on basically everything.
Re the expense of doing it the MS way, Microsoft will gladly throw free/cheap software and services at you: https://www.microsoft.com/bizspark/
Now I'm using it again, for the same reasons. I already know it, I'm pretty quick with it, it's predictable, and it works. I'm also old school and will probably deploy physical servers when the time comes. Look at StackOverflow - their whole site runs on a handful of properly configured servers running properly written code.
That said, .NET is not sexy. The tooling is expensive (Pro, Ultimate) or crippled (Express). It runs on Windows, which has fallen out of favor[2].
Even though I like .NET, I'd advise anyone new to learn JavaScript first. In my opinion, Node.js is my nightmare realized, but it works, and it's now possible to make things work in the browser and on the server with knowledge of only one language. More bang for your buck.
For startups technology choices are incidental when they're not the core of the business. If you're making a database, your tech choices matter. A consumer app? You're more likely to die of a bad product or team drama[3] than fallout from rendering HTML with bash scripts via CGI.
So anyway, you don't see more .NET because it's expensive, it's not the best beginner language, and it doesn't run on OS X. Also, the alternatives are much improved - It's hard to argue for .NET over something else because even where it's better, it's not that much better. And most of the time it doesn't matter.
[1] Grew up with access to an MSDN subscription. I knew of and played with Linux, but in the pre-virtualization days, I had to reboot to use it. Understandably, I preferred tools I could use on Windows, my primary OS. Also, while it's no longer the case, the MSDN documentation used to be fantastic. I basically taught myself how to program by reading the MSDN docs and tearing apart the sample code and programs.
[2] For the same reasons I developed on Windows as a kid, younger developers will want something they can run on OS X directly, or for free in a VM.
[3] Like this: https://news.ycombinator.com/item?id=9840419 The number of startups that die due to founder drama is astonishing.