Live data from Hacker News

Unapologetically build your startup technology in C#

sirchristian.net

31–40 of 152 posts

Re: Unapologetically build your startup technology in C#

#31
post #7

When you're choosing a tech stack in a startup there's a very important factor to consider that this article neglects to mention. It's likely, if you have any measure of success or you go down the investment route, that you'll be expanding your technical team quite early. The availability and cost of developers is critical at the beginning. Building in languages like PHP, JS, Java, and to a lesser extend Perl and Pyt…

  > Building in languages like PHP, JS, Java, and to a
  > lesser extend Perl and Python, means you have access to
  > lots of cheap devs. Especially in the case of PHP and JS.
Given that PHP and JS is what Facebook's stack is written in, does this mean that Facebook pays below market salary and they're taking advantage of all those cheap devs who could instead be raking in the money at a C# company?

Re: Unapologetically build your startup technology in C#

#32
post #2

Interesting how the post completely ignores the quality of the language . Most people I know don't use C# for the same reason they don't use Java: Because it's often feels bloated, over-engineered and too verbose for building stuff fast. It has nothing to do with Microsoft, Azure or scaling, they just prefer whatever dynamic language they're comfortable with.

> they just prefer whatever dynamic language That's the thing. If you're adamant on a dynamic language you won't even be looking at C# or Java. It has nothing to do with the quality of the language, but the choice of programming paradigm. Both C# and Java are quality languages. Given the choice between the two, I choose C# anyday. Sadly, this means Visual Studio... Resharper makes this slightly more tolerable.

C# I can handle (despite coming to it late, as part of Unity3D), but I find Java more and more frustrating to work with.

To be honest, I think I'm just using it for the wrong thing - I don't tend to work on big, collaborative projects which is where Java really shines. Meanwhile, C# has a few conveniences (such as LINQ and rectangular arrays, off the top of my head) which seem to me to make scripting and small projects easier.

Re: Unapologetically build your startup technology in C#

#33

I strongly agree with the author's conclusion, but I strongly disagree with many of his points. Notably, with his recommendation to consciously go all the way with the Microsoft vendor lock in. Our startup's backend is made in C#, and we're very happy with the choice. We use Postgres, we host it on Docker containers on Linux, and our devs are equally spread over Windows, OSX and Linux. MonoDevelop is a remarkably gre…

I agree "get all the free Microsoft goodies when you start, and once you really need the paid versions you're probably successful enough that the cost doesn't matter much" is one fair conclusion to the article. However I don't believe that's the only conclusion. Mostly I want .NET to be a consideration as an option when building out the technology in a startup.

I'm concerned about vender lock-in as well, just less concerned then I used to be. Microsoft's gone to great lengths to reduce some of my concerns. The fact that you are using C# with Postgres demonstrates that there doesn't need to be complete lock-in.

Do you mind sharing more about what your C#/Postgres app looks like? This combination is one option I'll be looking at for my next venture.

Re: Unapologetically build your startup technology in C#

#34
post #7

When you're choosing a tech stack in a startup there's a very important factor to consider that this article neglects to mention. It's likely, if you have any measure of success or you go down the investment route, that you'll be expanding your technical team quite early. The availability and cost of developers is critical at the beginning. Building in languages like PHP, JS, Java, and to a lesser extend Perl and Pyt…

man, I agree with your recommendation, but strongly disagree with your reasoning.

Cheap devs don't pay off. Seriously, I have hired a lot of developers and one good dev (at twice the rate of a cheap one) can easily do 10 times the work, while minimizing technical debt.

If you're doing a prototype with the full intention of throwing it away, that's one thing but please don't go cheap. Get less devs and pay them more.

As for languages, a startup wants to be cheap. Most of them are doing web stuff. Unless you have a specific need, go ruby or python. People who are interested in either generally are passing on php / javascript for a reason i.e. they're not good languages. Maybe pick go if you want to do systems stuff or performance is critical.

The reasons NOT to pick C# are 1) cost 2) lockin 3) flexibility

Re: Unapologetically build your startup technology in C#

#35

Earlier quoted context omitted.

> You need expensive Windows Servers to host your stuff and Windows just disqualifies itself as a server platform (my subjective opinion). Having to use a powerful latest-tech machine and very recent OS version (2012?) with loads of patches, newest .NET framework just to host a super simple REST service with the almighty IIS is OVERKILL in every sense of the word. This is true, I definitely agree. I am , however, exc…

> newest .NET framework just to host a super simple REST service with the almighty IIS is OVERKILL in every sense of the word. Then you are happy to read about Owin :-) using (WebApplication.Start (url)) { Console.WriteLine("Server running on {0}", url); Console.ReadLine(); }

We'll see. Hopefully it is not as half-hearted as the other technologies Microsoft tries to establish and then forgets about. They will need to put a lot of effort into it to have something even remotely equal to Node (or other micro servers). And when they deliver, the Node hype could be gone already! ;)

Re: Unapologetically build your startup technology in C#

#36
post #32

Earlier quoted context omitted.

> they just prefer whatever dynamic language That's the thing. If you're adamant on a dynamic language you won't even be looking at C# or Java. It has nothing to do with the quality of the language, but the choice of programming paradigm. Both C# and Java are quality languages. Given the choice between the two, I choose C# anyday. Sadly, this means Visual Studio... Resharper makes this slightly more tolerable.

C# I can handle (despite coming to it late, as part of Unity3D), but I find Java more and more frustrating to work with. To be honest, I think I'm just using it for the wrong thing - I don't tend to work on big, collaborative projects which is where Java really shines. Meanwhile, C# has a few conveniences (such as LINQ and rectangular arrays, off the top of my head) which seem to me to make scripting and small projec…

> I don't tend to work on big, collaborative projects which is where Java really shines

What aspects of C# makes working on large collaborative projects difficult? Not sure where you are going with this.

Unless you meant Team Foundation Server / Visual Source Safe pukes.

Re: Unapologetically build your startup technology in C#

#37
post #9

Earlier quoted context omitted.

I can see people having reservations about C# for many reasons - mainly as to how closely it is tied to Microsoft and to Windows (yes, I know it is cross platform, but the focus of the eco-system in very much on Windows) - but I can't see the quality of the design of the language being much cause for concern. Personally, I think it's one of the nicer languages in that particular space at the moment - certainly much n…

"I know it is cross platform, but the focus of the eco-system in very much on Windows." There's a funny thing about its cross-platform nature: You almost never see C# apps on other platforms. Why is that? There must be thousands of useful C#/.Net applications made that other platforms could benefit from, but the ONLY ones I've seen are the ones that targeted Mono to begin with. Nothing else. Something fishy is going…

I think its simple. Unless the person is interested in Mono they don't develop for it and don't have any interest in supporting it.

Many people use C# to develop applications for Windows and don't, won't or can't support other environments....

And while there are thousand of useful C# programs I doubt many don't have direct python / Linux competitors readily available that do near enough the same thing.

Re: Unapologetically build your startup technology in C#

#38
post #8

Is your post about C# or the .NET stack? I can (somewhat) relate to using C# over some other languages. However what I cannot relate to is being trapped with the .NET stack. And a trap it is. You need expensive Windows Servers to host your stuff and Windows just disqualifies itself as a server platform (my subjective opinion). Having to use a powerful latest-tech machine and very recent OS version (2012?) with loads…

> You need expensive Windows Servers to host your stuff

no. For startups you get 3 years free server: http://www.microsoft.com/bizspark/default.aspx

Re: Unapologetically build your startup technology in C#

#39
post #13

There are two people talking in my head while I read this post. One says : Too many people obsess about backends. Yes, build your startup in C# and a .NET stack if that's what your familiar with. The backend ultimately doesn't matter, and the faster you can create and then iterate on your product, the better off you'll be. The primary factor that will decide whether your startup is successful or not is if people like…

Better how?

C#'s one of the best languages in town and the IDE's the unchallenged best in town by a long way. And the SQL product is amazing, much better than MySlowQL.

So what bit is better? Deployment? Hosting? I'm genuinely asking here, you're just waving hands.

I've used both, the thing that puts me off .Net is the lack of choice when new stuff comes out (like elasticsearch, or a new language, or something like Docker) as it usually takes a year or so before it's easy to use on Windows, but that's about it.

Re: Unapologetically build your startup technology in C#

#40
post #8

Is your post about C# or the .NET stack? I can (somewhat) relate to using C# over some other languages. However what I cannot relate to is being trapped with the .NET stack. And a trap it is. You need expensive Windows Servers to host your stuff and Windows just disqualifies itself as a server platform (my subjective opinion). Having to use a powerful latest-tech machine and very recent OS version (2012?) with loads…

> You need expensive Windows Servers to host your stuff no. For startups you get 3 years free server: http://www.microsoft.com/bizspark/default.aspx

I've tried to sign up for this about 5 different times and have been denied and ignored every single time despite providing plenty of documentation at every turn. Pretty typical of my experiences with Microsoft.
Post reply on HN