@Bratken
Музыкант

Почему говорят, что ООП это зло?

Привет.
Начал изучать PHP и программирование в целом. Лет 10 назад как-то было дело, но не пошло. Сейчас всерьез решил изучить языки программирования, саму по себе суть программирования с парадигмами и прочим, шоб мозги не пропадали... да и нравится мне, когда все под контролем. И это чувство, что ты что-то создал =)
И ООП докучи начал курить отдельной темой, суть и всё такое. На ютубе нарыл туториалы, плейлисты, сохранил, втыкаю себе, и в связанных видео мелькают видосы типа David West OOP is Dead! Long Live OODD! и Object-Oriented Programming is Bad. Я так понимаю, что это что-то вроде холивара? Гуру, дайте объективное мнение, чтобы у меня не было предвзятости или по крайней мере, чтобы я понимал, куда лезу. Я в программировании практически ноль, но понимаю, что под каждые нужды свое решение, язык и т.д.
  • Вопрос задан
  • 1387 просмотров
Пригласить эксперта
Ответы на вопрос 5
index0h
@index0h
PHP, Golang. https://github.com/index0h
Глупости. ООП - очень мощная парадигма. Бывают кейсы, когда она слишком накладна, это правда, но заявлять, что она зло...
Безусловно, если обмазываться всякими хаскелями, лиспами, эрлангами, скалами... где ООП парадигма может не давать профита, либо не применима вовсе - конкретно в тех языках ее использовать и не нужно.
В языках же заточенных по ООП парадигму - ФП с большой вероятностью будет плохой идеей.

Как то статья была, жаль не нашел (если кто найдет - отпишите в комментариях пожалуйста), со сравнением ООП и ФП, одним из тезисов было сравнение существующих принципов и паттернов, в ООП: наследование, полиморфизм, инкапсуляция, SOLID, IoC, ServiceLocator,... а у ФП: функции, функции, функции...

ФП сейчас набирает популярность, однако много людей, в том числе из моих знакомых, ярых поклонников этого направления вернулись обратно к "классике", в основном причина была такая: слишком высокая цена поддержки.
Ответ написан
lxsmkv
@lxsmkv
Test automation engineer
Парадигма программирования навязывает (в нейтральном смысле слова) определенный образ мышления при анализе и декомпозиции задачи. Говорить что ооп это зло все равно что говорить что вегетарианство это зло. Другая перспектива она не лучше и не хуже - она другая. Domain Driven Design это подход к декомпозиции задачи для впихивания ее в объектно-ориентированную модель так чтобы обьекты/классы соотносились с обьектами реального мира из области применения. Логично. Просто когда это все объекто ориентированное добро начиналось люди писали классы просто чтобы впихнуть туда свои функции, и класс был просто контейнером функций и не был вроде как по сути объектно-ориентированным. Оно и до сих пор часто так. Эти всякие ConnectionManager, CoreUtilInitializer и прочее, попытка разделить классы по задаче в алгоритмической иерархии а не в соответствии с реальными действиями пользователя. Ну вот оттуда эта вся дискуссия на тему и произрастает. Художники гиперреалисты говорят мол нужно больше деталей, а абстракционисты говорят -меньше. И те и те художники. Так что переживать не о чем, правда у каждого своя :)
Ответ написан
Daniro_San
@Daniro_San
Программист
Просто попробуйте одно, затем другое и придите к тому варианту который вам больше понравится. Где то нужно ООП, где то не нужно. Полиморфизм, в виде виртуальных функций, к примеру позволяет прекрасно избавиться от лишних условий.
Ответ написан
@malbaron
ООП - злоупотребляют частенько.

Был рассвет ООП - лет 20 назад, и после чего лет 10 как все делали жестко в ООП.
Поняли, что это перебор.

Сейчас в моде облегченный ООП: не классы, а интерфейсы.
Ответ написан
Комментировать
@evgeniy_lm
Срач вокруг ООП это тема из 70-х. Тогда когда компьютеры были медленными и памяти было мало возражения оппонентов ООП (тогда это были серьезные, уважаемые люди) были аргументированы и понятны. Сейчас тезис "ООП - зло" вызывает не более чем печальную улыбку и четко маркирует товарищей которые к программированию ни какого отношения не имеют.
Хотя тоже не стоит злоупотреблять ООП, например класс решения квадратных уравнений выглядит нелепо
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы