If your final goal is building something today which can be used in production especially networking, server or web api go for golang as it’s mature, fast and performant with a very good and large eco-system of libraries. So if your systems programming involves network, servers or web API go with golang.<p>If you need to experiment with a new language and build something may be a new OS library encapsulating it’s C libraries around safety guarantees provided by borrow checker syntax try Rust. Also Rust with it’s rich type system and support of generics give you nice development experience similar to C++.<p>Rust still has a long way to go before it becomes 10% of what’s written in C++. But given it’s support from Microsoft and popularity among some programmer community, it might become popular in coming 10 years. So it will still be nice to learn for future. Just remember Rust has a large syntax area, expressive type system and steep learning curve especially with borrow checker syntax. So be prepared to spend 2x-3x developtment time compared to golang if doing systems programming where golang is strong like networking and servers, even though you will hear from Rust evangelist it won’t, but given current eco-system it will take time.<p>Golang has become old boring technology which just works and highly productive.<p>So given small syntax area and opinionated design like C, you will either like golang or hate it. People who tend towards Rust are in the opposing camp of golang.