Why is OOP useful?
Programming objects are useful abstractions of physical objects
Even programs that do not deal with physical objects often want to offer behavior that models physical objects
It is no surprise that OOP started out as a tool for writing simulation programs