Object-Oriented Programming is enabled by advances in compiler technology and programming language design supporting en-capsulation and inheritance. This technical adjustment has had a surprisingly broad impact on strategies for design and development of software. This paper explains what Object-Oriented Programming is, why it has attracted so much interest, and then critically examines its imp...