I am located in Boston and it is difficult to find startups working with .NET.Their platforms are usuallyMySQL/PHP, NodeJs/(insert any JS framework here) and Python. I don' t have anything against these platforms, Iam just curious.
Fast Growth Trajectory
Web startups usually aim at growing fast, growing with Microsoft means more licenses more money you spend. LAMP stack doesn't bind your growth to licensing expenses at that level. Micsrosoft started the BizSpark program where startups get access to lots of software at no cost for the first 3 years.
Adherence to Standards and Abstraction
As mentioned above .Net in its original form (aka WebForms) was and still is one of the worst ways to develop a publicly accessed web application. In order to achieve a decent level of browser support and standards adherence one will need to completely shut down the abstracted web UI layer of ASP.Net.
.Net RAD & Enterprise foucs
Microsoft focused .Net around rapid development and enterprise compliance, these usually aim at different targets than web applications in the wild.
Linux has supports languages like php, perl and Python. It is easy to implement JS with it. Then when mobile technologies came out, .Net wasn't mentally associated with Android or iOS. Xamarin really closes the gap here but not many people are yet learning it.
Some linux based hosting providers in that you can elaborate you innovative terms easily.
Hope you will get the best features with this hosting providers.
Thanks a lot.
I've had a number of conversations with various clients and other folks about this same topic. In the end, it seems to boil down to that you're either *in* the MSFT camp, or your *not in* the MSFT camp, and that largely determines your community and direction.
If you're in the MSFT camp, you know the tech, you can build any solution with the tech, and the folks you are connected with, email lists, forums, etc, are also in the MSFT camp. And you can make a fine living staying in this camp.
If you're not in the MSFT camp, it's the same - you know the non-MSFT tech, you can build any solution with the non-MSFT tech, and the rest of your world is non-MSFT. And you can also make a fine living staying in this camp too.
What I think has been one of the major forces over the last 10 years are smart phones and mobile apps - specifically dominated by iOS and Android. If you're going to develop for iOS, you have to use a Mac. If you're going to develop for both iOS and Android, you might as well just use a Mac for both instead of a Mac for one and a Windows PC for the other. Many apps these days talk to a server, and for getting started, as many have mentioned, you can just spin up a free LAMP or MAMP or whatever instance right there on the same laptop you're using to build the app itself. Then you can easily transition the server deployment to AWS since it can host the same tech directly.
In this scenario, which is so common, MSFT, until very recently, has had a number of huge barriers. Once you buy a Mac, everything else is free - OS upgrades, app dev tools, server dev tools, AWS free tier, etc. You don't have to start paying anything really until you launch your product and have paying customers. OTOH, MSFT charges for their stuff (until very recently, and even that has its limits), and it can be expensive especially if you're experimenting and sandboxing various ideas. My company just "graduated" from their BizSpark program, and while we get to keep all the software, we now need to pay about $500-$600 per year per seat to keep using Visual Studio. If you're not making a living from those tools, it can be a hard justification to stay in that camp if the other camp is totally free and just as powerful.
Mainly because Microsoft lost their MoJo (influence). That doesn't mean Microsoft isn't building any new good technology, it's simply that these new Microsoft technologies are not that attractive to new generations of developers.
Also the open source movement has a lot to do with it. The LAMP stack is free, contrary to any Microsoft stack, on which at some point, somebody will have to pay.
Microsoft have made big efforts to bring those developers back, but once one changes OSs, its difficult to coma back, without a good reason.
Anyway, there's no one specific reason. As always, is a sum of many factors that help make this shift.
I see. It sounds like it is more of an awareness issue than a money issue. Technically, LAMP is free to develop on. But once you want to run Linux servers in AWS, Azure or host an actual websiteyou're going to have to pay.
Yes, it is strange.
We have built an entire PaaS stack on Msoft technology including multiple SaaS applications and supply to our customers.
Dot Net stack is now open source and free. MS SQL Server Express is free and in a multi-tenant situation can support large companies at no cost. MicroSoft technology is an approved part of almost all enterprises. Certified resources and inexpensive resources are available in most countries. All backed by one of the largest stable corporations in the world. And still it is not the choice of startups .
My guess is that the early protective approach of MicroSoft and their expense lost them a generation of developers who are firmly in the various individual open source camps.
I wonder if the reason is the same as it always had been over the past 10+ years.
When I first started programming (other than doing graphical math in C++) I went on to learn Php and quickly moved to C#. The reason at that time was that C# was for the professionals and Php was for the smaller startups or those who wanted to go cheap not necessarily thinking about the long term.
We also processed most of the work on the backend.
Then when mobile technologies came out, .Net wasn't mentally associated with Android or iOS. Xamarin really closes the gap here but not many people are yet learning it.
Also a major problem with developing .Net backend's is the need to do all the plumbing work which is a major distraction from doing the actual business logic work, e.g. Repository, Service, AutoMapper, EntityFramework, NHibernate and all that infrastructure stuff is a killer and one needs a super experienced solution architect to design. Django promises to do all this for you.
Personally, I don't like all this hippy OpenSource stuff, it's just meant that people who write the real tech infrastructure and framework stuff (like me) are pushed out into the idea that our years of work should be given for free.
Many answers here seem to hint at things like scalability, but for me there is a simpler answer: younger developers wouldn't really choose .NET when there are newer and "cooler" languages for them to pick up. This results in older languages phased out over time.
By the way, the issue of scalability is irrelevant. The only people claiming .NET has better scalability than say Node+React or Ruby on Rails are .NET developers who want to keep their jobs. No mainstream language is superior to another. They all have pros and cons. They all scale to enterprise levels just fine.
I'd echo the comments regarding Microsoft technologies not being as current as they once were.
Further, you'll note that none of the unicorns develop in or host on Microsoft tech. I believe this is due to several reasons: 1. It's very hard to react to market pressures swiftly in a compiled language, 2. Most other platforms enjoy incredibly rich ecosystems (modules, libraries, etc.) which are predominantly open-source (i.e. free), and 3. Windows has never been a particularly fast, reliable, and supportable platform for Internet services.
Bigger question might be "why should startups be using .NET?".
There are valid reasons for choosing any tech stack, and ime, most of them revolve around the skills of the current team. .NET has a history (15+ years?) of being primarily something in larger enterprises (which could afford their stack). Large enterprises breed large enterprise-type folks. The majority of enterprise folks I know (.net and java, primarily) also tend to be the sort of folks that wouldn't, by and large, strike out on their own for self-employment or the startup life. (exceptions of course, but it's been my experience).
Also, many of the tools those folks get exposed to tend to be really focused on larger-scale problems. It's great if you have enterprise experience setting up MSSQL and Sharepoint to be geo-balanced across the country, but those typically aren't the sort of needs a small startup has.
Maybe the question you mean to ask is why is the Internet running on GNU/Linux and not MS Windows?
The GNU/Linux share of internet servers is between 68% and 98% according to this article:
If that is the question my answer is;
I've been a software engineer since the early 80s, mainframes, minis, vax, tops, unix, MS Windows, linux, you name it. I'll use which ever OS & languages I need to but when I choose it's going to be GNU/Linux for the backend. GNU/Linux is much more functional, more utilitarian, it's a much bigger toolbox. Microsoft lost their war on open source and are now embracing it.