There has been a lot of trash talk recently about .NET for startups. People make ridiculous claims about how .NET killed MySpace and you should never hire .NET programmers. Well I'm building my startup in .NET and for a lot of good reasons.
Why I chose .NET
I live in Palo Alto, work at the Hacker Dojo, and I am even buying a Macbook Pro tomorrow. Clearly I have totally drank the startup Kool-Aid. The one point I balk at is the idea that choosing .NET is always a mistake. I believe .NET was the right choice for EffectCheck, for the following reasons:
- Existing expertise - I spent three years working as an AI researcher and quant at a hedge fund. We used two languages: R and C#. If you work with any major financial services provider, they invariably have an awesome .NET API and usually a Java one. So I stuck with C# and became really good at it. I do know Ruby/Rails and I'm playing around with Python/Django now to build an iPhone game, but at the end of the day it would take me 5-10x longer to build everything in those languages.
- Core algorithm already implemented - The awesome AI algorithm behind EffectCheck has already been implemented and thoroughly tested in C#. Reimplementing it in another language would mean more testing and debugging.
- AppHarbor - It's Heroku for .NET. You simply can't beat it. I push to my git repo and it compiles and deploys automagically. I know lots of Python hackers who swear up and down that they use EC2 and love it, but the server admin gene just isn't in me. I don't want to spend an hour setting up my AMI to get my web app deployed.
- Visual Studio - Hands down the best programming environment anywhere. I've seen cool things from Textmate with Ruby, but I still think the C# intellisense support is way beyond anything available for other languages/frameworks.
- I know the community - Throughout the last few years, mostly on accident, I've come to know a lot of the best .NET hackers. I did some poker research with Daniel Crenna, I met Aaron Stannard when we both lived in San Diego, and John Sheehan was on my Startup Weekend team. I was also one of the first AppHarbor users (and support tickets!), which means I've had plenty of discussions with Michael Friis, Rune Soerensen, and Troels Thomsen.
Can't we all just get along?
I'm not trying to get into a religious war here. Other stacks have their own benefits. Python has awesome libraries like the nltk, scipy, and numpy; Rails has Heroku and tons of great gems. The .NET choice is just personal preference, but that's kind of my point: it doesn't matter if you use .NET or not.
If you look at ASP.NET MVC 3 compared to the two main MVC frameworks out there (Django and Rails), there's very little conceptual difference. I use 960gs, git, jQuery, and (hopefully) soon MongoDB just like plenty of Rails and Django developers. The rest is just the choice of some arbitrary programming language and MVC framework to route calls.
So should you use .NET? The obvious answer is "it depends." If at least three of my five reasons resonate with you, then I would probably say yes. You really have nothing to fear anymore-- it's all pretty much the same until you reach massive scale. If you reach that point, well, that's one of those good problems.
If you liked this article, please up-vote it on HackerNews.