Rust vs. Go

As most of you probably know, Eric Raymond (ESR) is part of an effort to rewrite the Network Time Protocol (NTP) suite to be smaller and more secure. You can follow the project’s progress on their blog. The NTP daemon itself is written in C but ESR and the other developers are already considering the possibility of rewriting it in a safer language.

At this point, they are looking at two languages: Rust and Go. ESR being ESR, he decided to test their suitability by writing a small but realistic program in each language. He’s written up his results in a post that anyone considering learning either of those languages may find useful. The TL;DR is that while each language has some advantages over the other, Rust is not yet mature enough for NTP.

Bear in mind that the comparison was made with NTP in mind and that the conclusions might change for another application. This is a point that ESR stresses but many commenters ignored that nuance in favor of flamethrowers. Regardless, the post is a useful comparison and well worth taking a look at.

While you’re at it, take a look at the NTPsec blog posts to see some of the engineering decisions that the team has made and the rationales behind them. If you’re working with a team that doesn’t have the same discipline, you’ll learn things that will make your own efforts more effective.

This entry was posted in Programming and tagged . Bookmark the permalink.