Live data from Hacker News

Why Startups Could Use .NET, But Don’t

piehead.com

31–40 of 103 posts

Re: Why Startups Could Use .NET, But Don’t

#31
post #11

I don't agree that it is mostly culture (and "ego"). Purchasing/licensing software is always a hassle. Even aside from the monetary cost, you need to decide which to buy, go through the purchase process, and sometimes you also have some activation hassle. With open source software, you just download it and use it. If you decide to change to another version of the software or different software entirely, you just do t…

>Purchasing/licensing software is always a hassle. Even aside from the monetary cost, you need to decide which to buy, go through the purchase process, and sometimes you also have some activation hassle. This. Navigating MS licensing is an absolute headache inducing time vampire for smaller organizations.

What I hear you saying is: "There could/should be a better way to do it". Adding ", hmmmmmmmmmmmmm...." to the end of that statement may be of some use to you or others, financially.

Re: Why Startups Could Use .NET, But Don’t

#32

"Essentially, the cost differences have become moot" No, not really. I specifically ruled out .NET because BizSpark expires after 3 years or >1 million USD in annual revenue (whichever comes first). I just don't see a ton of advantage to running .NET/SQLServer/etc over something like Java/PostgreSQL/etc. I'm sure some .NET dev will disagree. There's just so much flexibility in being able to spin up as many instances…

BizSpark is free only if you expect to not be around in 3 years.

That's not really the point of BizSpark. It's to get you to the point where SW licenses aren't a huge expenditure. At my company we have a general policy on SW "If it will make you more productive -- buy it." No questions asked.

We spend over $200k/year on each developer. Almost no developer purchases $10k/year in SW, but if they did, it's really not that big of a cost for us. And if there's a small improvement in productivity it's worth it.

But for companies where everyone eats ramen, but only when on sale, the cost of licenses is a big deal. I've seen startups where they require each dev to buy their own machines. I've seen other startups that pay half their annual salary for the first year and then will double your salary the next year -- as a way to get out the gate with lower costs.

If MS SW has no value then it has no value if its free. But if it does have value then the license costs really aren't that substantial.

Re: Why Startups Could Use .NET, But Don’t

#33
post #11

I don't agree that it is mostly culture (and "ego"). Purchasing/licensing software is always a hassle. Even aside from the monetary cost, you need to decide which to buy, go through the purchase process, and sometimes you also have some activation hassle. With open source software, you just download it and use it. If you decide to change to another version of the software or different software entirely, you just do t…

> If you decide to change to another version of the software or different software entirely, you just do that.

I think this is the main point here. Especially in startups, parts get written and rewritten many times. Ruby backend too slow? Rewrite in Scala/Java/C++. Relational database doesn't quite fit? Extract a part of it into MongoDB etc. Besides, the community behind all these tools is healthy and responsive. Example: we had a stupid problem with Redis, asked on the forum and the guy who wrote Redis responded in matter of hours. Hell, maybe he even reads these words right now (hi!).

Call it cultural, call it technological, but there is quite a difference between two worlds.

Re: Why Startups Could Use .NET, But Don’t

#34
post #13

Stack Exchange comes to mind for me when I think .NET startup. I haven't worked with .NET much in the last 4-5 years, but there's obviously more out there. Maybe they don't spend time sharing. If you ask me, customers don't care what you code in. Only that you solve a need they have. Most languages are capable. Most languages have capable frameworks. Most have open source options. If a Language+Framework saves you ti…

"If you ask me, customers don't care what you code in. Only that you solve a need they have."

Bullshit. Many (mostly larger) customers, do care. They may have security, regulatory or other needs that you must fulfill.

Re: Why Startups Could Use .NET, But Don’t

#35
post #31

Earlier quoted context omitted.

>Purchasing/licensing software is always a hassle. Even aside from the monetary cost, you need to decide which to buy, go through the purchase process, and sometimes you also have some activation hassle. This. Navigating MS licensing is an absolute headache inducing time vampire for smaller organizations.

What I hear you saying is: "There could/should be a better way to do it". Adding ", hmmmmmmmmmmmmm...." to the end of that statement may be of some use to you or others, financially.

The problem is that this is really an internal problem at Microsoft. They have so many licensing programs targeted at different industries that even trying to figure out who you need to be talking to can be a nightmare. Sometimes you'll be directed to a program like BizSpark, sometimes you have to go through a reseller like CDW, some industries have specific third-party programs that make the most sense, e.g. TechSoup for non-profits.

Navigating MS licensing is the software equivalent of navigating the US tax code. Why would you willfully subject yourself to that when you could be getting things done?

Re: Why Startups Could Use .NET, But Don’t

#36
Off Topic

I will not go on to discuss this article. But I want to express a point of view that I have. I am starting to learn programming and for a lot of reasons, I think I rather learn an Open Source technology than a Microsoft one. Microsoft technologies are meant to work together and this will inevitably lead to you getting locked in, in a Microsoft environment. With Open Source technologies you always have options since they are platform agnostic even though they work better in UNIX-like environments. You can run any of the popular programming languages (Lua, Perl, Python, Ruby, etc) that are used in UNIX-like systems on Windows, and the server software used in UNIX-like systems is also available in Windows, but Microsoft technologies are Windows only. Other important difference is that Open Source technologies can be extended by their users, you don't have to beg anyone to extend the features of an Open Source technology.

At this moment my only computing device is an Android smartphone, you can't do much with it right, right. Ha, but guess what you can install Lua, Perl, Python & JRuby. With JRuby you can even access the full Android API. So I am learning Ruby from and with my Android smartphone. I bet I can't do this with Microsoft technologies.

http://code.google.com/p/android-scripting/

Re: Why Startups Could Use .NET, But Don’t

#37
So I don't really work at a start-up in a meaningful sense anymore (Fog Creek is a decade old), but my team is just a few people, and we develop in a start-up-like mode for Kiln, which is written almost entirely on a WISC stack.

I really, really like .NET, ASP.NET MVC, and C#. And I even have grown to appreciate IIS 7 and SQL Server. But if I left this company and did a start-up project all over again, there is no way in hell I'd pick .NET for the kinds of things I find interesting.

Here's the rub: whenever we're doing something in Kiln that Microsoft anticipated, the environment is among the best I could possibly imagine. There is something they already wrote that works, makes sense, runs quickly, and is flexible without taking you into IoC debugging hell. If you want to take on something that is not using cutting-edge web technologies (i.e., you're not using WebSockets, or working with big file uploads, or doing strange routing, or what have you), you're probably in great shape.

But when we do something that Microsoft did not anticipate, it's nothing but pain. Take allowing you to push Mercurial requests through HTTP: we still get into fights with IIS, two years down the line, because we keep encountering limits that Microsoft set that make absolutely no sense if you're not a vanilla CRUD app, and whose removal is poorly documented. For example, IIS limits the amount of headers you can have. This setting isn't actually even set in IIS proper; it's set in the generic HTTP layer of Windows, which can only be altered with a full-blown machine reboot. So when one of our customers dutifully managed to craft a Mercurial request that was over 8k or whatever the limit was, we had to go reboot every last fricking production web server during our peak load time so that they could actually get their changesets through.

Or take streaming requests: ASP.NET is so insanely aggressive about not allowing you to stream in requests that we had to replace swaths the official framework with our home-grown solutions before ASP.NET finally relented and quit trying to suck multi-gigabyte requests into RAM.

Or take LINQ to SQL. LINQ to SQL is great. Usually. If you're using it exactly as they intended. When we wanted to make some of our models automatically supply some query parameters, though...well, let's just say there was a lot of T4 templating involved to get around sealed classes, and leave it there.

I think the successful start-ups are the ones that are most likely to be doing something "weird." And when you're doing something weird, I think that Microsoft is the wrong stack to use.

If you ask me, that's why start-ups tend not to use .NET.

Re: Why Startups Could Use .NET, But Don’t

#38

People seem to forget that the software you write has to run somewhere, on a machine, maintained by someone. It's not that it's overly expensive to buy the Microsoft software, it's not free, but it's also not completely unreasonable. However, if you're able to find a good .Net developer, very often that same person isn't a good Windows Server administrator. Developers who know their way around languages like PHP, Per…

I'm meet excellent .Net developers that are completely incapable of configuring IIS, but I've never see a PHP programmer that couldn't setup Apache or a Python developer that couldn't deploy a wsgi application and fire up nginx.

Almost all PHP devs are webdevs. Only a small subset of .NET devs are webdevs. It's probably better to compare ASP.NET devs to PHP devs. And most ASP.NET devs can configure IIS.

Re: Why Startups Could Use .NET, But Don’t

#39

Greenspun had some great thoughts on this in 2009: http://blogs.law.harvard.edu/philg/2009/05/18/ruby-on-rails-... Business Guy: Hands Microsoft a bunch of money, launches site on an ASP server with 64GB RAM. He is basically done with IT for the first few years of growth. MIT Genius: Starts off trying to build a system that will scale, from the beginning. He creates about 6 months of IT work for himself. It works, ev…

Smart startup founder: bangs out a prototype with Rails or Django in a few hours / couple of days, sticks it on a $20/month VPS somewhere, sees what happens.

Re: Why Startups Could Use .NET, But Don’t

#40

People seem to forget that the software you write has to run somewhere, on a machine, maintained by someone. It's not that it's overly expensive to buy the Microsoft software, it's not free, but it's also not completely unreasonable. However, if you're able to find a good .Net developer, very often that same person isn't a good Windows Server administrator. Developers who know their way around languages like PHP, Per…

I'm meet excellent .Net developers that are completely incapable of configuring IIS, but I've never see a PHP programmer that couldn't setup Apache or a Python developer that couldn't deploy a wsgi application and fire up nginx. Almost all PHP devs are webdevs. Only a small subset of .NET devs are webdevs. It's probably better to compare ASP.NET devs to PHP devs. And most ASP.NET devs can configure IIS.

Okay, I see your point, but the article seemed to imply that the topic was web development.

I'm glad that you found that most ASP.NET developers can configure IIS, but that's not my experience. Getting a site running is something that most can do, but there's a large cap between: "Hey it runs" and "I trust that this will perform and be secure in production and should any issue arise I can debug it and solve the problem".

But yes, I should have written that I was talking about ASP.NET developers.

Post reply on HN