Comment Re: Nothing of value was added (Score 1) 158
If your developers are incapable of making errors, then I'd like to know what species they are.
We have this crap every time Rust comes up, that somehow there are perfect C programmers out there who never introduce memory safety bugs. You know who I wouldn't trust to ever write a C program I use in production? Someone who thinks there are perfect C programmers out there who never introduce memory safety bugs. There is no such thing as a perfect programmer.
I look at projects like curl because I have huge admiration for how they're managed. They've made memory safety bugs throughout, and spend a lot of time actually trying to figure out how to prevent them in the future. And they do still make them! But over time they've created processes that at least reduce the number considerably, going as far as to rewrite standard C library functions to prevent common errors.
THAT is the type of C programmer I admire. Not someone who claims that they've never made a memory safety bug. Those people are liars. But people who actually take the time to find ways to reduce common types of error, including memory safety.
You know what those people do a lot? They look into alternative languages that have the features they want but solve whole classes of error. That's why many are excited by Rust. That's why C++ has had dramatic improvements over the last 10-20 years so devs who restrict themselves to a language subset can write safe code.
C is a bad language. It arguably was in the early 1970s. It should never have become the defacto standard for applications in the 1980s and 1990s (and we'd have seen less idiocy from ANSI about UB had it not been.) And the number of legitimate applications for C is reducing by the minute.
The only anti-rewrite argument that has some legitimacy when it comes to the GNU userland tools are that rewrites inherently introduce new bugs, while the GNU userland is for the most part well understood at this point. But... the counter to the latter is the environment changes. It's not been 30-40 years of code audits, it's been 30-40 years of "Does this command line flag do what is expected", with little thought given to mallocs without frees and frees without mallocs, and buffer overflows that weren't noticeable on an Intel 386 but are when you compile 64 bit code on an ARM. There have been times nobody cared about a bug because it didn't matter, but suddenly it does because that executable happens to be called by an IMAP daemon and you can use it to create and execute a local file.
The rewrite will introduce some bugs. Some will be severe. But there will be likely fewer bugs in the new tools in 5 years than there still will be in the GNU userland equivalents at that point. Rust itself will catch memory safety errors. And type safety errors. And a few other classes of error. And code will be more readable to a newer generation of programmers brought up in an environment where while(*x++=*y++);, while readable to you and me, might as well be Perl in terms of readability.