Why Go and not Rust

A nice balanced article:

I’ve not delved into Rust yet, but continue to be very pleased using Go in Embedded Linux edge systems and in the cloud – it brings a reliability and productivity I’ve never experienced before. Could Rust do better – perhaps for some applications. If Rust binaries were significantly smaller than Go binaries, that could be a significant advantage when deploying updates over Cat-M cellular networks. However, there is likely a cost (language complexity, build times, difficulty cross compiling, etc). Some of the biggest challenges I’ve experienced on projects include:

  • getting the project done and shipped
  • scaling the project to multiple developers
  • getting the entire team on the same page and all pulling in the same direction
  • building a host of dependencies when we need to upgrade to a new version of OE
  • pulling in a dependency (like Gnuradio) that has a host of brittle dependencies that are very difficult to cross compile for an Embedded Linux system.

Thus, the simplicity of Go has provided a ton of value thus far.

Like any good craftsman, keep your toolbox full and use the right tool for the job!