В мире программирования серебряной пули нет, поэтому за неимением ее приходится использовать более или менее удовлетворяющие заменители. Там где получается об этом громко говорят и стараются "продвинуть идею в массы", после чего идея начинает жить сама, часто в довольно извращенной форме.
Читать дальше
Comments 22
Поправка, - "процедурное программирование" это синоним "императивного". Сравнивать ООП с ним по меньшей мере странно.
Reply
Reply
Не использую означает, что умею, но не хочу, точнее, не вижу смысла.
Reply
Reply
Reply
И конечно мне интересны примеры где ООП уместно. Тут выше сказал про GUI - ну я и не спорю. А еще?
Reply
Скажи мне, Михаил, что самое дорогое (не сердцу, а $$$) в жизненном цикле продукта на рынке?
Сходу отвечу: поддержка (саппорт, фиксы) и переписывание. Из банальной почасовки занятых рук.
Именно ради удешевления этого головняка и внедрен ООП как промышленный стандарт.
"Диаграмма классов на стене" решение не идеальное, но без нее в проекте через год (два, пять) начинает твориться полный бардак - проверено миллионами мух. Поэтому да, полиэтилен или что там еще, но: это дешево, это скейлится, и это работает.
Бизнес платит и заказывает музыку, втч. невзирая на курс "компиляторы".
Reply
Reply
Мыслишь не теми категориями. Самое дорогое - профейлить соответствие продукта нуждам рынка, потому что тогда у бизнеса тупо нет продукта. И просраны не деньги разработки, а value всей бизнес-задачи. Стоимость переписывания здесь исчезающе мала. А продукт в большинстве случаев не развивается и не успевает за рынком (из практики) именно тогда, когда является черным ящиком на уйпойми каких технологиях.
Предложи бизнесу
а) хуевый продукт на говеном ООП руками индусов - с прозрачностью структуры (и заменяемостью разработчиков за рыночную цену), и
б) отличнейший продукт вида "черный ящик" хуйпойми на чем и как с ним дальше жить
- бизнес выберет первое.
И будет прав, нахуя ему эта рулетка?
Рынок выбрал ООП - дешево и с гарантиями. Качество (довольно, впрочем, абстрактное) никому там нахрен не интересно. А вот supportability - очень даже.
++ свежая дописка про UML вообще не из этой оперы.
Reply
Я то тут про архитектуру. И UML - это как раз тот костыль, без которого в ООП никак, по изложенным в посте причинам. Так что дописка - просто пример развития идеи о некотором мета-уровне из которого растет код
Reply
Уже случилось это позже? Или еще ждать. :)
Reply
Reply
В процесе перехода на гибридные ЯП (с С# на F#, а с Java на соответственно Scala), я тоже пришёл к выводу, что, как правило, любой ОО-код можно успешно ресоурсить на функциональный, используя замыкания, размеченные объединения и технику сопоставления с образцом. При этом читаемость кода всегда улучшается. Тут единственная проблема видится мне в привычке программистов думать в терминах ложных представлений об ООП, навязанных C++ и Java в первую очередь.
Объектно-ориентированное программирование объединяет данные вместе с кодом, который их обрабатывает и это продается как преимущество.Нет. Цимес ООП в динамическом (мульти)полиморфизме, а не в статическом связыании (структурировании) кода и данных. Последнее выдаётся как премущество Java и С++ ("паблик статик файнл Борщ Борщ борщ нью Борщ", ага ), хотя изначально в Simula и Smalltalk заложена принципиально иная парадигма. Которая, как известно, успешно реализована в CLOS. ( ... )
Reply
Reply
Прототипное ООП лучше даже одним лишь отсутствием классов, плюс возможность динамической структуризации. javascript, видимо, не самый удачный пример такого ЯП ввиду наличия множества граблей. Но он всё же достаточно удобен, поскольку граблей таки меньше, чем к примеру в С++, их можно обойти малой кровью. Автор формата json назвал его "Lisp в шкуре C"
Reply
Есть отличный краткий курс (просмотреть и даже попробовать можно за день, а то и меньше)
https://github.com/filonenko-mikhail/ub-lisp
После него можно сразу легко и свободно рассуждать об устрицах :)
Reply
Leave a comment