5. Programming languages ensure properties distant from the ones we want
Programming languages can help a lot, but they can't solve the "software engineering" problem
Ex: Contravariant type checking (such as in ML) has significant benefits, but regardless, it doesn’t eliminate all errors in ML programs
- And covariant typing, with its flaws, may be useful in some situations