|
Сеньтябрские тезисы Егора Бугаенко (+толстое видео)
|
|||
---|---|---|---|
#18+
mayton Давайте хоть Хелло Ворлд напишем на этом убийце. Что его писать? Вот он есть: https://github.com/yegor256/takes#quick-start Если включить фантазию и интерполировать это (или просто промотать там дальше вниз), то получатся прикольные портянки с кучей вложенных друг в друга конструкторов и анонимных классов, которые в свою очередь будут очень похожи на банальную функциональщину + куча синтаксического мусора. В сухом остатке мы получаем иммутабельные структуры и кучу функций, которые их обрабатывают, всё это завернётся в какой-нибудь декларативный сборщик, а ООП будет выкинуто на помойку, потому что это не нужные ограничения, не нужный секас с иерархией наследования и непомерно раздутый код. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2020, 13:09 |
|
Сеньтябрские тезисы Егора Бугаенко (+толстое видео)
|
|||
---|---|---|---|
#18+
mayton Алексей Роза тут ещё походу каждый свой ООП имеет ввиду... разве кто-то против того, чтобы сгруппировать переменные и раздавать им параметры в любой момент, а потом одним объектом их юзать где надо? так вот, это ещё не ООП. Это ещё C, а там не было ООП. А вот когда в C++ добавили, что в тот же объект можно ещё и функций напихать, да ещё и наследовать, да виртуальные интерфейсы, да ctor/dtor, вот тогда то и случился ООП. А потом когда поняли что возможностей всё равно не хватает - взяли пре-процессор. Усилили его в 100 крат и сделали процессор шаблонов. В скобках замечу что он вообще никакого отношения к ООП не имеет. Просто отдельная магия которая закрывает дыры в абстракциях. По сути - попытка мягко протащить идеи функционального программирования хотя-бы в фазе компилляции. Не хватает нам минералов... Не хватает. а накой препроцессор, и что там можно усилить, если это всё только на этапе компиляции? В конце то всё равно асм с голыми инструкциями... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2020, 13:16 |
|
Сеньтябрские тезисы Егора Бугаенко (+толстое видео)
|
|||
---|---|---|---|
#18+
crutchmaster а ООП будет выкинуто на помойку, потому что это не нужные ограничения, не нужный секас с иерархией наследования и непомерно раздутый код. по-моему тут взаимоисключающие параграфы... "наследование" означает, что код не будет дублироваться а "непомерно раздутым" он становится как раз из-за дублирования ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2020, 13:19 |
|
Сеньтябрские тезисы Егора Бугаенко (+толстое видео)
|
|||
---|---|---|---|
#18+
Алексей Роза В конце то всё равно асм с голыми инструкциями... Эта фраза ставит точку в техническом споре. Но если тема топика - "что на выходе". Но программисту по большему счету плевать какая бинарная колбаса на выходе. Вот скажите кто из Java разработчиков смотрит в байткод? Кто смотрит как работает JIR и что на его выходе? Программисту важно чтобы его код работал по законам и правилам ИСХОДНОГО материала. Тоесть исходник сцуко важен. Он является предметом исследования когда проблемы. По нему ходит дебаггер. Его анализируют статик-анализаторы. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2020, 13:23 |
|
Сеньтябрские тезисы Егора Бугаенко (+толстое видео)
|
|||
---|---|---|---|
#18+
crutchmaster mayton Давайте хоть Хелло Ворлд напишем на этом убийце. Что его писать? Вот он есть: https://github.com/yegor256/takes#quick-start Если включить фантазию и интерполировать это (или просто промотать там дальше вниз), то получатся прикольные портянки с кучей вложенных друг в друга конструкторов и анонимных классов, которые в свою очередь будут очень похожи на банальную функциональщину + куча синтаксического мусора. В сухом остатке мы получаем иммутабельные структуры и кучу функций, которые их обрабатывают, всё это завернётся в какой-нибудь декларативный сборщик, а ООП будет выкинуто на помойку, потому что это не нужные ограничения, не нужный секас с иерархией наследования и непомерно раздутый код. а потом будет слушать на конфах про то как очередной гений будет объяснять как сворачивать эту функциональщину назад в процедурное чтобы не бомбить heap кучей на каждый чих создаваемых чистых функциях объектах. PS. недавно где то уже такое слышал. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2020, 13:29 |
|
Сеньтябрские тезисы Егора Бугаенко (+толстое видео)
|
|||
---|---|---|---|
#18+
crutchmaster mayton Давайте хоть Хелло Ворлд напишем на этом убийце. Что его писать? Вот он есть: https://github.com/yegor256/takes#quick-start Если включить фантазию и интерполировать это (или просто промотать там дальше вниз), то получатся прикольные портянки с кучей вложенных друг в друга конструкторов и анонимных классов, которые в свою очередь будут очень похожи на банальную функциональщину + куча синтаксического мусора. В сухом остатке мы получаем иммутабельные структуры и кучу функций, которые их обрабатывают, всё это завернётся в какой-нибудь декларативный сборщик, а ООП будет выкинуто на помойку, потому что это не нужные ограничения, не нужный секас с иерархией наследования и непомерно раздутый код. Мне кажется Егоро-кодинг выглядел-бы красиво не на языке Java. А на чем-то другом. Он в лекции хвастался что знает Руби. Может он - рубист и этот стиль перенёс туда. По существу - главный критерий КМК - что эта лестница - работает. Если она - работает - это успех. Если она - лаконичнее чем SpringBoot configs - то это бОльший успех. И если она позволяет быстрее и оперативнее вносить изменения и фиксить баги - это успех в квадрате. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2020, 13:32 |
|
Сеньтябрские тезисы Егора Бугаенко (+толстое видео)
|
|||
---|---|---|---|
#18+
lleming процедурное чтобы не бомбить heap кучей на каждый чих создаваемых чистых функциях объектах. Насколько я понимаю... он не бомбит. Создает 1 раз на приложение. Это похоже на коробочное Jetty-Hello-World или NodeJS-hello-world. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2020, 13:33 |
|
Сеньтябрские тезисы Егора Бугаенко (+толстое видео)
|
|||
---|---|---|---|
#18+
mayton Я имею в виду не Delphi а именно Pascal. При этом я не говорю что он был плох. Просто писали без ООП. Borland Pascal 5.0/5.5/6.0 - везде было ООП и целый TurboVision. Целевые платформы - DOS/Windows 3.x. Если правильно помню, то даже BP 6.0 мог комфортно работать на бесдисковой EC-1841 - интегрированная среда вполне умещалась килобайт в 300-400. Це-компилятор тоже мог (не помню уже - Борланда или MS), но сильно неудобнее: вставьте дискету № и так по кругу. А дискет там было 12 штук. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2020, 14:20 |
|
Сеньтябрские тезисы Егора Бугаенко (+толстое видео)
|
|||
---|---|---|---|
#18+
Basil A. Sidorov mayton Я имею в виду не Delphi а именно Pascal. При этом я не говорю что он был плох. Просто писали без ООП. Borland Pascal 5.0/5.5/6.0 - везде было ООП и целый TurboVision. Целевые платформы - DOS/Windows 3.x. Если правильно помню, то даже BP 6.0 мог комфортно работать на бесдисковой EC-1841 - интегрированная среда вполне умещалась килобайт в 300-400. Це-компилятор тоже мог (не помню уже - Борланда или MS), но сильно неудобнее: вставьте дискету № и так по кругу. А дискет там было 12 штук. Хорошо. Я согласен с тем что я лично не писал на TurboVision. И возможно там действительно есть ООП. И оно используется как ООП. А не как набор энтитей. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2020, 14:22 |
|
Сеньтябрские тезисы Егора Бугаенко (+толстое видео)
|
|||
---|---|---|---|
#18+
Я тоже не писал на TurboVision. Но примеры - смотрел. ООП с конструкторами, деструкторами, наследованием, инкапсуляцией и полиморфизмом появился у Borland-овского диалекта Pascal в конце 1980-х. Концепция-то была уже не новая, мягко говоря. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2020, 14:29 |
|
Сеньтябрские тезисы Егора Бугаенко (+толстое видео)
|
|||
---|---|---|---|
#18+
Технически.. ООП с наследованием даже есть в PL/SQL. Но практически он - не прижился. Я повидал много ентерпрайза на оракле с хранимками но я не видел практически его (ООП) применения. С JavaScript вообще интерсно. Там теоретики могут друг друга таскать за бороды и биться насмерть но так и не договорятся о том есть ли в JS ООП или нет и вообще ЧТО считать объектом и классом. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2020, 14:34 |
|
Сеньтябрские тезисы Егора Бугаенко (+толстое видео)
|
|||
---|---|---|---|
#18+
Я писал на TurboVision в 6 и 7 Турбо/Борланд Паскалях, и даже под его впечатлением с другом сделали свой TurboVision для графики 320х200х256. Все там в синтаксисе было ООП-но. Доки по ООП читал в распечатанном виде, она была от Турбо Паскаля 5.5. То есть таки да, в паскалях ООП давным-давно. Но писать же в ОО-стиле можно и без ООП-синтаксиса. Адисты, вроде, вообще только в этом веке дожили до синтаксиса с точкой. До этого просто передавали Self и не парились. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2020, 15:07 |
|
Сеньтябрские тезисы Егора Бугаенко (+толстое видео)
|
|||
---|---|---|---|
#18+
Беда в том что современная Java - не совсем строгая с точки зрения ООП. Тоесть она конешно ООП. Но иногда позволяет делать действия которые идут вразрез с классикой. Например вы создали приватное поле. И 3.14дец. Никто не имеет право его видеть. Просто такова была ваша идея как создателя класса. Но не тут-то было. Школьники взяв рефлексию или Mockito спокойно нарушают это правило и доступаются и модифицируют ваше приватное поле (!) как хотят ибо надо им срочно затестить что-то. Здесь я хочу сказать - стоп дорогие товарищи. Это - не ООП. Я вообще в таких кейсах считаю что это тестить не надо ибо дизайн не предполагал. Либо сам создатель объекта должен был грантовать ему доступ если это поле несет важный смысл для тестинга. Или представте себе девятку с модулями? Кто-то пробовал порефлексировать девятку когда правила доступа к внутренней части модуля уже декларированы? Как там? Exception? Или любители мокито придумают еще более страшную магию чтобы и это сломать? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2020, 15:17 |
|
Сеньтябрские тезисы Егора Бугаенко (+толстое видео)
|
|||
---|---|---|---|
#18+
Basil A. Sidorov Я тоже не писал на TurboVision. Но примеры - смотрел. ООП с конструкторами, деструкторами, наследованием, инкапсуляцией и полиморфизмом появился у Borland-овского диалекта Pascal в конце 1980-х. Концепция-то была уже не новая, мягко говоря. Писал на Turbo Vision и даже за деньги, когда был студентом. Вполне себе нормальный оконный фреймворк. Правда, по удобству написания CRUD-приложений он уступал тому же FoxPro. А так, вполне миленькие менюшки-окошечки. Правда все были в одном стиле - Borland :-) Все в ООП. Правда ручное управление памятью и правильное написание деструкторов немного напрягало. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2020, 15:22 |
|
Сеньтябрские тезисы Егора Бугаенко (+толстое видео)
|
|||
---|---|---|---|
#18+
mayton Технически.. ООП с наследованием даже есть в PL/SQL. Но практически он - не прижился. Я повидал много ентерпрайза на оракле с хранимками но я не видел практически его (ООП) применения. Так правильно! Зачем скриптовому языку ООП, строгая типизация и развитая система типов? Гавное что-то быстро наговнокодить, чтобы как-то работало. А кто и как эту кучу кода будет поддерживать, это не проблема пейсателя. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2020, 15:24 |
|
Сеньтябрские тезисы Егора Бугаенко (+толстое видео)
|
|||
---|---|---|---|
#18+
mad_nazgul mayton Технически.. ООП с наследованием даже есть в PL/SQL. Но практически он - не прижился. Я повидал много ентерпрайза на оракле с хранимками но я не видел практически его (ООП) применения. Так правильно! Зачем скриптовому языку ООП, строгая типизация и развитая система типов? Гавное что-то быстро наговнокодить, чтобы как-то работало. А кто и как эту кучу кода будет поддерживать, это не проблема пейсателя. :-) Нет. Технически PL/SQL имел опцию нативной компилляции. Поэтому он уже не скриптовый. Беда была в том что тип существовал отдельно от таблицы. А в базах данных таблица - это королева. Она - суть главная при дворе. От нее все танцуют. И идея была просто не развита. Можно было клепать новые таблицы с типов как печенье из формочки. Но идея декларации типа по сути уничтожена. Кому нужен бесполезный тип который не оказывает влияния на рантайм? Рантайм оказался важнее типов. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2020, 15:29 |
|
Сеньтябрские тезисы Егора Бугаенко (+толстое видео)
|
|||
---|---|---|---|
#18+
mad_nazgul, mayton, Странный у вас интерес - почему бд не нуждается в ООП) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2020, 15:34 |
|
Сеньтябрские тезисы Егора Бугаенко (+толстое видео)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp mad_nazgul, mayton, Странный у вас интерес - почему бд не нуждается в ООП) Это был вопрос? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2020, 15:36 |
|
Сеньтябрские тезисы Егора Бугаенко (+толстое видео)
|
|||
---|---|---|---|
#18+
Алексей Роза "наследование" означает, что код не будет дублироваться Это догма, я так понимаю? Не может быть такой ситуации, что один и тот же метод будет нужен в разных местах иерархий? inb4: пофиксить иерархию. Удачи. Обделаешься 2 раза еще на стадии выбора названий классов своему ООП зоопарку. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2020, 16:28 |
|
Сеньтябрские тезисы Егора Бугаенко (+толстое видео)
|
|||
---|---|---|---|
#18+
mayton PetroNotC Sharp mad_nazgul, mayton, Странный у вас интерес - почему бд не нуждается в ООП) Это был вопрос? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2020, 16:33 |
|
Сеньтябрские тезисы Егора Бугаенко (+толстое видео)
|
|||
---|---|---|---|
#18+
lleming а потом будет слушать на конфах про то как очередной гений будет объяснять как сворачивать эту функциональщину назад в процедурное чтобы не бомбить heap кучей на каждый чих создаваемых чистых функциях объектах. ..убежал домой и не успел закончить мысль Именно. Поэтому следом в помойку полетит иммутабельность с ритуальной чистотой, ибо любые идеи "сперва человек, а потом компутер" заканчиваются тормозами и пляской с оптимизациями. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2020, 16:34 |
|
Сеньтябрские тезисы Егора Бугаенко (+толстое видео)
|
|||
---|---|---|---|
#18+
mayton Насколько я понимаю... он не бомбит. Просто ему нечем бобмить. Не дошел до таких проблем. Когда дойдет наделает сеттеров взад и предаст свои идеалы. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2020, 16:36 |
|
Сеньтябрские тезисы Егора Бугаенко (+толстое видео)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp mayton пропущено... Это был вопрос? Да я и не собирался спорить. Просто констатировал как ОНО есть сейчас. Хотя вот создатели InterSystems Cache возможно и не так думают. Но у них наверное есть свои бока... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2020, 16:47 |
|
Сеньтябрские тезисы Егора Бугаенко (+толстое видео)
|
|||
---|---|---|---|
#18+
crutchmaster Алексей Роза "наследование" означает, что код не будет дублироваться Это догма, я так понимаю? Не может быть такой ситуации, что один и тот же метод будет нужен в разных местах иерархий? inb4: пофиксить иерархию. Удачи. Обделаешься 2 раза еще на стадии выбора названий классов своему ООП зоопарку. это если вообще ВЕСЬ код хранить в классах (как в JAVA), тогда да - будут накладки и проблемы А если делать как в C++, где весь код в обычных helper-функциях, а в классах только автоматическая обработка спец.данных, тогда не будет таких накладок. Тогда каждый класс занимается своим уникальным делом, а ф-и находятся либо снаружи (и доступны всем), либо таки в наследуемом классе. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2020, 17:05 |
|
Сеньтябрские тезисы Егора Бугаенко (+толстое видео)
|
|||
---|---|---|---|
#18+
mayton С JavaScript вообще интерсно. Там теоретики могут друг друга таскать за бороды и биться насмерть но так и не договорятся о том есть ли в JS ООП или нет и вообще ЧТО считать объектом и классом. Классы можно объявлять как в основном потоке кода, так и «инлайн», по аналогии с Function Declaration и Expression. В объявлении классов можно использовать методы, геттеры/сеттеры и вычислимые названия методов. При наследовании вызов конструктора родителя осуществляется через super(...args), вызов родительских методов – через super.method(...args). Концепция классов, которая после долгих обсуждений получилась в стандарте ECMAScript, носит название «максимально минимальной» . Т.е., в ней только те возможности, которые 100% необходимы. В частности, не вошли «приватные» и «защищённые» свойства. То есть, все свойства и методы класса технически доступны снаружи. Возможно, они появятся в будущих редакциях стандарта. я бы сказал, там классы уровня C (т.е. struct), но с наследованием и методами... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2020, 17:09 |
|
|
start [/forum/topic.php?fid=59&msg=39934177&tid=2120883]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
124ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 231ms |
total: | 453ms |
0 / 0 |