But java helps! Does it? Sort of, because: \begin{itemizep} \item it improves APIs compared to C, since you can hide or encapsulate information in the state of an object \item it has a garbage collector, so you don't need to worry too much about memory \item an experienced programmer will find it easier to manage side-effects in Java, because you can e.g. have every impure functions throw an IO exception \end{itemizep}