Objectives for the next year

Richard Laager rlaager at wiktel.com
Sun Jun 20 21:45:19 UTC 2021


On 6/20/21 2:31 AM, Achim Gratz via devel wrote:
> Eric S. Raymond via devel writes:
>> My choice for a language to move to would be Go. Possibly one of you
>> can argue for a different choice, though if you agree that Go is a
>> suitable target I would find that information interesting.
> 
> Since the last round of discussion both sides of the argument have been
> moving.  If you believe that Rust will become a first-class
> implementation language for the Linux kernel, that would tip the scales
> in favor of rust considerably in my view.  Most importantly that seems
> to ensure long-term support for one of the main target platforms for
> ntpsec.  Both language eco-systems have drank a bit too much from the
> DevOps cool-aid (no, I don't trust any of your code registries or I
> could have installed an ntpd in Rust or Go already) and ntpsec would be
> well advised to figure out how to deal with the inevitable dependencies
> before it starts.
> 
> I'd argue that Go would be a mistake for the daemon component and most
> of the library even without that consideration (Rust has deterministic
> runtime behaviour, Go does not -- by design).

That's my "gut feeling" too. It seems that Rust is more geared to this 
sort of "systems programming" application.

I get the impression that Go has a shallower learning curve (i.e. is 
easier to get started with), which is good, but may unfairly prejudice 
Go in quick Go-vs-Rust "bake off" comparisons.

It also seems like a C-to-Rust conversion could be done incrementally. 
Various big projects are using Rust for part, but not all, of their 
application. I haven't tended to see that sort of thing with Go, but 
maybe it is happening there too.

With the caveat that there is a LOT I don't know in this space, if it 
was my call, I'd aim for an incremental conversion of ntpd to Rust and 
leave the userspace tooling in Python. After the daemon is converted, I 
would re-evaluate whether the userspace tooling should be converted.

-- 
Richard


More information about the devel mailing list