this post was submitted on 21 Jun 2023
28 points (93.8% liked)
.NET
1484 readers
3 users here now
Getting started
Useful resources
IDEs and code editors
- Visual Studio (Windows/Mac)
- Rider (Windows/Mac/Linux)
- Visual Studio Code (Windows/Mac/Linux)
Tools
Rules
- Rule 1: Follow Lemmy rules
- Rule 2: Be excellent to each other, no hostility towards users for any reason
- Rule 3: No spam of tools/companies/advertisements
Related communities
Wikipedia pages
- .NET (open source & cross platform)
- .NET Framework (proprietary & Windows-only)
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Threads like that twitter thread. Or to put it another way, the community and it’s single minded focus on everything Microsoft produces or endorses and nothing else is frequently off-putting to me.
I strongly believe there is no “best” in software, or maybe in anything. There is only “best” when you put it in context of your projects and constraints. .NET may very well come out on top in your context, it’s a solid ecosystem. LINQ is great, integration of major functionality comes out of one hand and often just works, you can hire from a large pool of candidates, performance is generally sufficent, I only hear great things from anyone who ever tries F#. The list goes on. I generally think the technology itself is a great general purpose choice and I've enjoyed writing C# for my job for a while, as well as for a few side projects.
But other things have other strengths. For one, the amount of open source library choices is much better. .NET is slowly growing on that front, but I’m still not convinced whether it will ever get to a level of JS or Java, despite sharing almost the same marketshare in case of Java. And frankly, that’s the community that breeds innovation. Lots of things are tried, very little sticks, but in the end you always have options. In .NET you don’t until Microsoft builds something for you.
Even Microsoft reconizes that:
...
(source: https://github.com/microsoft/dotnet/blob/main/docs/ecosystem-issues.md )
I am not convinced that this buy in from the open source community exists yet, in particular because Microsoft kept up their antics and showed their hand with things like the hot reload drama or shifting key parts of their products out of open source (pylance, the .NET debugger binaries, key parts of VScode are examples that come to mind).
And so .NET keeps taking on things that have been proven first elsewhere, behind the innovation curve. For example C# language features such as records or pattern matching. Or integrating open source technologies that become too big to ignore. Hello docker. Hello react integrations. Hello WSL. Hello functioning terminal in Windows, after having lived with the good old cmd for decades.
But until Microsoft officially starts endorsing and publishing things like that, it's the worst in other languages when you ask the community. The truth is, other things have other strengths, but if you ask about LINQ and nameof() in Rust you will be disappointed. If you ask for a safe, performant alternative for embedded devices, it's great (how is .NET doing on embedded ARM these days anyway?).
And maybe I'm making a problem where there is none. But I want to work with open minded people who focus on results, not tools based on some strange techno-religion. Unfortunately in .NET I often get that vibe. But to be entirely fair, I've also seen it in other places, like the functional world (Haskell, or Scala). And it's slowly getting better in .NET with every integration. So not all hope is lost.
We also miss the kind of integrations other eco systems have. Like the good Rust integation with Python. I think the future is to write good memory efficient libraries in Rust and use the from Java, Python,nodejs and .net.
I am missing a library for the delta format and find it strange that Microsft spent all marketing during build to talk about OneCloud and the delta format and we can't even use it from .net besides from Synapse.