The original thread is on the devilā€™s website and I donā€™t want to direct traffic to it, so hereā€™s a link to the tweet instead:

https://twitter.com/davidfowl/status/1671351948640129024?s=46&t=OEG0fcSTxko2ppiL47BW1Q

4 points

Type system rigidity, I started using TypeScript a lot over the last few years with FE work. TS is so much more flexible and expressive. I really wish that I could express constraints in C# as fluently as I can in TS

Enums really need more flexibility, unions, discriminated unions, left hand implicit type, better value supportā€¦etc

System.Text.Json still sucks, itā€™s not greedy, no global setting , non-sane default,no expando supportā€¦etc itā€™s awful to use.

Unstructured data in general is an absolute pain to work with.

Composability of tests is still super painful and verbose. Dynamic test generation is awkward and unergonomic. After doing testing and other languages that let you simply compose tests imperatively, C# testing is definitely painful.

IMHO C# is an acceptable language with an absolutely fantastic framework.

I love C#, but these are my primary gripes

permalink
report
reply
3 points

A Lemmy post that contains a tweet that contains a Reddit comment. Quite a ride.

permalink
report
reply
2 points

Well, like most people who havenā€™t used .NET, I have very strong opinions about it.

The first and main issue I take with it is how itā€™s all capitalised. Second but not less, itā€™s such a generic name. Am I gonna get websites in the .net domain or do I have to learn Google search beyond typing random junk, pressing enter, and hoping for a stackoverflow answer that works?

permalink
report
reply
2 points

Youā€™ll eventually get used to different casing conventions in different languages thatā€™s just something that you have to mature into.

Depending on the language you are writing the conventions will be different, itā€™s often within your best interests to adopt to those conventions instead of trying to fight against them.

permalink
report
parent
reply
2 points

The things I bump in the most:

  • Mutability. Everything is passed by ref so imutable and/or copy should be an important factor of the language, but itā€™s not. Struct vs class also was way to much impact but can both be used for an interface argument but have such different flow.
  • Compatibility is always favored over improvement in the framework design and language. It has obvious pros as we need less porting, but newer functions in the language are often weird to work with and frameworks get replaced instead of improved, making the porting even harder.
  • A lot of features work magically simple until you want some kind of custom behavior and they then become unmanageable complex. Like the default XML serializer where you can do no extension and everything can get serialized, or async function that abstract the threading untill you want to manage multiple parallel function with error checking and you get very weird and confusing code. Thay all work magically easy as long as you use them for nothing more difficult than the examples.
permalink
report
reply
1 point

Dotnet had really been the ecosystem i keep coming back to. Itā€™s been so frictionless. It could be experience, but I really never feel like Iā€™m fighting with it. Running plain C might be the only other ecosystem that I would hold as a less frictionless experience. I genuinely donā€™t hold any frustrations with it. I donā€™t have any ideological problems around Microsoftā€™s involvement. The tool lets me solve problems effectively.

The only thing Im missing is a good llvm target for the clr something like what the kotlin native guys enjoy so i can take the ecosystems to new places.

Sure EFcore can be tiresome and LINQ is inefficiĆ«nt. But Iā€™m going to be honest here. If youā€™re trying to squeeze performance out of an ORM and youā€™re running up against performance limits of LINQ, maybe not use a time-saving tool as a power tool?

Maybe Iā€™m simping a bit over it, but Iā€™m not seeing alot of positive content about a tool that has only been very productive in my experience. Maybe because all of the dotnet users are too busy solving actual problems for people haha šŸ˜‚

Oh and newtonsoftā€¦ And maybe xUnit and nUnit could make up and figure out a way to be ergonomic AND work well multi-threaded.

permalink
report
reply
2 points

Performance limits of LINQā€¦?

Youā€™re getting nearly the same performance out of loopes generated by LINQ as you would normal for loops.

If youā€™re referring to LINQ and EF Core, youā€™re generation SQL with it, not running LINQ. And that query generation is incredibly performant these days (I think EF 7 was something like 5% slower than dapper?).

So luckily you can squeeze a ton of performance out of it!

permalink
report
parent
reply

.NET

!dotnet@programming.dev

Create post

Getting started

Useful resources

IDEs and code editors

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

Community stats

  • 86

    Monthly active users

  • 292

    Posts

  • 291

    Comments