С момента появления первых электронно-вычислительных машин разработка программного обеспечения прошла большой путь: от восхищения фактом написать хоть какую-нибудь программу до осознания того, что именно технология разработки программного обеспечения определяет прогресс в вычислительной технике.
Ранее развитие вычислительной техники было сосредоточено на решении технических проблем. Предметом забот была, прежде всего, аппаратура, вычислительная машина как таковая. Казалось вполне естественным, что программы для таких машин должны были разрабатываться в двоичных кодах. Программирование было уделом энтузиастов.
История развития объектно-ориентированного подхода отражает и повторяет историю вычислительной техники в целом. С 1940-х годов первые работы по вычислительной техники были связаны исключительно с тем, что в настоящее время называют программированием. Позже выделились программирование и анализ. Точно так же первым привлекло к себе внимание объектно-ориентированное программирование, позже появилось объектно-ориентированное проектирование, ещё позже объектно-ориентированный анализ.
Хотя Тен Дейк и Канц объявили, что разработчики ракет использовали элементарные объектно-ориентированные методы ещё в 1957 году, история объектно-ориентированного программирования на самом деле началась в Норвегии в 1967 году. Однако с развития языка программирования Simula, основанного на языке ALGOL и более раннем языке моделирования дискретных событий Simula 1 и продолжался использоваться в 1970-х годах объектный подход параллельно с языком Smalltalk, который сделал понятие «объект» объектом поклонения.
Стоить отметить, что в объектно-ориентированном языке Simula были представлены все понятия структурного программирования. С тех пор было создано много языков, которые были порождены этими разработками и получили название «объектно-ориентированных».
Основная цель объектно-ориентированного программирования, как и большинства других подходов к программированию – повышение эффективности разработки программ. Идеи объектно-ориентированного программирования оказались плодотворными, и нашли применение не только в языках программирования, но и в других областях Computer Science, например, в области разработки операционных систем.
Появление объектно-ориентированного программирования было связано с тем наблюдением, что компьютерные программы представляют собой описание действий, выполняемых над различными объектами. В роли последних могут выступать, например, графические объекты, записи в базах данных или совокупности числовых значений. В традиционных методах программирования изменение данных или правил и методов обработки часто приводило к необходимости значительного изменения программы. Всякое существенное изменения программы – это большая неприятность для программиста, так как при этом увеличивается вероятность ошибок, вследствие чего возрастает время, необходимое для «доводки» программы. Использование объектно-ориентированного программирования позволяет выйти из такой ситуации с минимальными потерями, сводя необходимую модификацию программы к её расширению и дополнению. Необходимо заметить, что объектно-ориентированное программирование не является панацеей от всех программистских бед, но его ценность как передовой технологии программирования несомненна. Изучение идей и методов ООП может существенно упростить разработку и отладку сложных программ.