|
ООП умирает
|
|||
---|---|---|---|
#18+
К такому выводу я пришел. Я не буду приводить пруфы или цитаты известных деятелей мира инфор технологий. Их у меня достаточно. Они суть - облако. Каждое и них мало. Но их слишком много. Я просто акцентирую внимание на трендах. Существует тренд веб-программирования. Он основан на упрощенной модели объекта. Объекта прототипа. Лишенного каких либо строгих правили проектирования. ПО сути веб-программист оперирует микро-хеш-тебличками в узлах которых лежат произвольные безтиповые сущности. Могут быть полем. Либо функцией (методом). Веб программирование - многолико. Оно не обязательно основано на JavaScript. И оно не обязательно стоит в стеке браузера. Часть его - охватывает бэк-енд. С теми-же либеральными правилами. Существует тренд декларативного программирования на аннотациях (как один из способов взаимодействия с АОП). Аннотации полностью разрушают идеологию ООП. Они игнорируют (или обладают такой способностью) языковые иерархии классов. Они способны полностью поменять семантику зависимостей между классами. Они способны внедрить невидимый интерфейс. Создать невидимый прокси. Добавит логгинги, транзакции и политики безопасности. И все это - перпендикулярно ООП. Тоесть вне закона ООП. Этот тренд поддерживают современные Java/C# в виде синтаксиса и фреймворков. Существует давление т.н. функционального программирования . Интерес к нему периодически то понимается то спадает каждые 5-7 лет. Но совершенно очевидно что растущие ресурсы датацентров создают условия для того чтобы запускать в проуктив смелые и экспериментальные проекты на которые раньше все время чего-то не хватало. Сегодня - оптимизация for/while циклов чтобы добыть лишние несколько тактов CPU перестала быть актуальной. Скорость внедрения решения в прод. - для бизнеса важнее. Сюда-же до кучи Spark/BigData - как одну из имплементаций. Компилляторы стали умнее. Стали видеть намного уровней дальше. И человек (программист) как винтик этой системы в части оптимизации - выпал. Он - не нужен. Пускай он лучше думает над логикой верхнего уровня. We trust in compiller, bro! Существуют языки-отступники. В которые заложена дерзкая идея - отменить некоторые законы ООП которые вообще были раньше незыблемы. Например - утиная типизация в GoLang. Это - вызов. Это - перчатка в лицо класиическим ООП языкам. Существует интерес к т.н. акторному программированию (Erlang/Sony-Ericson как один из примеров имплементации). Полностью лишая логику состояния - он постулирует чистый рафинированный мир тестабельных компонент. Есть месседжи. И есть компоненты акторы. Эдакий себе Rest в пределах кристалла процессора. В довершение ко всему акторное программирование выводит новый уровень "отказоустойчивости" из коробки. Как вам? Потрясающе! И где здесь ООП? Месседжи? Ничего подобного. Это POJO. Или Records(Pascal). Или Tuples. Никакой инкапсуляции. Акторы? Возможно. Но с натяжкой. Ибо мало мотиваций. Для системы в которой единицей информации являются Tuples. Существует интерес к тестированию на Mocks(Mokito) . Которое "срезает кожу" с ООП. Оно "ломает" правила private. Шпионит за методами. Вобщем полный набор мозговых извращений. Это тоже бъет по лицу ООП. ООП - корчится. Ему нечего сказать в ответ. Оно - осталось в пыльных библиотеках университета в виде толстых и умных книжек года эдак 2000-го про системный анализ или может быть про ООП в С++. Или в старых изданиях Java. Оно еще осталось в виде дурацких вопросах на собеседовании. Где тех-лид с умным видом может вас спросить про "ромбовидное наследование" или про матрицу видимости public/protected/private. Это ... если захочет вас окончательно макнуть в грязь... Но я надеюсь что таких тех-лидов мы будем видеть все меньше и меньше. Вот как-то так. Спасибо всем кто дочитал мои буквы. Рад буду услышать ваши каменты. Поздавляю вас с Пятницей. Ваш покорный слуга mayton ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 21:58 |
|
ООП умирает
|
|||
---|---|---|---|
#18+
maytonНо я надеюсь что таких тех-лидов мы будем видеть все меньше и меньше. Надеюсь, этот очередной абсолютно бестолковый крестово-похоронный демарш, объясняется пятницей ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 22:49 |
|
ООП умирает
|
|||
---|---|---|---|
#18+
mayton, Попробуй взглянуть на тему с другого угла: Как раз утиная типизация и поведение, выражаемое в "акторских" терминах - характерные признаки "объектной ориентированности". Там где это нет, или даже не может быть - происходит неправомерный захват и использование терминов. По мысли изобретателей самого термина оно скорее еще не состоялось, чем умерло. Если и умерло - то в части попыток описать сложный мир взаимодействующих объектов прокрустовыми описаниями мира жизни программ наборами фиксированных иерархий классов. Живой мир программирования никогда не ложился и никогда не ляжет в те ложа. Тут не надо быть Тэсеем. Достаточно поговорить с театральным дизайнером, классическим органистом и джаз-гитаристом Аланом Кертисом Кэем (Alan Curtis Kay). И это, если у тебя есть средства отладки, позволяющие подсмотреть, что там происходит с объектами и в каком порядке - то ты, наверняка, имеешь дело не с объектным программированием. Оно, в варианте какого-нибудь smalltalk, отладке в обычном смысле почти не поддается, поскольку не подлежит. И, полагаю, вряд ли можно добиться того чтобы, например, Страуструп с энтузиазмом рассказывал о С++ именно как о языке "объектного программирования" с целью пропаганды последнего. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 22:57 |
|
ООП умирает
|
|||
---|---|---|---|
#18+
Дополню про Функциональное программирование . Некоторые считают что его нет. Что это метафора. Я зайду с другой стороны. Никакого ООП нет. Процитирую слова моего хорошего приятеля. Инструктора по Scala/Haskell. - Никакого ООП не существует. ООП - это миф. Это обычное процедурное программирование где каждый метод имеет неявный аргумент this. Добавлю про Наследование . Inheritance. Справочник переводит это термин как наследоство, унаследованное, наследование . Что тут сказать? Это самый неудачный термин. Он является причиной очень многих заблуждений и непониманий ООП. Буквальный перевод уводит нас в генетику и биологию. Области которые вообще ни краем не цепляют идею ООП. И ладно если собака наследует волка (интересно почему не наоборот?). Еще не дай бог в примерах напишут что цыпленок наследует свойства курицы. По поводу многоуровневого наследования. У меня есть личная неприязнь к подобного рода проектированию. Это - хуже чем goto. Особенно когда отладчик перемещает вас вверх-вниз по иерархии. Честное слово! Лучше композиция . Руки хочется поотбивать таким горе-кодерам. Добавлю своё собственное утверждение которе я писал давно в форуме. - Не существует никакого математического доказательства пользы от внедрения ООП. Есть просто наша вера в то что ООП - это хорошо. Мы никогда не сравнивали два проекта ООП-не-ООП. Никогда не меряли velocity Scrum-команд работающих в одинаковых условиях с ООП и не ООП. Добавлю цитату одного из мемберов по поводу множественного наследования . - Множественное наследование - это "бантик сбоку". Об инкапсуляции типа private . Существует точка зрения, что кодер который поставил private особым образом уведомляет нас о том что это поле нельзя смотреть. И изменять. Висит груша - нельзя скушать. Почти готов согласиться с утверждением. Однако я-бы смягчил требования инкапсуляции и сделал их рекомендательными. На уровне warnings компиллятора. Ну если разработчику очень нуна - все равно дизассемблирует. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 22:58 |
|
ООП умирает
|
|||
---|---|---|---|
#18+
hVosttmaytonНо я надеюсь что таких тех-лидов мы будем видеть все меньше и меньше. Надеюсь, этот очередной абсолютно бестолковый крестово-похоронный демарш, объясняется пятницей Ну... если вам так угодно - пускай будет пятничный демарш. Однако, милостивый государь, я желаю услышать ваши аргументы. В дополнение... P.S. Какие ваши доказательства? (с) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 23:00 |
|
ООП умирает
|
|||
---|---|---|---|
#18+
boobymayton, Попробуй взглянуть на тему с другого угла: Как раз утиная типизация и поведение, выражаемое в "акторских" терминах - характерные признаки "объектной ориентированности". Там где это нет, или даже не может быть - происходит неправомерный захват и использование терминов. Я-бы не стал проводить параллели между "акторским" ООП и нашим ООП. На заре строительства Erlang (1992) наш ООП также развивался поэтому у каждой архитектуры было свое определение ООП. По поводу уток. Меня часто раздражала ситуация когда при внесении изменений в базовый интерфейс - тонна кода становилась шлаком. Но еще более настораживает "молчаливое согласие" утенка-компиллятора взять и собрать просто "похожий" по методам код. Есть в этом что-то коварное... Знаете. Как затишье перед бурей. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 23:12 |
|
ООП умирает
|
|||
---|---|---|---|
#18+
boobyЕсли и умерло - то в части попыток описать сложный мир взаимодействующих объектов прокрустовыми описаниями мира жизни программ наборами фиксированных иерархий классов. Живой мир программирования никогда не ложился и никогда не ляжет в те ложа. Тут не надо быть Тэсеем. Достаточно поговорить с театральным дизайнером, классическим органистом и джаз-гитаристом Аланом Кертисом Кэем (Alan Curtis Kay). Вот с этого момента не понятно. С каким-каким описанием мира? Какой Тесей? Этот тот который в лабиринт ходил? P.S. Не знал что Алан Кей - дизайнер и музыкант. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 23:21 |
|
ООП умирает
|
|||
---|---|---|---|
#18+
boobyИ это, если у тебя есть средства отладки, позволяющие подсмотреть, что там происходит с объектами и в каком порядке - то ты, наверняка, имеешь дело не с объектным программированием. Оно, в варианте какого-нибудь smalltalk, отладке в обычном смысле почти не поддается, поскольку не подлежит. Хм.. не знал что в smalltalk есть проблемы с отладчиком. Это... принципиально неустранимо? Или были идеологические причины? И, полагаю, вряд ли можно добиться того чтобы, например, Страуструп с энтузиазмом рассказывал о С++ именно как о языке "объектного программирования" с целью пропаганды последнего. Я давно ничего не ожидаю от старины Бьярне. Его модель ООП не намного лучше или хуже чем Java/C#. Но еще до того как заниматься языко-строительством старику надо было пофиксить старые болячки языка. А именно - ввести нормальный тип даных int, long с сеткой соответствующей хотя-бы одной спеке. И ввести нормальный атомарный строковый тип. Можно даже мутабельный. Господи-боже. Неужели это было невозможно? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 23:32 |
|
ООП умирает
|
|||
---|---|---|---|
#18+
maytonК такому выводу я пришел..... Ну пришел, хорошо, что дальше. Так давай выкинем ООП (в твоей, старой, узкой интерпретации) из Явы, или из Явскрипта, или из ОС. Представил, что останется? Гвозди тоже устарели. Суперклей же есть, и шурупы... Да и буквы, в общем, тоже. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 23:45 |
|
ООП умирает
|
|||
---|---|---|---|
#18+
Согласен. Но нужно ввести понятие Tuple, и функции все скоупа класса. Просто функции. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2017, 00:03 |
|
ООП умирает
|
|||
---|---|---|---|
#18+
Я бы не был столь категоричным что "ООП умирает". Просто: разные задачи удобнее решать используя разные парадигмы. Ну и развивая эту мысль: ничто не запрещает тебе смешивать в одном проекте несколько парадигм. Начиная от самого очевидного - мульти-языковых проектов, когда сами языки подталкивают на использование того или иного подхода. И вплоть до смешивания несколько парадигм в одном языке. Да даже в одном модуле. Ничто не мешает тебе описывать методы класса держа в уме "это на самом деле функция и я пишу на ФП, поэтому она будет высчитывать результат только на основе параметров" :) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2017, 00:27 |
|
ООП умирает
|
|||
---|---|---|---|
#18+
Язык определяет мышление. Я часто по жизни сталкивался со спецами в каком-то языке. И меня часто поражала зашоренность мышления. Некоторые из них не способны мыслить вне категорий их любимого языка. А про смешивание парадигм я согласен. Программирование будущего - это микс. Где (я надеюсь) ООП не будет основным столпом строения. ОФП. Или ОАП. Объектно-функциональное. Или объектно-акторное. Просто теорию еще не подогнали под общий знаменатель. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2017, 00:35 |
|
ООП умирает
|
|||
---|---|---|---|
#18+
А меня угнетают ветвления вне зависимости от парадигмы. Если это - делай то, если не это - делай не то. В фокспро можно было собрать код динамически в строку и исполнить run time его без всяких ветвлений. Код получался простой и компактный. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2017, 00:48 |
|
ООП умирает
|
|||
---|---|---|---|
#18+
maytonНу... если вам так угодно - пускай будет пятничный демарш. Однако, милостивый государь, я желаю услышать ваши аргументы. В дополнение... P.S. Какие ваши доказательства? (с) Ну давайте, пройдёмся: mayton Существует тренд веб-программирования. Он основан на упрощенной модели объекта. Объекта прототипа. Лишенного каких либо строгих правили проектирования. ПО сути веб-программист оперирует микро-хеш-тебличками в узлах которых лежат произвольные безтиповые сущности. Могут быть полем. Либо функцией (методом). Веб программирование - многолико. Оно не обязательно основано на JavaScript. И оно не обязательно стоит в стеке браузера. Часть его - охватывает бэк-енд. С теми-же либеральными правилами. Если оперировать словом «тренд» таким образом, тогда можно сказать, что существуют ещё такие тренды, как «поесть», «поспать», «поссать» Веб-программирование, как и любое другое программирование, на чём угодно, и где угодно, основано на решении поставленных задач, автоматизация. Не более, и не менее. ООП не служит здесь взаимоисключающим фактором, и никак не претит вашим либеральным правилам. Хотите говнокодить? Вам никто не запрещает. Чтобы поковырять у себя в носу и запилить убогенький сайтик, вам ООП не нужен, это совершенно точно. Как 99% других требуемых квалифицированному разработчику знаний. Не аргумент. mayton Существует тренд декларативного программирования на аннотациях (как один из способов взаимодействия с АОП). Аннотации полностью разрушают идеологию ООП. Они игнорируют (или обладают такой способностью) языковые иерархии классов. Они способны полностью поменять семантику зависимостей между классами. Они способны внедрить невидимый интерфейс. Создать невидимый прокси. Добавит логгинги, транзакции и политики безопасности. И все это - перпендикулярно ООП. Тоесть вне закона ООП. Этот тренд поддерживают современные Java/C# в виде синтаксиса и фреймворков. Аспекты отлично дополняют ООП. Это не взаимоисключающие понятия, в текущих реализациях АОП работают поверх ООП и даже в терминах ООП. maytonСуществует давление т.н. функционального программирования . Интерес к нему периодически то понимается то спадает каждые 5-7 лет. Но совершенно очевидно что растущие ресурсы датацентров создают условия для того чтобы запускать в проуктив смелые и экспериментальные проекты на которые раньше все время чего-то не хватало. Сегодня - оптимизация for/while циклов чтобы добыть лишние несколько тактов CPU перестала быть актуальной. Скорость внедрения решения в прод. - для бизнеса важнее. Сюда-же до кучи Spark/BigData - как одну из имплементаций. Компилляторы стали умнее. Стали видеть намного уровней дальше. И человек (программист) как винтик этой системы в части оптимизации - выпал. Он - не нужен. Пускай он лучше думает над логикой верхнего уровня. We trust in compiller, bro! ХЗ вообще что вы тут хотели сказать. Какое-то пустое разглагольствование. maytonСуществует интерес к т.н. акторному программированию (Erlang/Sony-Ericson как один из примеров имплементации). Полностью лишая логику состояния - он постулирует чистый рафинированный мир тестабельных компонент. Есть месседжи. И есть компоненты акторы. Эдакий себе Rest в пределах кристалла процессора. В довершение ко всему акторное программирование выводит новый уровень "отказоустойчивости" из коробки. Как вам? Потрясающе! И где здесь ООП? Месседжи? Ничего подобного. Это POJO. Или Records(Pascal). Или Tuples. Никакой инкапсуляции. Акторы? Возможно. Но с натяжкой. Ибо мало мотиваций. Для системы в которой единицей информации являются Tuples. Когда у вас в руках молоток, весь мир для вас гвозди? Не смешите, есть множество различных методологий и техник, они работают как по отдельности, так и совместно, решая свой скоуп задач. Религиозный манер рассуждений не уместен для человека, который должен решать эти задачи. Инкапсуляция заложена не только в ООП, это вообще основа абстракции. А бизнесу вообще на ваши Tuples и месседжи глубоко накласть, в реальном мире существует таксономия, объекты и состояния. Просто в одно время евангелисты, проталкивающие ООП в массы слегка переусердствовали, создав впечатление, что ООП призван полностью отражать модель реального мира. maytonСуществует интерес к тестированию на Mocks(Mokito) . Которое "срезает кожу" с ООП. Оно "ломает" правила private. Шпионит за методами. Вобщем полный набор мозговых извращений. Бред какой-то. Если у какого-то человека руки растут из одного места, с кривизной, достойной восхищения Пьера Безье, то это вообще никак не аргумент. У нас в проекте более тысячи тестов. Покрытие ~90%, ни одного теста, который бы лез в private тестируемого компонента. Никто ни за чем, ни шпионит. Все компоненты тестируются изолировано. Для интеграционных тестов всё ещё проще. maytonООП - корчится. Ему нечего сказать в ответ. Оно - осталось в пыльных библиотеках университета в виде толстых и умных книжек года эдак 2000-го про системный анализ или может быть про ООП в С++. Или в старых изданиях Java. Ни одного аргумента, который хотя бы выглядел как более менее адекватный, я не увидел. Странные набросы, пространные рассуждения ни о чём, перевирание и притягивание за уши не совместимых друг с другом фактов. maytonОно еще осталось в виде дурацких вопросах на собеседовании. Где тех-лид с умным видом может вас спросить про "ромбовидное наследование" или про матрицу видимости public/protected/private. Это ... если захочет вас окончательно макнуть в грязь... Элементарщина какая-то. Если кого-то этим можно макнуть в грязь, то у меня для него печальные новости. Пусть шурует в дворники и не позорится. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2017, 00:54 |
|
ООП умирает
|
|||
---|---|---|---|
#18+
maytonПросто теорию еще не подогнали под общий знаменатель. Этого никогда не случится. Всё течёт, всё меняется. Когда-то ООП возводили в абсолют. Сейчас он просто встал в строй. Но очень нелепо выглядят люди, которые с непонятной мотивацией начинают набрасываться на инструмент, который им ничего плохого не сделал. Примерно как пинать ножку стула, об которую ударился. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2017, 00:55 |
|
ООП умирает
|
|||
---|---|---|---|
#18+
mayton - Никакого ООП не существует. ООП - это миф. Это обычное процедурное программирование где каждый метод имеет неявный аргумент this. Никаких людей не существует. Это просто набор атомов. maytonЭто самый неудачный термин. Он является причиной очень многих заблуждений и непониманий ООП. Буквальный перевод уводит нас в генетику и биологию. Области которые вообще ни краем не цепляют идею ООП. И ладно если собака наследует волка (интересно почему не наоборот?). Еще не дай бог в примерах напишут что цыпленок наследует свойства курицы. Непонимание происходит от недостатка опыта и знаний. Не более того. Найти виноватого в своём невежестве, это подход ребёнка. maytonПо поводу многоуровневого наследования. У меня есть личная неприязнь к подобного рода проектированию. Это - хуже чем goto. Особенно когда отладчик перемещает вас вверх-вниз по иерархии. Честное слово! Лучше композиция . Руки хочется поотбивать таким горе-кодерам. Борьба и проблемы с отладчиком, это проблемы джуниора. Возвращаемся к опыту и знаниям. Многоуровневое наследование это возможность, инструмент. Вилкой тоже можно себе в глаз ткнуть, и коль скоро у вас есть подобный опыт, не стоит теперь устраивать крёстные походу на вилки и ножи. mayton - Не существует никакого математического доказательства пользы от внедрения ООП. Есть просто наша вера в то что ООП - это хорошо. Мы никогда не сравнивали два проекта ООП-не-ООП. Никогда не меряли velocity Scrum-команд работающих в одинаковых условиях с ООП и не ООП. ООП это не хорошо и не плохо, это лишь инструмент. Один из. Неумение его использовать -- не основание набрасывать на вентилятор. Есть такое понятие: испытание временем. Всё, что приносит пользу и эффективно остаётся, остальное умирает. Мы больше не ездим на колесницах с деревянными колёсами, правда? И нет никаких причин устраивать какие-то исследования и сравнения, просто более прогрессивное и эффективное вытеснило устаревшее и неэффективное. ООП пока никто вытеснять и не думал, успешно применяется до сих пор. mayton - Множественное наследование - это "бантик сбоку". Множественное наследование реализации мало где поддерживается. Множественное наследование контрактов, поддерживается очень хорошо, и пользу трудно переоценить. maytonОб инкапсуляции типа private . Существует точка зрения, что кодер который поставил private особым образом уведомляет нас о том что это поле нельзя смотреть. И изменять. Висит груша - нельзя скушать. Почти готов согласиться с утверждением. Однако я-бы смягчил требования инкапсуляции и сделал их рекомендательными. На уровне warnings компиллятора. Ну если разработчику очень нуна - все равно дизассемблирует. Вы абсолютно не понимаете зачем нужна инкапсуляция, зачем нужен private. К чему эти рассуждения? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2017, 01:16 |
|
ООП умирает
|
|||
---|---|---|---|
#18+
mayton, ты столько написал, что мне букв не хватит ответить на все. Но на некоторые реплики попробую. maytonКакой Тесей? Этот тот который в лабиринт ходил? Да, это он туда уже в качестве претендента на Афинский трон потянулся. А до того, как заявиться в Афины принцем, он уже совершил убийство Прокруста. maytonДополню про Функциональное программирование. Некоторые считают что его нет. Что это метафора. Я зайду с другой стороны. Никакого ООП нет. +-, как-то так: Функциональное программирование как раз существует, и по простой причине - под ним есть мат. модели, обладающие вычислительной полнотой (лямбда-исчисление, плюс, независимо, модель Марковских алгорифмов, с языком ея Рефалом). Под "вашим" ООП - не более чем "принципы", а вот под "не вашим акторным" ООП вдруг снова оказывается Тьюринг-полная моделька вычислений. maytonНе знал что Алан Кей - дизайнер и музыкант. А еще он детский психолог-самоучка. В Squeak достаточно большую часть среды занимают модули, специально предназначенные для обучения детей программированию. В части программирования вообще и ООП в частности, я его скорее как визионера воспринимаю. Имхо, изобретенные им объекты и ООП - чистый и неприкрытый визионерский акт; свинг на компьютерной клавиатуре, вместо гитарных струн. Имхо, существо этого видения состоит в разглядывании экземпляра объекта как экземпляра работающей программы. В неформальном описательном отношении работа smalltalk-программы относится к описанию акторной модели вычислений как 1:1. (они и породили взаимно друг-друга, в конце концов - сначала smalltalk зажег акторных мыслителей, а потом сам изменился под впечатлением от их обратного влияния). Объект - программная единица. Понятие класса вторично. Объекты (программы) могут работать самостоятельно, взаимодействовать с другими программами (объектами) путем посылки сообщений и порождать новые программы (объекты). Есть принципиально важные вещи, без которых мир таких программ беден. Именно динамическая "утиная типизация" , например, отвечает за такую самоизменяемость/взаимоизменяемость совместно выполняемых программ (=объектов), при которой они могут менять способ своего взаимодействия по мере развития вычислительного процесса. В смысле состояния этом мире есть, с одной стороны, набор взаимно не наблюдаемых локальных состояний каждой из работающих программ; глобально же существует только набор (зарегистрированных в среде) передаваемых сообщений (ближайшая аналогия в терминах "вашего ООП" - одновременно производимых в этом мире вызовов методов на объектах, зарегистрированных в системе выполнения, но "разговаривающие помалу" предпочитают избегать аналогии сообщение<->метод класса, настаивая на их не полной эквивалентности). Такое видение не гарантирует никаких плюшек программисту автоматически - ни кристальной ясности кода, ни понимания, что сейчас происходит в системе, ничего, кроме веры . Веры в то, что можно написать очень много программ, каждая из которых будет очень маленькой, и все они смогут "разговаривать" друг с другом, работая каждая независимо от другой. Это инструмент, с помощью которого можно создать как то, что просто не сможет работать, поскольку не сможет полностью стартовать, так и то, что сможет работать очень надежно и очень быстро и при минимуме расходов как на память, так и на координацию взаимодействия. В этой истории штуки вроде иерархии наследования глубоко вторичны. Не то, чтобы наследования совсем нет. Как раз есть, но не интересно. Можно, создавая новый объект , унаследоваться от любого другого из уже существующих объектов , и полностью изменить его поведение. Никакого посыла в сторону создания протяженных статически определенных иерархий просто нет, так как наследуются не классы, а динамические объекты (одни программы порождают другие программы, такие, которые дальше должны функционировать независимо и автономно). В смысле эффективной реализации такого видения ООП совсем не умерло. Оно, действительно, скорее еще не родилось в завершенной форме, которую можно было бы разглядывать как Давида от Микеланджело. А раз "не ваше" еще не родилось, то, может оказаться, что похороны "вашего" тоже преждевременны. По части отладки: попалась, кстати, беседа еще с одним доктором психологии от программирования, коллега Кэя. Жалуется на трудности разглядывания в отладчике, с целью понимания происходящего, списка одновременно зарегистрированных сообщений. https://jug.ru/2016/09/bugayenko-west/ ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2017, 03:29 |
|
ООП умирает
|
|||
---|---|---|---|
#18+
mayton, эээ Вы серьезно? Чего употребляли? :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2017, 07:56 |
|
ООП умирает
|
|||
---|---|---|---|
#18+
Существуют хипстеры и этим все сказано. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2017, 10:13 |
|
ООП умирает
|
|||
---|---|---|---|
#18+
Ну, конечно, по-любому закусывать надо. В то же время определённые тенденции есть. Часть "программистов" в настоящее время с ООП уже практически не сталкиваются. В то же время, мне думается, что слухи о его смерти сильно преувеличены. Я вот лично больше с базами данных ныне. Так вот тоже, бывает, слышу, что реляционные СУБД загибаются и нафиг они нужны. Ан нет, не загибаются и нужны. Просто подвинули их в ряде ниш. Например, говносайт можно не на MySQL сделать, а на Mongo и т.п.. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2017, 11:26 |
|
ООП умирает
|
|||
---|---|---|---|
#18+
ИМХО никуда ООП не денется. Все эти упрощения в новых ЯП для снижения порога входа и привлечения дешевой рабочей силы для выполнения рутинной работы. Все свежеизобретенные ЯП направлены на то чтобы любой школьник, прочитав пару статей в инете, мог начать клепать сайты. Потом он все-равно упрется в необходимость изучить старую добрую теорию, но это будет потом, когда отступать уже не захочется. Все тоже самое творится с SQL, точнее с теорией реляционных БД. Например MS изобрел подход EF Code-First : тыкаешь мышем, создаешь объекты, а IDE за тебя генерит структуру БД. Вся работа с БД осталась под капотом, но когда начнет тормозить придется поразбираться с особенностями работы СУБД, теорию почитать и т.д. ИМХО Идет нормальный процесс созревания отрасли. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2017, 12:18 |
|
ООП умирает
|
|||
---|---|---|---|
#18+
maytonООП умирает .... ООП никогда и не было монополистом на IT рынке Взять хотя бы яхто-мерение между Биллом и Ларри. Где до последних покупок второго была хоть капля ООП ? Отсутствие ООП никак не помешало ему купить всех любителей чая на корню. Т.ч. сказать, что "умирает" это сильно, я бы скорее сказал, пытается в муках родится. Ну или родители пытаются понять, как же воспринимать сие "чадо". В общем, ребенок получился совсем не таким, как задумывали "что выросло, то выросло". maytonЯ просто акцентирую внимание на трендах... Не уверен, что это тренды. Больше похоже на метания из стороны в сторону. Как раз трендом было: _стандартизация_, усиление типизации, формализации и модульности. Процедурные языки, ООП, паттерны проектирования, UML... Похоже, тренд дошел до конца и "работа выполнена успешно, положительный результат достигнут не полностью". Обещали панацею от всех бед IT, а ее не получилось. То, что наблюдаем сейчас, просто метания из стороны в сторону и поиск очередной панацеи. mayton Существует тренд веб-программирования. Он основан на упрощенной модели объекта. Объекта прототипа. Лишенного каких либо строгих правили проектирования. ... Тренд ли? Любителей бейскика во все времена было достаточно. Тот же самый Java Script очень долго воспринимался как "недо-Java". Но оказалось, что "слепили из того что было, а потом что было, то и полюбили" (C) В скриптовых языках, часто вообще концепция типизации (а это не ООП, это еще процедурные языки) выброшена на свалку. Чистый Basic. mayton Существует тренд декларативного программирования ... ... Слово "аннотации совершенно лишнее. Надежда на декларативное программирование, рисование программ мышками уже давно. С ООП развивается параллельно. Тот же SQL. Успехи создать панацею... примерно такие же, как у ООП. IMHO 1) Взять тот же самый SQL. Там шатания не меньше. Попытка скрестить SQL, ООП, XML и бог знает что еще. Плюс возникло целое новое направление DWH и OLAP. Как я понимаю, "истинные кубы и OLAP" с ROLAP и классическим SQL тоже имеет мало чего общего. 2) Если же говорить о программирование интерфейсов, то чисто декларативные методы описания тоже не далеко продвинулись. А с учетом, что многие современные среды для Java вынужденны были интегрировать в себя скриптовые языки - можно сказать вообще полный бардак. Также дошли до тупика и уперлись лбом в стену. maytonСуществует давление т.н. функционального программирования . Интерес к нему периодически то понимается то спадает каждые 5-7 лет. В 1990 году видел APL. Но только несколько лет назад из Вики узнал, что это оказывается функциональный язык ))) Т.ч. закрадывается подозрение, что никакой панацеи и тут не будет. maytonСуществует интерес к т.н. акторному программированию (Erlang/Sony-Ericson как один из примеров имплементации). Полностью лишая логику состояния - он постулирует чистый рафинированный мир тестабельных компонент. Есть месседжи. И есть компоненты акторы... Здесь мне кажется, как раз продолжение старого тренда. Стандартизация, типизация, модульность.... акторы Как раз таки message-driven архитектура достаточно хорошо сочетается с ООП (взять хотя бы банальный Windows API. И message-driven и классы (окна)) maytonООП - корчится. Ему нечего сказать в ответ... Оно всю жизнь корчилось. Точнее, корчились и продолжают корчиться пользователи, которых пытались натянуть ТОЛЬКО на ООП. ООП имеет и будет иметь свою сферу применения. Которая еще долго никуда не денется. То, что наконец дошли до идеи, что ООП НЕ панацея для всех, это хорошо. Плохо то, что от самой идеи и надежд изобрести панацею не отказались. Кооперация между различными средами, продуктами и подходами пока что плохо получается. И часто пытаются одной из технологий заполонить все ниши, в том числе те, для которых она совершенно не приспособлена. И надо сказать, что наиболее массовая такая попытка наступления на чужие ниши, как раз была от "гуру ООП". То, что происходит сейчас, это как раз откат от неудачной попытки ООП заполонить собой все. Решить все задачи с помощью ООП не получилось, а в образовавшемся вакууме рождаются новые технологии. Часто даже такие, что лет 10-20 назад показались бы бредом сумасшедшего. IMHO ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2017, 12:59 |
|
ООП умирает
|
|||
---|---|---|---|
#18+
maytonНапример - утиная типизация в GoLang. Это - вызов. Это - перчатка в лицо класиическим ООП языкам. не вижу никакого противоречия. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2017, 13:25 |
|
ООП умирает
|
|||
---|---|---|---|
#18+
Спасибо всем. Попробую ответить сначала на общие вопросы. Я не употребляю вещества которые изменяют сознание. К алкоголю отношусь осторожно. Но я рад в любом случае что мои пятничные посты вызвали отклики. Сразу дам два поинта. 1) Я ни в коем разе не являюсь хейтером ООП. Более того. Я на нем зарабатываю деньги. Я просто в обычном пятничном стиле вбрасываю мысли которые накопились за несколько недель. Публиковать их в будни считаю неэтичным. Люди работают. Нефик. А перед выходными - самое то. Надеюсь что серъезных правил подфорума я не нарушил. 2) Я думаю что умирающий ООП будет умирать еще несколько десятков лет. Опять-же это относится к парадигме. Не к языкам. Они - по прежнему основываются на понятии "объекта". В качестве основания привожу бритву Оккама и математику. Все ненужные сущности без которых задача решается - можно успешно выбросить. ООП нужно для решения квадратного уравнения? Подумайте. Где и в какой части? А это простая задачка. 1-й курс. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2017, 16:53 |
|
|
start [/forum/topic.php?fid=16&fpage=3&tid=1339691]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
others: | 238ms |
total: | 386ms |
0 / 0 |