Eric S Raymond, author of "The Cathedral and the Bazaar", blogs via Ibiblio
I wanted to like Rust. I really did. I've been investigating it for months, from the outside, as a C replacement with stronger correctness guarantees that we could use for NTPsec [a hardened implementation of Network Time Protocol].
[...] I was evaluating it in contrast with Go, which I learned in order to evaluate as a C replacement a couple of weeks back.
[...] In practice, I found Rust painful to the point of unusability. The learning curve was far worse than I expected; it took me those four days of struggling with inadequate documentation to write 67 lines of wrapper code for [a simple IRC] server.
Even things that should be dirt-simple, like string concatenation, are unreasonably difficult. The language demands a huge amount of fussy, obscure ritual before you can get anything done.
The contrast with Go is extreme. By four days in of exploring Go, I had mastered most of the language, had a working program and tests, and was adding features to taste.
Have you tried using Rust, Go or any other language that might replace C in the future? What are your experiences?
(Score: 3, Informative) by Thexalon on Monday January 16 2017, @10:45PM
Also, AC apparently didn't even RTF Summary, where ESR states:
Yeah, what a slouch and an idiot that ESR must be, learning a language in a week. Python was the same way for me: zero to useful code in under a week, because Guido's ideas were mostly good.
As far as what the next C should be, I really don't have an answer, because for the kinds of things C is used to do, particularly the really low-level stuff like operating systems, it's extremely hard to top C. People much smarter than me (e.g. Bjarne Stroustrup) have been trying to write the "next C" for decades, and none have succeeded.
The only thing that stops a bad guy with a compiler is a good guy with a compiler.
(Score: 0) by Anonymous Coward on Tuesday January 17 2017, @08:36AM
In the end, the backend libraries of most C-killers are written in C, whereas you can implement the C backend in C.