On formal principles, we'd expect that robustness and expressiveness are inversely related, on the principle that low-entropy data can be recovered with better fidelity than dense data, but I think I can name a counterexample to this principle in practice: I think Haskell does a phenomenally good job of being both expressive and robust if we consider a practical definition of robust, whereby pain is not measured by likelihood of error but the cost of an error. Compile-time errors are extremely cheap in comparison to run-time errors.
You want an "almost right" program to fail, but you want it to do so at compile time. Runtime silent failure is the worst.
You want an "almost right" program to fail, but you want it to do so at compile time. Runtime silent failure is the worst.