Hacker News new | ask | show | jobs
by taberiand 311 days ago
Nonsense, .NET is one of the best ecosystems available. Your sentiment is one I tend to hear mostly from people who think it's still .NET Framework and Windows only
4 comments

Indeed. I read a great write up by Sam Cox of Tracebit[0] on his selection of C# and his focus on productivity nails it on the head. One of the best ORMs, rich standard libraries and first party packages, and has been converging with TypeScript and JavaScript over the last decade[1] while having all of the advantages of runtime type safety.

Folks that last looked at C# over a decade ago don't know what they are missing.

[0] https://tracebit.com/blog/why-tracebit-is-written-in-c-sharp

[1] https://typescript-is-like-csharp.chrlschn.dev/

The language has also made great strides to increase readability and decrease verbosity. I have been loving a lot of the changes over the years.
Yes; very underrated in this regard with respect to how terse the language is now. Especially switch expressions and pattern matching. C# pattern matching is incredibly rich[0], terse, while being eminently readable.

[0] https://timdeschryver.dev/blog/pattern-matching-examples-in-...

Not only. I don't want to use Microsoft technologies unless forced to or no better alternatives (GitHub/ vscode)
If you feel forced to use vscode due to "lack of better alternative" but then stop at using .NET, then you're really missing out on tools that lack better alternatives.

.NET has spoiled me so badly with C#, NuGet, and the debugger that I just don't have the patience for any other languages with their half-assed build systems, janky package managers, and after-thought debuggers.

MSBuild and the dotnet CLI tool may not be fancy, but they work and I generally find "fanciness in the build system" to be a gateway drug to "broken-ass builds that invite new layers of new broken-ass build tools on top".

Every .NET project I've worked on in the last 15 years I could pull from the repo and build-and-run immediately. I can't really say that for almost any other platform.

I was onboarding some Python developers into a C# project at work. I walked them through installing the SDK, cloning the repo, and running the app. One of them piped up,

"That's it?"

"Yeah, that's it. What do you mean?"

"What about virtual environments?"

"Uhh, I'm not sure what you're getting at."

"What if I have multiple versions of the SDK for different projects, how do I keep them from clashing?"

"Oh, yeah, don't worry about that. They all can co-exist side-by-side. Which version a project uses is part of its build settings. Venv just isn't a thing in .NET."

> NET has spoiled me so badly with C#, NuGet, and the debugger that I just don't have the patience for any other languages with their half-assed build systems, janky package managers, and after-thought debuggers.

Rust and cargo are pretty good and only getting better. I don't really see a good use case for anything dotnet when JVM exists

To be fair dotnet is much better than JVM, mainly from having learned from Java’s mistakes.

I don’t want to use either though.

> Every .NET project I've worked on in the last 15 years I could pull from the repo and build-and-run immediately. I can't really say that for almost any other platform.

Definitely not for any NPM project. At work when we didn't touch a project for half a year it was impossible to build due to some changes in dependencies. They require continuous maintenance.

This is a fair criticism, but I think it's more accurate to say that "Venv is built-in", more than "isn't a thing"; it sounds like something is managing it for you, if they can co-exist somehow.

Python is (slowly) getting there; `uv` gets pretty close: `uv run -m $module_name` will install required dependencies & run.

(But even then, we use it at work, and there are a few complications around macOS, native libraries, and private repositories.)

> I don't want to use Microsoft technologies unless forced to or no better alternatives

Agreed there.

> (GitHub

Github is probably in the "forced to" category, since the employer, not employee, decides, I assume.

> / vscode)

… but really? Vim. I've yet to see someone using VSCode on a VC meeting stream that isn't seemingly floundering. What does VSCode get me, aside from a proprietary editor from a company I do not trust? Telemetry and AI slop built in?

Or, you know, ed is the standard editor. /s

I guess vscode is convenient and I don't want to spend the rest of my life configuring vim
Microsoft historically abuses their market position. I think if you're wedding yourself to any MS technology, you need to be able to have a clear divorce strategy.

Maybe true for all companies but especially true for Microsoft (perhaps Google, Apple, etc. as well)

That’s right. I wouldn’t chose a Microsoft tech unless there were a clear, independent path forward when they decide to break it.
There’s nothing wrong with dotnet. There’s lots wrong with being forced to use nothing else.