Compiler-enforced discipline is the best kind of discipline. What the author wants is ML. Specifically, he wants:<p><pre><code>    1. A statically typed language
    2. Exhaustive handling on the type of returned values
    3. To discourage impure functions or mutable state
</code></pre>
Other languages (eg Rust, Haskell) fit these criteria as well. C might be forgiven given its age, but Go really has no excuse for such a weak type system.