История ООП
Суть
ООП — парадигма, в которой программа описывается как набор объектов: каждый объединяет данные и поведение, скрывает своё состояние и общается с другими через сообщения (вызовы методов). Три кита: инкапсуляция, наследование, полиморфизм; к ним обычно добавляют абстракцию.
Ключевые вехи
- Simula 67 (1967) — первые классы, объекты и виртуальные методы.
- Smalltalk (Xerox PARC, Алан Кэй, 1970-е) — «всё есть объект», общение только через сообщения, динамическая типизация. Именно Кэй ввёл термин «объектно-ориентированное программирование».
- C++ (1980-е) — ООП поверх C со статической типизацией и vtable.
- Objective-C (1984) — C + механизм сообщений из Smalltalk (
objc_msgSend, динамическая диспетчеризация). На нём построены Cocoa и UIKit, поэтому идеи Smalltalk до сих пор видны в iOS: делегаты, KVO, селекторы, target-action. - Java / C# (1990–2000-е) — массовое ООП, интерфейсы вместо множественного наследования.
- Swift (2014) — мультипарадигменный язык: классы и наследование есть, но язык поощряет value types, протоколы и дженерики (protocol-oriented programming), а в последних версиях — строгую модель конкурентности (actors,
Sendable).
Почему это важно для iOS-разработчика
Понимание истории объясняет, почему в одном проекте уживаются два стиля: динамический ObjC-рантайм (@objc, селекторы, message passing) и статический Swift (структуры, протоколы, дженерики, специализация компилятором). Сильный ответ подчёркивает, что в Swift ООП — лишь один из инструментов, а не единственный способ проектировать.