Memory usage of a toy C# server and client with 500K concurrent connections on
C# is a pretty underrated language. I've worked with JS, Java, C++, Perl and I've always preferred to use C# for personal projects.<p>async/await - C# is the ONLY language which gets this right. Javascript has it now but you need to be use libraries which support it too, which are hard to find. Kotlin has coroutines but Java base library doesn't have support for coroutines so you can't use it all the way through and create a chain of all async functions. Once you use async/await it's hard to go back, since the code is as easy to write as synchronous code.<p>Then you have proper support for generics(unlike Java which has type erasure), LINQ queries and an amazing IDE which is visual studio.