Ask HN: (No) Microsoft based start-ups?

67 points by sentinel ↗ HN
Since I've been a user of HN, I've seen numerous posts and stories about (successful) start-ups.

However, most of those I have seen are based on some open-source, free or otherwise non-MS based languages, technologies and products. For example, there are a lot of web apps running on Ruby, Python or PHP, using cloud services offered by Amazon, Heroku or Google App Engine, using open source databases, and a lot of mobile applications aimed at iPhone/Android (although, it's true, MS has no real mobile edge anymore), etc.

The thing is I don't really hear (or think) of Microsoft when I hear about start-ups. No start-up comes up and says it's using MS SQL Server, or Microsoft Cloud Services...or C#.

What's the deal with this? Is it just me, or is it true? Are there any start-ups that do use Microsoft products or languages? Any example cases?

If this is true, how dangerous would this be in the long term for Microsoft? And what recommendations would there be for people proficient with MS, but who want to begin a start-up.

I'm curious about what you think. Cheers!

TL;DR: I don't hear of any MS based start-ups. Why?

147 comments

[ 0.23 ms ] story [ 138 ms ] thread
Microsoft isn't free. You need to get licenses for MS SQL, MS Windows Server, etc. As you expand, you have to pay for more licenses.
Perhaps its not trendy enough :)! http://www.microsoft.com/bizspark/Connect.aspx
With BizSpark startups dont have to pay any licensing costs for some time. I also think that licensing is discounted when you become profitable.

BizSpark aside, I think hosting costs/maintenance is much more. For a $20 512 Linode it would cost a hell of a lot more to run MVC.NET + MSSQL.

You should factor in not only license cost, but the total cost of maintaining and properly patching (as well as the mandatory unscheduled downtime that brings) a Windows stack.

Even if they give you the licenses for free, it's much more expensive.

There is no mandatory unscheduled downtime. Pure FUD. I install updates when I want and if I wanted, without downtime with some basic load balancing.
Really? For how long do you hold off updates that fix zero-day remote exploits?
As little as possible. And again, in a high-availability infrastructure I can patch each machine without downtime. I was contending your point that the downtime was mandatory and unscheduled. Windows never forces you to update at any time. It strongly suggests, sure. By default, the option is auto-update, but that's configurable and not required.
Well... You have to factor in the cost for the added HA infrastructure when you talk Windows. Patching Linux seldom requires more than a couple seconds for downtime for the system and I can often patch and bring up machines before memcaches and varnishes start expiring. Patching Windows often takes half-an-hour of downtime following another similarly extended period of horrible performance when the patch installer is doing whatever it needs to do, per server.

It's different to design a HA cluster that can sustain a minutes-long usage peak (due to a node going down for maintenance) than one that can sustain an hour-long outage of one of the nodes.

It all depends, in the end, on how the applications are designed to run - they are the ones that will decide how many servers you can take down at once. In any case, the shorter they are down, the better.

Consider a site with 3 front-facing web servers that are affected by a 0-day. If a server can be patched in 2 minutes, it will result in 6 minutes of 150% load on the servers not being maintained. If the patch takes an hour, you will have 3 hours of 150% workload. The internet user may not see the downtime, but you have to factor in the higher load. The best solution could be to use 4 or 5 servers instead of 3, but that would also increase your vulnerability window.

You can run a MVC and MSSQL site on DiscountASP for $20/mo ($10/mo if you don't use MSSQL).
For a lot of startups, I would assume that free is better than paid. Even for those willing to pay for Microsoft products, the pricing is confusing: http://www.microsoft.com/sqlserver/2008/en/us/pricing.aspx http://www.microsoft.com/windowsserver2008/en/us/pricing.asp...

I have also found Windows programmers on average to be more expensive than LAMP developers, which is an important concern as you look to build a startup's team.

I'm not so much concerned with vendor lock-in so much as I would be concerned with the support of an open source community. The free resources and tools available for PHP, Python, Ruby, etc., are hard to beat. I'm not sure if the same breadth of resources exist for Windows.

stackoverflow is a startup based on microsoft tech, jeff atwood has had various posts which I cant seem to find right now, sometimes complaining about the cost of licenses, sometimes giving microsoft props

I avoid the microsoft stack because I believe in the massive advantages open source brings, and because its better (imho).

The licensing costs are somewhat hefty upfront and get exponentially so as your business grows. So the decision (I think) isn't necessarily "Oh it's free now let's do it," it's closer to "OK, this is costly now, and may be worth it now, but down the road, as we scale in people and the app in size, the money isn't justifiable."
With BizSpark the upfront costs are negligible.
as it has already been mentioned -- having to pay license fees means ramen profitable is even further away for your average, small bootstrapped startup.

there are some good startups based on the MS stack, but they're generally startups done by people with money, connections, or extensive experience in the MS stack.

You have 3 years to get ramen profitable with BizSpark without spending a penny. Yes, it's a ticking time bomb in one regard, but if just getting to ramen profitable is your first goal the cost of the MS platform is not your obstacle.
With BizSpark or WebsiteSpark, you have three years. Then, a Windows Web Server 2008 R2 license only costs $469. If a business can't manage to scrape $469 together after three years, they probably have larger problems.
Even a startup can scrape together $469. But $469 per server is another story, especially in businesses that grow to require hundreds of machines.

$469 is a significant percentage of the hardware cost. The last time I bought a bunch of servers, they were in the $2500 range.

How many startups need hundreds of machines to get to ramen profitability though? Any time the licensing cost issue comes up, it seems that the goalposts move back and forth an awful lot.
i agree that it isn't that expensive anymore. more than anything, its the existing reputation and simply the fact that there is a cost. there's a huge psychological gap between charging $0.01 and charging 0.
(comment deleted)
My startup is a BizSpark startup http://www.microsoft.com/bizspark so we're going to get tied up in the Microsoft stack pretty quickly.

We just started a few months back and are working on our first project.

I really like developing in .NET so this was a no brainer for me. Other people would disagree with me and want to focus on open source.

Different strokes for different folks I suppose.

Even with BizSpark the point of entry for open source sartups is much lower which probably accounts for most of it.

Either way, you can be successful and profitable with both, it's just a matter of finding what works for you.

How much do you worry about Microsoft lock-in? And about them discontinuing tools you depend on?
Well, I'm not worried about Microsoft lock-in because I am consciously choosing to get locked in to the MS stack. I want to develop with MS tools on MS systems.

With an MSDN subscription (which is free for me for 3 years through BizSpark) you can download virtually any MS software ever released. I'd be really surprised if they didn't have what you need.

I'd be more worried about a company like Oracle buying out a product like Java and screwing it up. At least you know where Microsoft stands.

I don't hear of many startups using Oracle, IBM mainframes or proprietary Unix either. I think there is a general aversion among startups to using expensive technology, and I think the reasons are fairly obvious.

If you're interested in the startup world, learn another software stack or three. Startups generally need people who learn new things quickly and use the best tool for the job. Flexibility is key; don't be a one-trick pony.

I actually heard of a "green energy" startup that listed Oracle and Crystal Reports as a requirement. It was one of those grotesque things started by lawyers and energy veterans.

I usually latch on to people with extensive domain expertise outside of computing, just to see where things might lead, but that particular one felt very FAILy and the people too unreachable and bureaucratic (i.e. "fax the requirements to my office and I will tell the girl to embed them inside the spreadsheet" -- horrible.)

myspace

The server infrastructure consists of over 4,500 web servers (running Windows Server 2003, IIS 6.0, ASP.NET and .Net Framework 3.5), over 1,200 cache servers (running 64-bit Windows Server 2003), and over 500 database servers (running 64-bit Windows Server 2003 and SQL Server 2005) as well as a custom distributed file system which runs on Gentoo Linux.

What a waste of natural resources.
and neural resources.
I think they started with ColdFusion
(comment deleted)
The paid/free argument isn't really a valid basis for business decisions. Developing software is extremely expensive, even using free software. However, there are numerous overriding benefits of open source software.

#1: Startup founders use technology they know. Open source developers tend to be willing to trade more risk and effort for a more tailored and flexible end product. This is a similar personality profile to someone who's willing to put in a large amount of work to build a business and potentially get nothing for it. Microsoft builds run-of-the-mill, sure-thing products that will at least do something well, and they'll support it for you. Commercial software dictates their software model: take few risks and sell to broadest audience.

#2: Interoperability. Microsoft software works outstandingly well with other Microsoft software. Open source software tends to be built on open standards, and, again, if you have the source, it's always possible to hack it together. The open nature means less business risk when making software decisions. The way out is of a situation where software won't do what you need it to do is to use the source, even if only as a temporary patch.

#3: Automation. While things are getting better, it's still much easier to automate most open source software, since these products usually either have a CLI, an API, or even in the worst case scenario: source code.

#4: Even with BizSpark, licensing has limits on your companies' use of technology. Simple example: Do we go with a bunch of small boxes or a few large boxes? Licensing concern may drive your team to fundamentally flawed architecture decisions.

(comment deleted)
Hilarious amount of hardware? How do you figure? If you put a Rails app next to a ASP.Net app that do the same thing I guarantee there's not a "hilarious" difference in the hardware needed to run them.
Have you made comparison of windows hosting vs linux hosting in terms of price?
Yes, the differences are negligible
Good point with #4. The last time I was involved in a Microsoft project the SQL Server licensing costs were more than $30k per box. $30k was not a big deal on that project but it would have worked a lot better if the data had been spread across a bunch of little servers instead of two big ones. $30k * 2 is not so much; $30k * 50 starts to add up.

http://www.microsoft.com/sqlserver/2008/en/us/pricing.aspx

I use an almost entirely MS stack for my analytics platform: http://www.swfstats.com/

It's a number of applications ranging from windows services to command line utils and websites. Using .NET I'm able to do all of that in C# and not have to switch mindsets when I jump back and forth between all the different facets of it. I can also easily re-use code/classes between distinct applications.

These days I can be found in just about every major Flash game that's coming out. In total I run on 2x dedicated and 1x vps, however I've been working my ass off on making things massively more efficient and could easily reduce my hosting.

Some fun stats:

- I do about 130 - 150 million events per day

- the biggest game by views = 30 million

- the biggest game by total events = 2.27 billion events

- I lag about 4 or 5 minutes behind real time

- I spend more on coffee then I do on licenses on my servers

Open source I'm using:

- MongoDB for my (alpha) level sharing API + an open source C# library for using it

- ClamWin

- FileZilla

- an open source C# markdown library

- an open source C# geoip library

Which Mongo lib are you using?
Have you looked at NoRM?
I just grabbed the first driver and it worked although it feels really awkward to me (especially coming from years of parameterized queries / sprocs).

It looks interesting though. Have you used both?

I've only tried NoRM and I liked it. I liked that they were working on full LINQ support, but I'm not sure where that ended up since Conery no longer contributes to the project and that was his thing.
Well - it's Andrew's thing... I just helped out as I could. Just ran out of time :)
The LINQ support in the original driver is great.
I think it's just 'fashionable' to not talk about your tech if you're using microsoft tools (aka .net framework). Mainly it seems that HN is very pro anything else. I'm actually the lead for 2 Denver start-ups myself (also a BizSpark member); I'm building everything on the back-end in c#/sql and using web-services to consume the data in my web and mobile apps. For me it's just a speed issue since I have 10 years C# experience and a ton of code to leverage. Plus if you get into BizSpark (which seems automatic if you are a HN member) you receive a free MSDN subscription which includes full copies of SQL, Visual Studio, Windows 7, Office, etc, so the 'cost' is really a non-factor.
I don't think it's just a matter of fashion. Only a handful of the startups we've funded use anything from Microsoft.
Perhaps then it's more of a mindset issue since .Net is used in a lot of traditional business - aka they already have SQL, Windows Server 2008 and Sharepoint running for example.

.Net might just attract personality types that are more risk averse, aka programmers more interested in a steady paycheck than the ups/downs/stress of the startup life.

Its multi-faceted issue, partly based on a cultural bias in the Valley of using Unix on the web. There are also lower barriers for developers to pick up lamp, rails, etc than the Microsoft stack, which feeds into it. Hosting is also somewhat cheaper on unix stacks, especially when you add SQL server, which may influence people's choice.

Having said this, I find the Microsoft platform dead simple, the tools best of breed, and the new MVC framework to have opened up the platform considerably.

Good Points. Up until recently I had trouble finding a good/cheap VPS that was comprable to a *nix price.

Yeah, the thing people also don't realize on this topic is you can use MS SQL Express - which is free - to avoid paying/licensing issues.

The limits are almost entirely around ui, ease of use type features, not performance or scalability. Aka, you don't get the fancy VisualStudio-esq UI so you can't do diagramming, or things that you want generally when you are developing. But you still get a barebones management tool that's better than most of the mySql variants I've played with.

For use on a webserver, yeah it's a solid option esp if you are already having to use MS SQL because of other business requirements by your client/company.

If someone applies for YC intending to use MS tech, do you count that as a point against?
We used to ask on the application what technology people planned to use, but we took that question out. So we wouldn't know in the application stage. At the interview stage it probably wouldn't come up, but if it did the answer would be far outweighed by what we thought of the people and what they'd built.

So it might influence us a bit, but we never know till we know other things that influence us a lot more.

(comment deleted)
That doesn't discount the idea of fashion. YC attracts a certain crowd of applicants that tend to be younger and more closely tied into the emergent technology trends. If they have the time to take X months off of their jobs and their families, they also probably have time to learn new technologies that they didn't use in school or at work. I'm young enough but with a busy full time job and a toddler, learning new technologies (to the point of extreme proficiency) is not high on my list.

For me it came down to what I could build most rapidly given my skillset. I had experience in Java and C#/.NET and my partner (my husband, not my co-founder) could mostly only help in C#/.NET. So it really was a question of getting something built in 3 months versus 6 (or maybe not at all if I got discouraged and it took too long to market). The licensing fees are the things that weigh on my mind, but if my business is successful, I will be able to pay them or even re-write the application using the profits.

I know better than to expect to converse about our MS technology with the HN crowd, though.

I totally hear this, "using what you know" is really powerful.

Be careful here though ...

> I know better than to expect to converse about our MS technology with the HN crowd, though.

Lots of positive posts, even in this thread!

That's true and I think Stack Overflow actually did a lot for making it more acceptable in startupland. And for good reason - if it's good enough for them...
The Linux advantage really starts to show when you enter the dozen+ server range. Licenses add up quickly and planning gets more and more complicated.

If you run a small group of machines and you know what you are doing, Windows could be just fine for you. The worst that can happen is you succeed and need to migrate your software to another platform.

edit: actually the worst that could happen is that you hit a technical problem the closed nature of Windows prevents you from solving and you have to port before you become profitable.

I think you misunderstood me. evo_ is saying that it's unfashionable to talk about it when you use Microsoft software. I replied that in my experience the reason startups don't talk about Microsoft stuff is that they're not using it, not that they are and are embarrassed to say so.

It may well be that YC-funded startups consistently differ from the average startup. But that doesn't mean that such differences are due to fashion. The kind of people we fund are more consistent in knowing what they're doing than in being young. So if as a group they differ from the norm on technical matters, the more likely hypothesis is that the norm is lagging.

I would think that the majority of startups aren't using MS products, but I understand that the ones that are might prefer not to talk about it for fear of ridicule by the hacker community.

I'm comfortable assuming that the YC startups are above the average, but that doesn't mean they aren't also affected by the demographic that would most benefit and be able to participate in the YC program. In no way am I implying that YC would select someone younger for admission over someone more qualified - just that the nature of the program self-selects.

In my case, I'm still young but having a toddler puts me in a similar situation to a typical older entrepreneur. It would be incredibly difficult for me to take an X month block away from my family or to uproot my family. And a $10K investment doesn't mean to me what it does to a college grad, because I can make that in a couple of bonuses or consulting gigs. The thing I miss most in a program like YC is the mentorship, but for me it's not worth the aforementioned hardship.

It's not that I'm not interested in new technologies, I do tinker, but it's just a matter of priorities. Given that, you're probably right that the "norm" would be lagging in terms of using the newest and coolest technology. I don't think that equates to generally worse companies, just less fashionable, to tie back to the original point.

> I know better than to expect to converse about our MS technology with the HN crowd, though.

I'm not sure why. People talk about Clojure and Haskell and I'd bet good money that those are even less common for startups — heck, probably fewer people here can even read them. I don't personally like the Microsoft stack overall, but I do think some of the stuff they make is pretty compelling and it would be interesting to hear how it's used outside of a BigCo.

That could just be me, though.

It's not the frequency - it's the dismissive attitude in some OSS or other non-MS circles that's very active in the online dev community.
Your applicants filter themselves quite a bit. The cofounders of the healthcare software company that I work for would never have come to you for instance.
At the first Startup School at Harvard someone asked Chris Sacca (who worked for Google at the time) what languages/platforms would help to get you bought by Google. His answer was that pretty much anything was okay... EXCEPT for .Net.
After spending almost 20 hours on the phone with Microsoft support last week I can tell you why I wouldn't use it as my technology stack - you can't dig in to understand and fix a lot of things yourself.
What was the problem?
It was a SharePoint issue with the emails it sends out and it ended up being a permission issue (well, not even sure you would call it that - but the fix was resetting the system account's password). There had been no changes in accounts or anything else besides the creation of new sites and to make it even harder no error messages or useful logging. I've seen issues like this more times than I can count over the years and sometimes there is no solution that can be found. With open source it might take a lot of work, but there is always a fix that can be made.
I die a little every time I imagine how many companies are putting their lives inside SharePoint black-holes.

OTOH, SharePoint extraction tools seems to me a very profitable model for the coming years.

Sharepoint should not fall under this discussion... that's a product and has little to do with a startup's development stack.. Most .net devs won't touch it
I don't know about that since Microsoft is pushing SharePoint to developers as their main web platform. Would I use it personally, no... but there is a lot to gain from it if you are already a Microsoft shop and the newest version is a lot more standards complaint and the API is pretty good now.
Microsoft is pushing Sharepoint to non-developers as their main web platform. Then business analysts are forced to learn it, and eventually they want programmers to build on top of it. You program against Sharepoint as a matter of consequence, not choice.
FYI, as a SQL Server dev intern I can tell you that we have little to no interaction with SharePoint (except that Sharepoint runs on SQL Server). We focus on application development. SharePoint is just a management product.
Not sure if I follow what your saying, but SharePoint is anything from http://www.ferrari.com to a million user intranet. There is a lot of development work going on these days using SharePoint as a platform.
sorry, duck, downvoted you by mistake below (fat fingers)

just wanted to reply that ferrari.com is very slow, may be it is related to using MS stack

At least you had someone to call. Not everything in OSS can be fixed with a fork and patch.
If it's a software problem a fork and a patch can fix it. That's kind of the point.

Having the ability and technical resources necessary to generate said patch, however, is a different problem.

My startup uses MS technology, primarily because both my self and my partner have many years of experience on the MS platform.

Regarding cost, it's really not that bad -- especially if you qualify for the BizSpark program.

splashup.com does. anywhere.fm did.
Because who wants to run Windows on a server?

Yes, you can, many people do, but it's less common, which is why basing a startup on an MS stack is less common.

Well there tend to be two classes of startups. There are the YC-like startups. Which I think are often college grads or recent college grads. College students are generally familiar with open source software. I certainly never touched MS software in college.

The other class of startups are those by relatively successful people who left their current job to start a company. More of the Spolsky model. Here you'll find a lot more MS-based stacks. Usually because they're familiar with it and with BizSpark the upfront cost is relatively cheap.

Of course these startups probably have different funding models, so you hear about them less on places like TechCrunch. Lastly, they are often more enterprise focused as their experience in industry has given them the ability to see gaps in the enterprise offerings (college students don't do enterprise focused startups) -- but they aren't exciting consumer technologies. But a companies like Topaz Bridge are still doing some interesting stuff.

I think this is probably fairly accurate.

People will (generally) use whatever tool they're familiar with, regardless of whether it is actually better for the job or not. Therefore it makes sense that the person's background will be a fairly large determining factor in what language they use. Someone (like me) that comes from a decade of developing "enterprise" .NET applications is most likely going to choose .NET. Someone with that same background is likely to be less concerned about the latest "cool" tech, and more interested in just getting the job done.

It also has a fair bit to do with resources. If you're running on little cash, it makes sense to use the cheapest tools and hosting available. Whilst, MS offer free version of all their tools, you still need to pay for hosting your app. That's the big turn off for many.

For us, it is a combination of my .NET experience, the fact that hosting price isn't a huge issue (our web design and .NET consultancy work covers our costs), and most importantly I DESPISE Linux with a passion. Queue here to flame me -->

There are tons of startups using the Microsoft stack... Just because they don't live on HN or don't appear on Techcrunch does not mean they don't exist.

Microsoft even has BizSpark - a network to provide resources to startups (we are one). All you can eat Microsoft software via MSDN.

"Price" is no longer an issue and Microsoft has made a point of building a solid startup ecosystem around their stack.

That "Price is no longer an issue" is a falacy. You are ignoring the cost of patching and rebooting Windows boxes and the cost of the redundant infrastructure required to accommodate the longer downtime Windows patches require.

And price is no issue only if you fail. If you succeed and have to deploy dozens of servers, you will quickly feel the it in your wallet. You can't grow horizontally as cheaply as you can with any free (even free-as-in-beer) solution.

In our case it's as cost effective to light up a Rackspace Windows VM than it is a Linux VM... There are maintenance costs on both sides.

If you have to deploy dozens of servers on any platform you will quickly feel that in your wallet.

I have better automation facilities on Unix-like servers than I can have on Windows. Configuration replication is rather easy. My colleagues here manage 1000+ Linux servers with a homemade solution based on Puppet and Fabric and can deploy a server from power-up to ready-to-go in a couple minutes.

If you can read Portuguese, they did a very good presentation at FISL in Brazil a couple days back.

http://ignofisl.ig.com.br/2010/07/22/material-da-palestra-so...

It's just not trendy and the release cycle is very long compared to open source. The long release cycle contributes to the tech side being less newsworthy. Also, the stack is fairly standardized so if you are making a website your stack is going to be either ASP.NET or ASP.NET MVC and it's going to run on the sanctioned VM, and you'll likely be running SQL Server.

Contrast this with the ruby stack you might be running MRI, YARV, Rubinius for your VM, and then for your web framework you might be running rack, sinatra, etc. Thus when someone makes their stack OpenBSD + YARV + Sinatra + Active Record it's newsworthy as the non-standardization likely created some kind of interesting issue they needed to solve. This stuff doesn't happen on the MSFT side of things. If someone says they are doing a MSFT start up the only real question about their stack is LINQ-to-SQL / ADO.NET entities / nhibernate. I already know that the rest of their stack is going to be Win2k(3|8)R2 + IIS + ASP.NET + SQL Server and it's going to be written in C#.

I was considering doing an Win2k8R2/F#/MVC/nhaml/LINQ-TO-SQL start up but my market isn't tech guys so any blogging I did about my unique stack would attract people who wouldn't be interested in the startup.

I must take this opportunity to note that the ASP.Net MVC release cycle is far more aggressive than Rails.

Secondly... SQL Server is by no means required in the stack. We are using MongoDB as our datasource in an ASP.Net MVC app. You can use ANY database.

Sweet, how is MongoDB working for you?
It's fantastic... Fast, reliable, and damn easy to work with.

Granted, we aren't in production yet... Will see how that goes :)

Yeah that's a good point that I think non-.Net dev's aren't aware of - you really aren't that locked into doing it the 'MS Way'. Like you mentioned you don't have to use SQL - it's up to you, really, on the DB.

Similarly, you don't have to use ASPX/WebForms either; a lot of people I know are switching to MVC and not using any of the .net ms usercontrols on the front-end, instead going with open standards and using something like jQuery to handle a lot of the UI and web-service interaction. This is the approach I've taken in recent years, and it makes it a ton easier to create clients for other platforms like iPhone, Droid, etc.

Yeah on that note you can use ANY view engine to run your ASP.Net MVC application - you are not locked in to the classic web forms system. We use jQuery and standards based html/css to do everything.
We're using ASP.Net MVC2 with Mongo DB as well. So far the experience has been fabulous. Even more so considering that the entire development process from coding to deployment has been done completely on Linux - giving us more flexibility with deployments like being able to use Varnish for caching, etc.

We spent three weeks evaluating Rails, Flask and Django for the app, and the team had experience with all three tools. The risky move to a statically typed, compiled environment paid off because of a solid IDE and good surrounding tools.

That's not entirely accurate. MVC releases major releases once per year - Rails releases quite often... just not full point releases. In fact they pushed 2.3.4 and within a week pushed 2.3.5 as there was a bug found :).

Yes, you can use any DB - good point.

MS seems to have equalized most of the initial price advantage of FOSS with their free bizspark stuff. Other issues involved:

1. Many startup hackers are good enough customize Linux for their needs, but would lack that freedom under Windows.

2. Open source security model perceived as more reliable than MS's security through obscurity.

3. Performance. Not an expert here, but from anecdotal evidence of running Win7 vs Ubuntu10.04 on my desktop, and WinXP mobile vs Ubuntu UNR on my netbook, in both cases Linux can run more servers, background, and foreground processes simultaneously with no system degredation than Windows can. My netbook under UNR is especially amazing - slow and clunky under Win7, as responsive as a desktop under UNR. Does that carry over to servers too? (and can you run a headless Windows server?)

The recent article on Reddit's server costs brought up an interesting consideration about hardware maybe not being as cheap as it is reputed to be, at least not in the Amazon cloud, and that maybe choosing your technology stack based on its inherent performance is still a valid issue (eg, choosing Rails (or MS) for developer productivity and then throwing servers at it till it performs well enough may be more costly than perceived).

Can't say for sure since I haven't used MS products for web stuff in almost 10 years.

4. Vendor lock in, increasing licensing costs as you scale.

1. It's not difficult to customize Windows. There are well defined SDKs and interfaces for most of the kernel points. Honestly, how many web startups are customizing their kernel?

3. The performance differences are negligible in the general case. Startups write their own code so most of the performance differences are going to come from the code they write rather than underlying performance differences. In both cases, python vs. C# / .NET you can always drop down to C. I doubt that whatever their problems are they stem from language / compiler. Most sites are IO bound. IO bound applications are largely a factor of how many disks you have. The throughput for writing a file in PHP and C are identical on machines with less than 10 disks.

4. Licensing costs decrease drastically as you scale on the MSFT side.

1. I read that more as customizing in userland than in the kernel, but I don't know what the original poster's intention was. I personally find it easier to configure a Linux machine than a Windows machine, but I think it comes down to familiarity and subjective preference a lot more than anything else.
Stack Exchange / Stack Overflow is MS based. Exception rather than the rule though.