61 pointsby stevefan19993 hours ago4 comments
  • HexDecOctBinan hour ago
    Does runtime async mean stackful coroutines? It's not obvious what exactly the state machines are replaced by, if not automatically inserted yield() calls.
    • gdwatsonan hour ago
      I took it to mean that coroutines are still stackless but that yielding is now an operation the runtime knows about instead of being compiled out by the compiler.
  • wofoan hour ago
    Awesome stuff, as usual in .NET releases! The runtime async support is surprising to me... I get that stack traces are more friendly without state machines in the code, but I didn't expect they could switch to a runtime version and have equivalent performance. Cool!
    • pjmlpan hour ago
      They did that after the learnings with experiment of having a Erlang, Go, Java like implementation for async, await.
  • SurajMishraan hour ago
    For the features that overlap between golang and .Net, can someone please let me know why people choose .Net over golang for non legacy systems? As far as my limited knowledge goes, go is much more efficient in syntax and memory.
    • bob10294 minutes ago
      The tooling and development UX.

      Put things like their remote debugging experiences side-by-side and you will quickly learn why some of us go for the Microsoft tools rather than the others.

    • bjolian hour ago
      Go isn't as much fun. And is usually slower for my work until I bump up the GC and then it uses roughly the same amount of memory.

      I have also found c# async to be lighter than go's concurrency story, and dotnet11 is going to make that much more clear.

      Now: I write software for fun, not for money.

      • SurajMishraan hour ago
        So for a requirement where both golang and .net would suffice, would you choose .Net over golang?
        • bjoli17 minutes ago
          Yes. Unless I really need CSP, but then I would much rather use f#+hopac because CML is the bee's knees.

          For general concurrency where async doesn't suffice, go is nicer than C#, but hopac is nicer than go.

          If go had proper concurrentML I am pretty sure I would use go a lot more. Again: this is for hobby projects where I get to choose freely.

    • jeswin17 minutes ago
      Go is not much more efficient, compared to NativeAOT - though it can be faster in some areas. The big reason why someone would want to use C# is that it's a more expressive language. You can even write your DB queries with LINQ (C# lets you express code as data), making them type-safe.
    • stackskipton19 minutes ago
      At former jobs, because people know it and switching from .Net <-> Go generally isn't worth the time to learn other language.

      Sure, having a runtime is downside but difference in container size for your average CRUD App doesn't really matter. Performance IME is very similar.

      Ops type here.

    • pjmlpan hour ago
      That is an urban myth, CLR was designed with support for C++ in mind.

      Also Go is at the stage of C# .NET 2.0, and still plenty of lacking language features.

      I really think the creator of C# made a disservice to the .NET community by picking Go for the Typescript rewrite.

    • incidentlyan hour ago
      I know it's not quite as important in the agentic world, but the .NET tooling (across Visual Studio, JetBrains Rider, and C# Dev Kit for VS Code) is just awesome. Some people might frown upon full-blown IDEs, but sometimes they're just incredibly handy.
      • xnorswap37 minutes ago
        Even the non-visual stuff is pretty awesome, claude is able to trace and profile .NET code without skills or MCPs.
    • i_san hour ago
      Native interop is much better in .NET, that matters a lot for some systems.
    • pjc5027 minutes ago
      What's go's equivalent of LINQ?
  • bob10292 hours ago
    I am looking forward to async stack traces being more legible. It might encourage developers to actually read and use them.