15 comments

[ 2.5 ms ] story [ 39.3 ms ] thread
With code becoming increasingly LLM generated, static typing improves evaluation of code compile time. So A+ for _type safe_ AI generated PRs :).
TypeScript is generally a horrific language to use on the backend and especially for performance and even as a compiler. Just ask the TypeScript developers rewritting the TS compiler in Golang with all the problems they encountered using it.

C# is a much better choice to use for the backend and also a better designed language in general.

I still don’t understand why more startups don’t adopt .NET. It’s such a powerful technology. ASP.NET has some of the best performance benchmarks out there, C# is a rich and expressive language, and the ecosystem along with the standard libraries are stable and mature. You rarely run into the kind of headaches you often see with more “trendy” stacks.

In many cases, the bias comes down to perception — .NET is seen as “enterprise” or “legacy,” while in reality it’s open-source, cross-platform, and very well-supported by Microsoft and the community. For a startup that needs stability and performance without reinventing the wheel, .NET can be a huge win.

I really like C#, and I would generally vastly prefer it to NodeJS on the backend. I think one weakness is the library ecosystem, the competitors are stronger there. Most of the time this doesn't bother me as I also tend towards limiting dependencies in general.

There is a positive aspect to this, as it makes decisions easier as well. For many areas there is often a single good choice, there aren't dozens of web frameworks you have to evaluate. There's ASP.NET Core and then nothing else for a long time. And for the most part those are pretty good, so it does not feel limiting.

And C# doesn't have to be too enterprisy and over-abstracted. The community does tend a bit too much towards unnecessary abstractions in my opinion, but you don't have to use it that way.

I work at a .net shop and it is pain. Do not recommend.
I also work for a .NET shop and I absolutely love it. I'll happily work with .NET for the rest of my career.
It's very different in an Enterprise setting compared to a setting where it's being used by people who actually understand systems from logic gates up. The issues around .Net are in a lot of silly things people have been sold and an inertia of terrible frameworks if you're still in the full-fat-framework land.
We build a Shopify-leading platform on C# at a startup -- they got so much flak from colleagues about it being built on C# instead of Node or Python.

Absolutely no reason other than "C# icky" -- they ended up with a platform that is crazy fast (and fast scales way easier, it handles a dumb amount of traffic without a lot of crazy design)

Startup culture is toxic AF at times, bad engineering decisions for cargo cult stuff.

I experience the same. When I try to have a rational dialog about trade offs, there’s nothing there. Or the “only runs in Windows” classic 10+ years outdated stuff I’ve been writing C# on a Mac deploying on Linux for a decade.
We are (I mean I'm CTO & know C# better than most) but the only real downside is that there are a lot of people around Microsoft tech who are antithetical to startups.

You have to be absolutely insane and/or highly inexperienced to even consider Javascript/Typescript on the back-end. Not only is the language a terrible match but the deep architectural failings of NPM have been clear for at least a decade.

It looks to me team is clueless about database development.

Typescript ORMz lol.

Soft deletes make indexing, well, problmatic to say at least. Use temporal tabls instead for point in time recovery. Nevertheless it could have been solved on a database level without any help from ORMs, lookup RLS. Still, screws up indexing strategy.

> In the end, I decided on C Sharp, even though I had never used it professionally

I love C#, I use it every day, but who makes a decision like this?

.NET and C# are a great choice for web backend and CRUD apps.