For web API backends and MCP servers, I firmly believe C# is the better choice.
For AI use cases (as in make calls to LLMs), there's not much difference, IMO from Python and C# and TypeScript. At the end of the day, those are all just REST API calls and SDKs are mostly wrappers around it.
For LoB apps where the AI/LLM is just one small leg of the actual flow, C# is still a winner, IMO, because of how good the overall stack is (e.g. EF Core). Orleans (actor model framework) is also super interesting and I'm exploring some memory/communication system based around it.
https://devblogs.microsoft.com/typescript/typescript-native-...
I was curious about their approach to durable execution, so I told them to come back to me when they had a .NET SDK.
The fact that they don’t is either due to the fact that they have a historic prejudice against Microsoft and by extension dotnet, or they can’t be bothered and see no point in it.
Either way the types of companies that are going to have a strong interest in resilient distributed applications, are corporations, and dotnet is still highly prevalent in those types of organizations.
So refusing to support dotnet as a SDK option in Restate is beyond short sighted. It’s leaving money in the table. I can’t take them seriously if that’s the case.
I think the fact that most coding agent images don’t include dotnet support by default. Just look at codex-universal. Swift gets included but not dotnet. Yes it’s not hard to install dotnet yourself and setup the environment, but there isn’t a real valid reason to exclude it since they’ve covered nearly every other popular language.
This. A lot of segregation is very much due to this.
> I think the fact that most coding agent images don’t include dotnet support by default
And it gets worse that that:
https://github.com/openai/codex-universal/issues/13
https://github.com/openai/codex/issues/1276
https://github.com/openai/codex-universal/pull/120
And you see that the community members are doing the work for them, yet they would still refuse using the stiffiest corpo lingo in the most passive aggressive way
"Sorry, we're not accepting PRs in this repo. If you'd like to see a change to the codex universal docker image, please file a feature request in the main codex issue tracker."
Okay, so what the fuck is this:
https://github.com/openai/codex-universal/pull/131
https://github.com/openai/codex-universal/pull/90
I know, but the fact that it is not included by default, then someone made a PR to hopefully get it in, but got refused, tell him to turn around to another issue, and then idling that issue for a long time now, it really pisses me off because there is no communication whatsoever, just like how I have this recent situation with LayerStack has fucked up their control panel, and stripped some features, not ever telling me, just avoided me. This is the part that pisses me off.
"come on, it is just a matter of adding the fucking dotnet SDK by yourself". You know, the problem is not that simple anymore, there is a little hidden agenda which turned into a stance problem, or, oh, well, I hate to say it, "technological politics".
Yeah, I know, "tech is just a tool", then where are all the criticisms when the punks are boasting how "Rust or Golang is so fast, Python and Node is dead" blah blah blah.
Anyway, if you are just trying to hide the vendetta against dotnet, then just say it. Say it out loud and stop fucking around. Make an assertion and stand on your fucking ground.
I might point out that passive-aggressive weasels hiding behind stiff corporate speak are visually undifferentiatiable from people doing the best they can in a project with multiple competing goals in a world where they could lose their jobs for a careless public comment. Not everybody is free.
> I have to go on a furious exchange in the tickets to them
...furious?
Did you have to?
Did you _have_ to?
The corporate history of C# is undeniably strong, and even till this day in modern C#, they still have a lot of legacy components in it, like AppDomain, APM and MarshalByRefObject.
It is also unfortunately that C# has largely lost in the AI race, that it failed to gain tractions from AI developers despite heavy investments from Microsoft. Early AI stuff like Semantic Kernel actually included C# as its primary languages besides from Python. Nowadays it is not mentioned so much and the default is just Python but perhaps it really isn't a fair comparison due to the gravity of Python in AI as a whole.
The fact that even within Microsoft, Rust wins over C# for agentic development, is a clear indication that C# has lost a meaningful place in software development as its former parent started to berate it as well.
Sure, maybe Bing and a large part of Azure still relies it, probably because of ASP.NET Core and Orleans, but outside of the two Microsoft greenhouses, it is a free for all battle royale where C# don't even have a chance of being picked at due to being too weak.
The last few thing C# is good at is just Unity I'm afraid, and that is also dying too as Unity is also not doing so well lately.