Comment Re:Seriously? (Score 1, Interesting) 97
One of the frequently-admired features of Unix is the fact that a lot of the basic utilities are filters - they take text on stdin and produce transformed text on stdout that can be fed to another filter in the chain.
C is a really terrible language to use for text-processing, even more so once you move beyond ASCII. How it ever survived for writing such programs is actually quite hard to imagine. In fact, I can't really think of a use for which it is particularly suited - it doesn't give you the real control you need to write system code (it only works for writing operating systems because of known compiler behaviour and the ability to inline machine code) and it barely qualifies as a high-level language. It continues to exist because it's the ubiquitous least common denominator - everything has a C compiler.
The problem we have today is that we're essentially trying to use procedural languages to describe programs that don't proceed with a traditional control flow - the familiar ideas of scope and lifetime that came from languages like Algol don't really apply and are hard to describe when there are asynchronous threads that may or may not also be running in parallel. I don't think Rust is actually helping us with the description, it's simply making the problem more clearly manifest.
We're in the "something must be done" phase but have yet, I fear, to identify a "something" that moves us sufficiently far forward to be worth the upheaval.