Object-oriented programming: OOP separates programs into self-contained modules (objects) which can be assembled and extended to create a complete program. Each object has defined attributes and methods. Popular languages that use object-oriented principals are Ruby, Python, PHP, C++, C# and Java. A majority of "modern" languages are fully object-oriented or have some object-oriented features.

