Replacing C

Eric S. Raymond esr at thyrsus.com
Sun Jan 8 14:48:09 UTC 2017


Achim Gratz <Stromeko at nexgo.de>:
>                                                The real question to
> ask, IMHO, is how many lines of code are implemented in the exact space
> that NTP occupies and how dependent the owners of that code are on
> keeping it working.

But how to define that space is itself not entirely clear.  One of the
more intelligent comments in the (generally high-quality) discussion of
the "Getting past C" blog post argued that because ntpd is more like a
network service daemon than an OS kernel, Go is a better fit than
Rust. I think there is merit in that argument, and it suggests that
the YouTube service *is* "the exact space".

> > The out-of-left-field possibility I've been mulling privately is
> > Ocaml.  But not very seriously; one of the criteria has to be
> > accessibility to future maintainers coming out of a C background
> > and Ocaml doesn't do at all well there.
> 
> If you're considering systems that require a runtime (I'm not sure if
> OCaml still requires one, but last I looked it did), then somebody
> surely will bring up Java… :-)

Yeah, that's not going to fly at all. :-)

On the other hand, I don't consider requiring a runtime to be an
*intrinsic* disqualifier.  The real question is, in my view, the
95th-percentile length of latency-inducing stop-the-world stalls.
If it's below 100 microseconds that is almost certainly good enough.

I now believe Go will pass that test and Java would not.  As to other
languages...I could speculate, but I'd rather measure.
-- 
		<a href="http://www.catb.org/~esr/">Eric S. Raymond</a>


More information about the devel mailing list