Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Yea, sounds like cross platform AOT compiled C# not being mature and performant was a big reason that C# was rejected.

One other thing I forgot to mention was that he talked about how the current compiler was mostly written as more or less pure functions operating on data structures, as opposed to being object oriented, and that this fits very well with the Go way of doing things, making 1:1 port much easier.



> sounds like cross platform AOT compiled C# not being mature and performant was a big reason

I don't think it was the performance. C# is usually on par or faster than Go.

Could be the lack of maturity but also that I believe Go produces smaller binaries which makes a lot of sense for a CLI.


I never heard C# being fasted than Go, except on certain batched jobs and even there Go can be better.


For example, look at the Techempower benchmarks.

I benchmarked HTML rendering and Dotnet was 2-3x faster than Go using either Templ or html/template.

Etc.


The c# benchmarks where they didn't use the framework to do any of the actual templating?

those hardcoded byte arrays are how everyone does templating everywhere right?

or are you talking about after they changed back their "platform" test to not do that and is substantially slower than go

https://dusted.codes/how-fast-is-really-aspnet-core


This is sorely outdated. Although for anyone with an axe to grind dustin’s articles are convenient enough.


The HTML benchmarks I did myself with Razor pages.

The link your provided is severely outdated using data from Round 21 and .NET 6.


Immaturity of native AOT sounds like a likely culprit here. If they're after very fast startup times running classic C# is out. And native AOT is still pretty new.

You can write pure functions operating on data structures in C#, it's maybe not as idiomatic as in Go, but it should not cause problems.


it's maybe not as idiomatic as in Go, but it should not cause problems.

Based on interviews, it seems Hejlsberg cares a lot about keeping the code base as idiomatic and approachable as possible. So it's clearly a factor.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: