Looking to pickup a backend language? Consider Rust or Golang!
Golang is a popular choice for a backend language as it is designed for concurrency and high performance networking. While this is an existing popular choice, Rust is slowly gaining adoption due to ensuring memory safety guarantees with the borrow checker.
Starting with Golang, I’d say it is a generally easier language to understand if you are coming from C/C++ due to the fact that it uses pointers and similar style syntax. It’s a language also designed around a large codebase so it’s quite scalable in that aspect as well. Given its design for concurrency and high performance networking, it’s also a natural choice for large distributed systems. This language is great for understanding how such systems are properly built.
Going into Rust, I would say it definitely has a higher learning curve. On top of that, one of the growing pains of adopting the language is the large compile times. This would greatly affect large codebases and would need more open source collaboration to identify proper code structure to ensure compile times don’t exceed certain thresholds. In terms of building a distributed system, Rust is great due to its memory safety guarantees. It was the language of choice used in my graduate distributed systems course at UC San Diego. Thus, you can avoid some of the nil pointer exceptions you face in other programming languages. Performance wise, Rust does not really disappoint! It even is being added into the Linux Kernel.