Re: The Case for Rust (in the base system)

From: Poul-Henning Kamp <>
Date: Sun, 21 Jan 2024 07:51:32 UTC
Ihor Antonov writes:

> As much as I love the idea of Rust, I don't think it is going to solve 
> our problems.

The tools are /never/ the real problem.

I will readily agree that the ISO-C people have done more to hurt
the C language, and less to improve it, than anybody else, and that
we need to deal with their continued refusal to come into the 1990'ies.

But after I read this entire thread, the "pro" argument for Rust
seems boil down to just "all the cool kids do it".

That exact same argument was used for "Perl in base" and "Java in
base" previously, and if we hadn't dodged those bullets, we wouldn't
be here today.

The sprawling and loosely connected ports collection has several
strata of "all the cool kids do it" languages, and it seems to be
a much better "organism" for dealing with their eventual obsolescence,
than our tightly integrated src collection.

I will also "second" the comment about C++ getting to be a really
good language, in particular if you play it like a violin:

	Just because you /paid/ for the entire bow, doesn't mean you
	have to /play/ the entire bow.

So rather than jump onto this or some other hypewagon-of-the-year,
only to regret it some years later and having to repay the technical
debt with interest to get it out of the tree again, I propose that
we quietly and gradually look more and more to C++ for our "advanced

I also propose, that next time somebody advocates for importing
some "all the cool kids are doing it language" or other, we refuse
to even look at their proposal, until they have proven their skill
in, and dedication to, the language, by faithfully reimplementing
cvsup in it, and documented how and why it is a better language for
that, than Modula-3 was.


Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
phk@FreeBSD.ORG         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe    
Never attribute to malice what can adequately be explained by incompetence.