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

An interesting question is how the compile times in Go compares to those of Java and C#. If the language is somewhat easier, but not very easy, and compiles faster but not really that much faster, it might not be a good way forward for Java and C# developers.

I've always assumed that the compile time comparisons were made against C++ since Google had a lot of large systems written in C++ that they said took a long, long time to compile.

Today I think C# using .NET Core is a good general language. It is easy to learn, fast and compilles pretty fast. It also handles concurrency with async/await or threads. It still has longer start up time than Go, like Java, and might use a bit more memory but should work for most systems.




I totally agree with you on C#, I don't think there's a really strong reason to chose Go over C# for a lot of applications.

Some of the core advantages of Go over Java are less pronounced with C# since C# has async/await, value types, easier C interop, unsafe, etc. The tooling for C# is great too.

C# also has bindings through Xamarin/Mono for iOS/Android/Windows/Mac development that the Go ecosystem doesn't really have an equivalent for. And of course there's Unity for 3D stuff.

There's some minor things like Go being a little less verbose or having a little easier learning curve, but I didn't really find those to be significant problems when using C#.

The main reason I'm using Go right now is mostly the GC properties. It's easier to avoid allocating memory but also the pause times are much lower than most other GC languages including C# [1]. For anything where latency is important Go is an interesting choice these days since it's hard to go any lower without adopting some form non-GC memory management.

https://cdn-images-1.medium.com/max/1600/1*_Nom6vNYqIAqozgK0...


Download the community version of Delphi or Eiffel.

Then check their compile times, language features vs Go.

Or even better, get Turbo Pascal 7 for MS-DOS and run it on DosBox.

It is only impressive for developers that never used such languages.


JIT time disappears after a warm up, but cold start of a .net application is massive.


AOT has always been an option on .NET, even if until Windows 8 it lacked some love.

Additionally it has been available in Mono and other runtimes as well.




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: