this post was submitted on 21 Jun 2023
28 points (93.8% liked)
.NET
1503 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 2 years 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.
You speak much truth, but I think ther is more open source than even Microsoft sees in the ecosystem. Getting started producing working projects feels easier in .net to me.
I was a Java developer in the early days, and found the platform very frustrating. Things started to improve with the spring framework. And when I heard about spring boot, I was very pleased to see that it was all about making a standardized easy initial project startup configuration.
I recently had to do some Java for the first time and literally decades. I was able to use Java 17.
I felt it was vastly better than the early days, I was frustrated by things like the incomplete implementation of generics. And it appears that was a direct result of the way Java evolved.
Unfortunately, it appears many if not most Java projects are still stuck in Java 8 because of all of the Legacy installed code and a lack of decisiveness toward upgrading.
As for .net, I'm a little worried about some of the things coming out of Microsoft lately. I fear they may be returning to some of their old ways. Time will tell.
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.