Object-Oriented Programming vs Imperative Programming