How I would fix ASP.NET

Aug 30, 2010

Readers who dislike my occasional swearing should not read this post.

First thing first, if you don't think ASP.NET needs fixing, that's fine, we can disagree, just don't comment about it; instead write your own post which I won't have to read. Even if you think things are great in ASP.NET land, the core of my idea can still be considered because getting better is something we should always strive for.

Second, my idea addresses the technological issues with ASP.NET in specific. It doesn't address the significant pricing issue, or the perception issues, or the internal legal/political issues.

So, my idea? Hire a team of 6 or so developers with a solid, proven background building real-life web applications (some of the people could already be working at MS) and make them build products. Make them work like a startup (i.e. don't give them access to unlimited cash) and make them accountable for actually turning a profit. Then, make the relevant parts of the Developer Division (or whatever they call it) accountable to this team.

I'm not kidding. Make them come up with a product that isn't another piece of shit CMS, blog, wiki, ... and make them be successful within a reasonable time, or fire them and then fire your developer division.

The team wants to use MongoDB because its cheaper, faster, and is stupidly more productive (it really is, no object-relational mismatch) and run it on Linux? Let them and then go talk to your SQL Server team to figure out how the fuck they fell so far behind. Some legal jerk doesn't like that part of the code is opened source for outside contribution? Fire him. They want the Developer Division to write a first class dynamic language but some Distinguished Engineer wants to protect his or her fiefdome? Show him or her the door.

I firmly believe that a significant (but certainly not the only) part of Rails and Django's success comes from the fact that they are frameworks meant to help a team write specific applications. In contrast, ASP.NET is a framework designed with vague (and initially very flawed) ideas of what application development would look like. Rails and Django are built by application developers. ASP.NET is built by framework developers. The difference in the finished products because of that is staggering.

Until the ASP.NET team builds real apps, under real constraints, they'll never get it. Does anyone actually think that a framework built by people with unlimited cash is actually more productive than a framework built by a startup? Really?