---

The state of low-level, system programming

In Ousterhout’s words: C provides the hardcore mechanisms while scripting engines execute the policies. The practices in programming have increasingly become polarized between either using a scripting engine or else a system language.

Any language that aims to replace C as a system language will need to be able to carry its functions over the C ABI (Application Binary Interface). It must be possible for such contender to be called from C code, because that is what it takes to be called from a modern scripting engine too. If a C library were a duck, this is what you can do with a duck: