Live data from Hacker News

What .NET 10 GC changes mean for developers

roxeem.com

41–50 of 253 posts

Re: What .NET 10 GC changes mean for developers

#41
post #21

Very mixed feelings about this as there’s a strong case for the decisions made here but it also moves .NET further away from WASMGC, which makes using it in the client a complete non-starter for whole categories of web apps. It’s a missed opportunity and I can’t help but feel that if the .NET team had gotten more involved in the proposals early on then C# in the browser could have been much more viable.

Webassembly taking off on the browser is wishful thinking. There are a couple unicorns like Figma and that is it. Performance is much better option with WebGPU compute, and not everyone hates JavaScript. Whereas on the server it is basically a bunch of companies trying to replicate application servers, been there done that.

> Webassembly taking off on the browser is wishful thinking.

It has taken off in the browser. If you've ever used Google Sheets you've used WebAssembly.

Re: What .NET 10 GC changes mean for developers

#42
post #27

A hobby audio and text analysis application I've written, with no specific concern for low level performance other than algorithmically, runs 4x as fast in .net10 vs .net8. Pretty much every optimization discussed here applies to that app. Great work, kudos to the dotnet team. C# is, imo, the best cross platform GC language. I really can't think of anything that comes close in terms of performance, features, ecosyste…

> C# is, imo, the best cross platform GC language. I really can't think of anything that comes close How about F#? Isn't F# mostly C# with better ergonomics?

He means the runtime ".NET CLR". They have the same runtime.

Re: What .NET 10 GC changes mean for developers

#43
post #34

Earlier quoted context omitted.

Yeah? Ncurses still a thing? I only ask because that's the only api name I remember from forever ago. I worked on a mud on linux right after high school for awhile. Spent most of the time on the school's bsdi server prior to that though. Then I went java, and as they got less permissive and .net got more permissive I switched at some point. I've really loved the direction C# has gone merging in functional programming…

The only thing that has become "less permissive" is Oracle's proprietary OpenJDK build, which isn't really needed or recommended in 99.9% of cases (except for when the vendor of your proprietary application requires it to provide support). The rest of the ecosystem is "more permissive" than .NET since there are far more FOSS libraries for every task under the sun (which don't routinely go commercial without warnings)…

Funny, because one the libraries I was using at the time went hyper commercial (javafxports). Java burned me on two fronts at the very same time and lost me. Ymmv I guess. It's always a good time to try something new anyway... I also moved to kotlin on android and couldn't be happier with it, it's a clearly superior language.

Re: What .NET 10 GC changes mean for developers

#44
post #27

A hobby audio and text analysis application I've written, with no specific concern for low level performance other than algorithmically, runs 4x as fast in .net10 vs .net8. Pretty much every optimization discussed here applies to that app. Great work, kudos to the dotnet team. C# is, imo, the best cross platform GC language. I really can't think of anything that comes close in terms of performance, features, ecosyste…

> C# is, imo, the best cross platform GC language. I really can't think of anything that comes close How about F#? Isn't F# mostly C# with better ergonomics?

Lmao, functional programming is far from ergonomic

Re: What .NET 10 GC changes mean for developers

#45
post #27

A hobby audio and text analysis application I've written, with no specific concern for low level performance other than algorithmically, runs 4x as fast in .net10 vs .net8. Pretty much every optimization discussed here applies to that app. Great work, kudos to the dotnet team. C# is, imo, the best cross platform GC language. I really can't think of anything that comes close in terms of performance, features, ecosyste…

Having worked with C# professionally for a decade, going through the changes with LINQ, async/await, Roslyn, and the rise of .NET Core, to .NET Core becoming .NET, I disagree. I certainly think that C# is a great tool and that it’s the best it has ever been. It’s also relies on very implicit behaviour, it is build upon OOP design principles and a bunch of “needless” abstraction. Things I personally have come to view as anti-patterns over the years. This isn’t because I specifically dislike C#, you could find me saying something similar about Java.

I suspect that the hidden indirection and runtime magic, may be part of why you love the language. In my experience, however, it leads to poor observability, opaque control flow, and difficult debugging sessions in every organisation and company I’ve ever worked for. It’s fair to argue that this is because the people working with C# are bad at software engineering. Similar to how Uncle Bob will always be correct when he calls teams out for getting his principles wrong. To me that means the language itself has a poor design fit for software development in 2025. Which is probably why we see more and more Go adoption, due to its explicit philosophies. Though to be fair, Python seems to be “winning” as far as adoption goes in the cross platform GC language space. Having worked with Django-Ninja I can certainly see why. It’s so productive, and with stuff like Pyrefly, UV and Ruff it’s very easy to make it a YAGNI experience with decent type control.

I am happy you enjoy C# though, and it’s great to see that it is evolving. If they did more to enhance the developer experience so that people were less inclined to do bad engineering on a thursday afternoon after a long day of useless meetings. Then I would probably agree with you. I'm not sure any of the changes going toward .NET 10 are going in that direction though.

Re: What .NET 10 GC changes mean for developers

#46
post #44

Earlier quoted context omitted.

> C# is, imo, the best cross platform GC language. I really can't think of anything that comes close How about F#? Isn't F# mostly C# with better ergonomics?

Lmao, functional programming is far from ergonomic

That really depends on your preferred coding style.

Re: What .NET 10 GC changes mean for developers

#47
post #41
post #21

Earlier quoted context omitted.

Webassembly taking off on the browser is wishful thinking. There are a couple unicorns like Figma and that is it. Performance is much better option with WebGPU compute, and not everyone hates JavaScript. Whereas on the server it is basically a bunch of companies trying to replicate application servers, been there done that.

> Webassembly taking off on the browser is wishful thinking. It has taken off in the browser. If you've ever used Google Sheets you've used WebAssembly.

Another niche use case.

Re: What .NET 10 GC changes mean for developers

#48
post #45
post #27

A hobby audio and text analysis application I've written, with no specific concern for low level performance other than algorithmically, runs 4x as fast in .net10 vs .net8. Pretty much every optimization discussed here applies to that app. Great work, kudos to the dotnet team. C# is, imo, the best cross platform GC language. I really can't think of anything that comes close in terms of performance, features, ecosyste…

Having worked with C# professionally for a decade, going through the changes with LINQ, async/await, Roslyn, and the rise of .NET Core, to .NET Core becoming .NET, I disagree. I certainly think that C# is a great tool and that it’s the best it has ever been. It’s also relies on very implicit behaviour, it is build upon OOP design principles and a bunch of “needless” abstraction. Things I personally have come to view…

I am paid to work in Java and C# among Go, Rust, Kotlin, Scala and I wholeheartedly agree.

I hate the implicitness of Spring Boot, Quarkus etc. as much as the one in C# projects.

All these magic annotations that save you a few lines of code until they don't, because you get runtime errors due to incompatible annotations.

And then it takes digging through pages of docs or even reporting bugs on repos instead of just fixing a few explicit lines.

Explicitness and Verbosity are orthogonal concepts mostly!

Re: What .NET 10 GC changes mean for developers

#49
post #5

Earlier quoted context omitted.

I don't think the runtime is "much more advanced", the JVM has had most of these optimizations for years.

The JVM famously boxes everything though, probably because it was originally designed to run a dynamic language. An array list of floats is an array list of pointers. This created an entire cottage industry of alternative collections libraries with concrete array list implementations.

A float[] is packed and not a list of pointers in the jvm.

An ArrayList is a list of pointers though.

Re: What .NET 10 GC changes mean for developers

#50
post #47
post #41

Earlier quoted context omitted.

> Webassembly taking off on the browser is wishful thinking. It has taken off in the browser. If you've ever used Google Sheets you've used WebAssembly.

Another niche use case.

Google Sheets is one of the most widely used applications on the planet. It's not niche.

Amazon switched their Prime Video app from JavaScript to WebAssembly for double the performance. Is streaming video a niche use case?

Post reply on HN