Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Not that it matters that much but I notice there's no .NET or C# on the "Technology Used" list. Is there really not a single YC company that uses the .NET stack? I'm not surprised that there's a strong bias toward open source technologies among these companies, but given how widely .NET used elsewhere in the enterprise world I find it pretty remarkable NONE of those companies decided to go with a MS stack.


Back in 2005 when I started Loopt I went all in with Windows Server, .NET, and SQL Server. I already knew the tooling[1]. No regrets. It never held us back - product issues did.

Now I'm using it again, for the same reasons. I already know it, I'm pretty quick with it, it's predictable, and it works. I'm also old school and will probably deploy physical servers when the time comes. Look at StackOverflow - their whole site runs on a handful of properly configured servers running properly written code.

That said, .NET is not sexy. The tooling is expensive (Pro, Ultimate) or crippled (Express). It runs on Windows, which has fallen out of favor[2].

Even though I like .NET, I'd advise anyone new to learn JavaScript first. In my opinion, Node.js is my nightmare realized, but it works, and it's now possible to make things work in the browser and on the server with knowledge of only one language. More bang for your buck.

For startups technology choices are incidental when they're not the core of the business. If you're making a database, your tech choices matter. A consumer app? You're more likely to die of a bad product or team drama[3] than fallout from rendering HTML with bash scripts via CGI.

So anyway, you don't see more .NET because it's expensive, it's not the best beginner language, and it doesn't run on OS X. Also, the alternatives are much improved - It's hard to argue for .NET over something else because even where it's better, it's not that much better. And most of the time it doesn't matter.

[1] Grew up with access to an MSDN subscription. I knew of and played with Linux, but in the pre-virtualization days, I had to reboot to use it. Understandably, I preferred tools I could use on Windows, my primary OS. Also, while it's no longer the case, the MSDN documentation used to be fantastic. I basically taught myself how to program by reading the MSDN docs and tearing apart the sample code and programs.

[2] For the same reasons I developed on Windows as a kid, younger developers will want something they can run on OS X directly, or for free in a VM.

[3] Like this: https://news.ycombinator.com/item?id=9840419 The number of startups that die due to founder drama is astonishing.


> The tooling is expensive (Pro, Ultimate) or crippled (Express).

Visual Studio Community 2013 (and 2015) are completely free and nearly fully featured. Gone are the days of Express being a super lightweight VS IDE. I used to buy Pro for side work but now I can get by with Community.


> Visual Studio Community 2013 (and 2015) are completely free and nearly fully featured.

But have licensing terms which limit the contexts in which they can (legally) be used.

> Gone are the days of Express being a super lightweight VS IDE.

Express is still a super lightweight VS IDE. Community may eliminate most of the use cases for Express, since most of the cases where it makes sense to use Express may be places where Community is an available, per the licensing restrictions, and better choice.


the Windows Server Licenses are the expensive part


If you're using a cloud hosting, such as AWS EC2, the added expense of Windows is around 30%. Nothing terribly expensive about that.

And you also get credits from Bizspak, that could be used to apply to offset AWS licensing.


But god help you if you need SQL server beyond what express provides. (Web is OK but expensive, "standard" or enterprise? Now that hurts)


> god help you if you need SQL server beyond what express provides

Too much drama. Here's pricing for m3.large:

  Red Hat:      $0.193
  Windows:      $0.259
  Win + SqlWeb: $0.367
Besides, you get several(?) free SQL licenses with BizSpark, if you're so inclined.


SQL Server Web Edition is not the same as Standard or Enterprise. The reason you use SQL Server instead of PostgreSQL is for Database Encryption, Analysis Services, AlwaysOn Availability Groups, etc. Web Edition won't even do mirroring.

The cost is worth it if it saves you multiple employees worth of development work or administration overhead, and in my experience it does. The pricing is also (surprise!) negotiable. At Loopt, our annual software licensing cost was well under the cost of one developer, and this was before BizSpark.


Basically, yep.

But you can see why people get some sticker shock: $14,256 on their website for SQL Server 2014 enterprise (per core!) http://www.microsoft.com/en-us/server-cloud/products/sql-ser...

However as you say, you could easily get a 50% discount on that without having a big SQL Server farm.

No bizspark required.


I've shipped production code developed in Mono on OS X, deployed to both Windows and Linux. I don't think that should be a huge roadblock moving forward. MS itself is trying to foster this (for the benefit of selling more Azure services presumably) with the next version of ASP.net which will run on basically everything.

Re the expense of doing it the MS way, Microsoft will gladly throw free/cheap software and services at you: https://www.microsoft.com/bizspark/


Also, if you are a YC company, you can get $500k in credits from Azure.


On which, you can run Linux.


Or anything else! Absolutely!


Re: the "strong bias toward open source technologies" bit...yes, I know .NET is open source. This is a recent development.

Just thought I'd qualify that before someone else mentions it.


And most developers use Stack Overflow (which is built on an MS stack) on a regular basis to find answers to their open source technology questions.


We got most of the data (more than half) from the founders of the companies directly. The rest we scraped. I bet there are a few on an MS stack, but it's a small percentage


I wrote C# for 8 years, but switched to Ruby after following an my boss to a new startup that is using Ruby. I advocated for years about how great .net is (and the tools still are the best), but if i'm being honest here. Ruby really is a lot quicker for prototyping. It's the perfect fit for startups.


Can you elaborate on the benefits of using ruby for prototyping? What's easier to do in ruby?


Getting runtime errors.

But seriously if you want something quicker than c# for prototyping just switch to F#. Ruby has only downsides.


OT: Do give Elixir a try. It's like am erlang with ruby syntax.


I just checked and Microsoft BizSpark is still around. They give free software to startups and even mentorship.

https://www.microsoft.com/bizspark/default.aspx


I know Submittable (YC S12) uses C# and the .NET stack. I'm sure there are others.


Microsoft's technology stack doesn't seem to be popular with startups and young technology companies, but I don't think that's because of .net itself, but rather because of the barriers presented by the rest of the Microsoft stack.

Probably a major driver is the various virtualization and cloud-driven technologies not fitting real well with Microsoft's server environment. Startups want scalable architectures that allow them to easily adjust to changing demands and Microsoft doesn't really offer that right now -- or, at least, they don't offer that as cost effectively as Linode, Digital Ocean, AWS, RackSpace, and so on.

If Microsoft did offer something in that arena, I'd expect the licensing costs to be obnoxious. As a recent example, we've migrated two mid-sized office networks recently to Windows domain environments, and that cost the customers extra money just for CALs -- one CAL per domain-connected device (or user account, depending). That sort of licensing scheme is a rounding error cost of operations for the enterprise, but for startups it's a major nuisance.

And then there are databases: should Microsoft-stacked startups go with MS-SQL, which is slow and cumbersome and requires maintenance schedules to be developed for it, or should they go with the other default enterprise choice, Oracle, which is stupidly expensive, or should they try integrating MySQL with Windows and hope nothing breaks in the future?

They're also not getting to take advantage of the latest and greatest technologies with the Microsoft stack. NoSQL? nginx? The fastest-iterating web technologies right now aren't happening under Microsoft's roof. I don't mean that Microsoft doesn't offer a lot of advanced technology, I mean that the open source world is able to push an update to GitHub one day and everyone can be running the latest and greatest version a few minutes later, and then it can happen again a few days later. Microsoft isn't doing that, so they're lagging behind some bleeding edge developments.

And Microsoft has its own history to overcome. They have burned people a lot over the years. Younger people working in technology are largely ignorant of it, so for them, Microsoft has a pretty OK reputation. But us grey beards remember the Microsoft of the 90s and would sooner exit the industry altogether than be stuck with being responsible for a Microsoft stack for the next 10 years. Just do a search for "Microsoft discontinued technology" or similar, and you get a handful of recent results -- since Google has the long-term memory of a goldfish -- but you can start to get the idea: if you build something with the Microsoft stack today, Microsoft might discontinue support or development for some part of it next year and you might be stuck. With open source technology, you can either choose to continue support or development for it yourself, or continue running it unsupported for as long as you'd like. There are options. Vendor lock-in is harmful in the long term and startups have no leverage for dealing with it and I think many of them are at least subconsciously aware of that.

Microsoft has its place. If you want stability -- in a slower rate of change sense -- Microsoft is what you want. If you wan to be able to hire people based on their certifications, Microsoft is what you want. If you have a massive IT budget, Microsoft is a choice you can afford.

They just aren't the right fit for most tech startups.


>If Microsoft did offer something in that arena, I'd expect the licensing costs to be obnoxious.

Nope. First, both AWS and Azure offer Windows hosting. Second, licensing costs on AWS are around 30% markup on top of same Linux hardware. Hardly "obnoxious".


And .net runs on linux with mono or the new .net core plus its open source.


Licensing fees and tech made for large slow enterprise teams.

I've seen the shops that have C# or Java as their backend and they move too slow to be a competitive threat. If their frontend is written in Ruby/Rails or Python/Django then maybe they have a chance against the competition but usually they'll be held back by the slow progress made on the backend.

For some reason the big slow enterprise mindset gets transmitted through the choice of language. Companies that use Scala or some other JVM-based language are less likely to be enterprisey for example.

Licensing fees and management are a big deal for Microsoft.

It all relates to the enterprise vs hacker mentality.


I work at a small company writing NLP R&D software. Our core in-house codebase is entirely Java. There is no "enterprise mindset" here; in fact, many of the engineers make fun of that mindset.

Choice of language only affects your culture if you believe choice of language affects your culture and let it happen.


> Choice of language only affects your culture if you believe choice of language affects your culture and let it happen.

I would disagree with that. I just came from a startup on .NET. The develop/build/test/deploy cycles were really slow (mostly due to tooling/infra, not the language), which meant devs didn't ship frequently and didn't test their code much. That affected the culture quite a bit: no rapid experimentation means no hacker mentality.

It may be that you can develop rapidly with C# or Java (I just wouldn't know, I haven't ever used either in a highly-productive environment) but if they hold you back from shipping quickly, they hold you back from the hacker/startup mentality.


> tech made for large slow enterprise teams.

This is complete nonsense. It is popular nonsense, but nonsense nonetheless. .NET is a perfectly reasonable tech stack for certain kinds of problems -- for example if your application has to interact regularly with MSFT core APIs, you'd have to have a pretty compelling reason NOT to use the MSFT-native stack.

> It all relates to the enterprise vs hacker mentality

This too is a story that HN likes to tell itself to justify its preference for this week's hot new javascript framework (or whatever).

At the end of the day, different tools are good for different use cases -- and while yes, .NET tends to work better when you're coding to "enterprisey" use cases, that doesn't mean that your product team itself has to operate in a "large slow enterprise" way

(Plug: If you're a top notch .NET developer and you want to work with others who are as well, at a place that doesn't treat C# and .NET as second class citizens, hey, drop me a line.)


Sure but using C# and Java are fairly good indicators that there's a slow-moving enterprise mindset at work.

I guess I should have said that in my comment; that they're indicators. I didn't mean to imply that there aren't some good uses for C# and Java. You mention one and the other reply mentions another.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: