History of object-oriented programming