Hello all,<p>I am building a backend API and I have free reign to choose a language to build it in. I know it will deal with async and I heavily prefer statically typed languages, so those are my two preferences.<p>I work as a C++ programmer but obviously no way I am using that. I am a big fan of Rust, but I know async is painful and why put up with borrow checker when GC is fine.<p>The two I am leaning towards is Go and Kotlin, but very interested in opinions. My experience in either is basically 0
Go for Go, super easy to pickup (relatively speaking), clean deployment and good story on network services and concurrency. Kotlin is ok but only better if you have an existing JVM infrastructure you want to leverage. Otherwise, stick with Golang.<p>Also, congrats on not falling for the hype and going for Rust. Saved yourself a ton of headache.
Java. Async is for the birds, use ordinary threads first and in the p=0.001 case that's not good enough use virtual threads. Given all the work that's gone into Java since JDK 8 I think the case for Kotlin, Scala and other static JVM languages is weaker than it's ever been.