Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 5 [6] 7   вперед  Ctrl      все
 Re: Сеньтябрские тезисы Егора Бугаенко (+толстое видео)  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 948
mayton
Давайте хоть Хелло Ворлд напишем на этом убийце.

Что его писать? Вот он есть:
https://github.com/yegor256/takes#quick-start

Если включить фантазию и интерполировать это (или просто промотать там дальше вниз), то получатся прикольные портянки с кучей вложенных друг в друга конструкторов и анонимных классов, которые в свою очередь будут очень похожи на банальную функциональщину + куча синтаксического мусора.
В сухом остатке мы получаем иммутабельные структуры и кучу функций, которые их обрабатывают, всё это завернётся в какой-нибудь декларативный сборщик, а ООП будет выкинуто на помойку, потому что это не нужные ограничения, не нужный секас с иерархией наследования и непомерно раздутый код.
4 мар 20, 13:09    [22092475]     Ответить | Цитировать Сообщить модератору
 Re: Сеньтябрские тезисы Егора Бугаенко (+толстое видео)  [new]
Алексей Роза
Member

Откуда: РФ
Сообщений: 48
mayton
Алексей Роза
тут ещё походу каждый свой ООП имеет ввиду...
разве кто-то против того, чтобы сгруппировать переменные и раздавать им параметры в любой момент, а потом одним объектом их юзать где надо?
так вот, это ещё не ООП.
Это ещё C, а там не было ООП.
А вот когда в C++ добавили, что в тот же объект можно ещё и функций напихать, да ещё и наследовать, да виртуальные интерфейсы, да ctor/dtor, вот тогда то и случился ООП.

А потом когда поняли что возможностей всё равно не хватает - взяли пре-процессор. Усилили его в 100 крат
и сделали процессор шаблонов. В скобках замечу что он вообще никакого отношения к ООП не имеет.
Просто отдельная магия которая закрывает дыры в абстракциях. По сути - попытка мягко протащить идеи
функционального программирования хотя-бы в фазе компилляции.

Не хватает нам минералов... Не хватает.

а накой препроцессор, и что там можно усилить, если это всё только на этапе компиляции? В конце то всё равно асм с голыми инструкциями...

Сообщение было отредактировано: 4 мар 20, 13:20
4 мар 20, 13:16    [22092483]     Ответить | Цитировать Сообщить модератору
 Re: Сеньтябрские тезисы Егора Бугаенко (+толстое видео)  [new]
Алексей Роза
Member

Откуда: РФ
Сообщений: 48
crutchmaster
а ООП будет выкинуто на помойку, потому что это не нужные ограничения, не нужный секас с иерархией наследования и непомерно раздутый код.

по-моему тут взаимоисключающие параграфы...
"наследование" означает, что код не будет дублироваться
а "непомерно раздутым" он становится как раз из-за дублирования
4 мар 20, 13:19    [22092486]     Ответить | Цитировать Сообщить модератору
 Re: Сеньтябрские тезисы Егора Бугаенко (+толстое видео)  [new]
mayton
Member

Откуда: loopback
Сообщений: 45379
Алексей Роза
В конце то всё равно асм с голыми инструкциями...

Эта фраза ставит точку в техническом споре. Но если тема топика - "что на выходе".

Но программисту по большему счету плевать какая бинарная колбаса на выходе. Вот скажите
кто из Java разработчиков смотрит в байткод? Кто смотрит как работает JIR и что на его выходе?

Программисту важно чтобы его код работал по законам и правилам ИСХОДНОГО материала.
Тоесть исходник сцуко важен. Он является предметом исследования когда проблемы.
По нему ходит дебаггер. Его анализируют статик-анализаторы.

Сообщение было отредактировано: 4 мар 20, 13:24
4 мар 20, 13:23    [22092494]     Ответить | Цитировать Сообщить модератору
 Re: Сеньтябрские тезисы Егора Бугаенко (+толстое видео)  [new]
lleming
Member

Откуда:
Сообщений: 1687
crutchmaster
mayton
Давайте хоть Хелло Ворлд напишем на этом убийце.

Что его писать? Вот он есть:
https://github.com/yegor256/takes#quick-start

Если включить фантазию и интерполировать это (или просто промотать там дальше вниз), то получатся прикольные портянки с кучей вложенных друг в друга конструкторов и анонимных классов, которые в свою очередь будут очень похожи на банальную функциональщину + куча синтаксического мусора.
В сухом остатке мы получаем иммутабельные структуры и кучу функций, которые их обрабатывают, всё это завернётся в какой-нибудь декларативный сборщик, а ООП будет выкинуто на помойку, потому что это не нужные ограничения, не нужный секас с иерархией наследования и непомерно раздутый код.


а потом будет слушать на конфах про то как очередной гений будет объяснять как сворачивать эту функциональщину назад в процедурное чтобы не бомбить heap кучей на каждый чих создаваемых чистых функциях объектах.

PS. недавно где то уже такое слышал.
4 мар 20, 13:29    [22092511]     Ответить | Цитировать Сообщить модератору
 Re: Сеньтябрские тезисы Егора Бугаенко (+толстое видео)  [new]
mayton
Member

Откуда: loopback
Сообщений: 45379
crutchmaster
mayton
Давайте хоть Хелло Ворлд напишем на этом убийце.

Что его писать? Вот он есть:
https://github.com/yegor256/takes#quick-start

Если включить фантазию и интерполировать это (или просто промотать там дальше вниз), то получатся прикольные портянки с кучей вложенных друг в друга конструкторов и анонимных классов, которые в свою очередь будут очень похожи на банальную функциональщину + куча синтаксического мусора.
В сухом остатке мы получаем иммутабельные структуры и кучу функций, которые их обрабатывают, всё это завернётся в какой-нибудь декларативный сборщик, а ООП будет выкинуто на помойку, потому что это не нужные ограничения, не нужный секас с иерархией наследования и непомерно раздутый код.

Мне кажется Егоро-кодинг выглядел-бы красиво не на языке Java. А на чем-то другом. Он в лекции хвастался
что знает Руби. Может он - рубист и этот стиль перенёс туда.

По существу - главный критерий КМК - что эта лестница - работает. Если она - работает - это успех.
Если она - лаконичнее чем SpringBoot configs - то это бОльший успех. И если она позволяет быстрее
и оперативнее вносить изменения и фиксить баги - это успех в квадрате.
4 мар 20, 13:32    [22092514]     Ответить | Цитировать Сообщить модератору
 Re: Сеньтябрские тезисы Егора Бугаенко (+толстое видео)  [new]
mayton
Member

Откуда: loopback
Сообщений: 45379
lleming

процедурное чтобы не бомбить heap кучей на каждый чих создаваемых чистых функциях объектах.

Насколько я понимаю... он не бомбит. Создает 1 раз на приложение. Это похоже на коробочное Jetty-Hello-World
или NodeJS-hello-world.
4 мар 20, 13:33    [22092516]     Ответить | Цитировать Сообщить модератору
 Re: Сеньтябрские тезисы Егора Бугаенко (+толстое видео)  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9980
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 штук.
4 мар 20, 14:20    [22092607]     Ответить | Цитировать Сообщить модератору
 Re: Сеньтябрские тезисы Егора Бугаенко (+толстое видео)  [new]
mayton
Member

Откуда: loopback
Сообщений: 45379
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. И возможно там действительно есть ООП. И оно
используется как ООП. А не как набор энтитей.
4 мар 20, 14:22    [22092608]     Ответить | Цитировать Сообщить модератору
 Re: Сеньтябрские тезисы Егора Бугаенко (+толстое видео)  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9980
Я тоже не писал на TurboVision. Но примеры - смотрел.
ООП с конструкторами, деструкторами, наследованием, инкапсуляцией и полиморфизмом появился у Borland-овского диалекта Pascal в конце 1980-х. Концепция-то была уже не новая, мягко говоря.
4 мар 20, 14:29    [22092612]     Ответить | Цитировать Сообщить модератору
 Re: Сеньтябрские тезисы Егора Бугаенко (+толстое видео)  [new]
mayton
Member

Откуда: loopback
Сообщений: 45379
Технически.. ООП с наследованием даже есть в PL/SQL. Но практически он - не прижился. Я повидал
много ентерпрайза на оракле с хранимками но я не видел практически его (ООП) применения.

С JavaScript вообще интерсно. Там теоретики могут друг друга таскать за бороды и биться насмерть
но так и не договорятся о том есть ли в JS ООП или нет и вообще ЧТО считать объектом и классом.

Сообщение было отредактировано: 4 мар 20, 14:34
4 мар 20, 14:34    [22092619]     Ответить | Цитировать Сообщить модератору
 Re: Сеньтябрские тезисы Егора Бугаенко (+толстое видео)  [new]
Alexander A. Sak
Member

Откуда: Омск
Сообщений: 1082
Я писал на TurboVision в 6 и 7 Турбо/Борланд Паскалях, и даже под его впечатлением с другом сделали свой TurboVision для графики 320х200х256.
Все там в синтаксисе было ООП-но. Доки по ООП читал в распечатанном виде, она была от Турбо Паскаля 5.5. То есть таки да, в паскалях ООП давным-давно.

Но писать же в ОО-стиле можно и без ООП-синтаксиса. Адисты, вроде, вообще только в этом веке дожили до синтаксиса с точкой. До этого просто передавали Self и не парились.
4 мар 20, 15:07    [22092657]     Ответить | Цитировать Сообщить модератору
 Re: Сеньтябрские тезисы Егора Бугаенко (+толстое видео)  [new]
mayton
Member

Откуда: loopback
Сообщений: 45379
Беда в том что современная Java - не совсем строгая с точки зрения ООП.
Тоесть она конешно ООП. Но иногда позволяет делать действия которые идут вразрез с классикой.
Например вы создали приватное поле. И 3.14дец. Никто не имеет право его видеть. Просто такова
была ваша идея как создателя класса. Но не тут-то было. Школьники взяв рефлексию или Mockito
спокойно нарушают это правило и доступаются и модифицируют ваше приватное поле (!) как хотят
ибо надо им срочно затестить что-то.

Здесь я хочу сказать - стоп дорогие товарищи. Это - не ООП.

Я вообще в таких кейсах считаю что это тестить не надо ибо дизайн не предполагал. Либо сам создатель
объекта должен был грантовать ему доступ если это поле несет важный смысл для тестинга.

Или представте себе девятку с модулями? Кто-то пробовал порефлексировать девятку когда правила
доступа к внутренней части модуля уже декларированы? Как там? Exception? Или любители мокито
придумают еще более страшную магию чтобы и это сломать?
4 мар 20, 15:17    [22092670]     Ответить | Цитировать Сообщить модератору
 Re: Сеньтябрские тезисы Егора Бугаенко (+толстое видео)  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5174
Basil A. Sidorov
Я тоже не писал на TurboVision. Но примеры - смотрел.
ООП с конструкторами, деструкторами, наследованием, инкапсуляцией и полиморфизмом появился у Borland-овского диалекта Pascal в конце 1980-х. Концепция-то была уже не новая, мягко говоря.


Писал на Turbo Vision и даже за деньги, когда был студентом.
Вполне себе нормальный оконный фреймворк.
Правда, по удобству написания CRUD-приложений он уступал тому же FoxPro.

А так, вполне миленькие менюшки-окошечки.
Правда все были в одном стиле - Borland :-)

Все в ООП.
Правда ручное управление памятью и правильное написание деструкторов немного напрягало.
4 мар 20, 15:22    [22092678]     Ответить | Цитировать Сообщить модератору
 Re: Сеньтябрские тезисы Егора Бугаенко (+толстое видео)  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5174
mayton
Технически.. ООП с наследованием даже есть в PL/SQL. Но практически он - не прижился. Я повидал
много ентерпрайза на оракле с хранимками но я не видел практически его (ООП) применения.


Так правильно!
Зачем скриптовому языку ООП, строгая типизация и развитая система типов?
Гавное что-то быстро наговнокодить, чтобы как-то работало.
А кто и как эту кучу кода будет поддерживать, это не проблема пейсателя.
:-)
4 мар 20, 15:24    [22092683]     Ответить | Цитировать Сообщить модератору
 Re: Сеньтябрские тезисы Егора Бугаенко (+толстое видео)  [new]
mayton
Member

Откуда: loopback
Сообщений: 45379
mad_nazgul
mayton
Технически.. ООП с наследованием даже есть в PL/SQL. Но практически он - не прижился. Я повидал
много ентерпрайза на оракле с хранимками но я не видел практически его (ООП) применения.


Так правильно!
Зачем скриптовому языку ООП, строгая типизация и развитая система типов?
Гавное что-то быстро наговнокодить, чтобы как-то работало.
А кто и как эту кучу кода будет поддерживать, это не проблема пейсателя.
:-)

Нет. Технически PL/SQL имел опцию нативной компилляции. Поэтому он уже не скриптовый.

Беда была в том что тип существовал отдельно от таблицы. А в базах данных таблица - это королева.
Она - суть главная при дворе. От нее все танцуют. И идея была просто не развита. Можно было клепать
новые таблицы с типов как печенье из формочки. Но идея декларации типа по сути уничтожена.
Кому нужен бесполезный тип который не оказывает влияния на рантайм? Рантайм оказался важнее типов.
4 мар 20, 15:29    [22092687]     Ответить | Цитировать Сообщить модератору
 Re: Сеньтябрские тезисы Егора Бугаенко (+толстое видео)  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4454
mad_nazgul,
mayton,
Странный у вас интерес - почему бд не нуждается в ООП)
4 мар 20, 15:34    [22092692]     Ответить | Цитировать Сообщить модератору
 Re: Сеньтябрские тезисы Егора Бугаенко (+толстое видео)  [new]
mayton
Member

Откуда: loopback
Сообщений: 45379
PetroNotC Sharp
mad_nazgul,
mayton,
Странный у вас интерес - почему бд не нуждается в ООП)

Это был вопрос?
4 мар 20, 15:36    [22092693]     Ответить | Цитировать Сообщить модератору
 Re: Сеньтябрские тезисы Егора Бугаенко (+толстое видео)  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 948
Алексей Роза
"наследование" означает, что код не будет дублироваться

Это догма, я так понимаю? Не может быть такой ситуации, что один и тот же метод будет нужен в разных местах иерархий?
inb4: пофиксить иерархию.
Удачи. Обделаешься 2 раза еще на стадии выбора названий классов своему ООП зоопарку.
4 мар 20, 16:28    [22092742]     Ответить | Цитировать Сообщить модератору
 Re: Сеньтябрские тезисы Егора Бугаенко (+толстое видео)  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4454
mayton
PetroNotC Sharp
mad_nazgul,
mayton,
Странный у вас интерес - почему бд не нуждается в ООП)

Это был вопрос?
Почему вопрос. Примите как данность. В бд не нужен ООП. Без выяснения почему.
4 мар 20, 16:33    [22092746]     Ответить | Цитировать Сообщить модератору
 Re: Сеньтябрские тезисы Егора Бугаенко (+толстое видео)  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 948
lleming
а потом будет слушать на конфах про то как очередной гений будет объяснять как сворачивать эту функциональщину назад в процедурное чтобы не бомбить heap кучей на каждый чих создаваемых чистых функциях объектах.

..убежал домой и не успел закончить мысль
Именно. Поэтому следом в помойку полетит иммутабельность с ритуальной чистотой, ибо любые идеи "сперва человек, а потом компутер" заканчиваются тормозами и пляской с оптимизациями.
4 мар 20, 16:34    [22092748]     Ответить | Цитировать Сообщить модератору
 Re: Сеньтябрские тезисы Егора Бугаенко (+толстое видео)  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 948
mayton
Насколько я понимаю... он не бомбит.

Просто ему нечем бобмить. Не дошел до таких проблем. Когда дойдет наделает сеттеров взад и предаст свои идеалы.
4 мар 20, 16:36    [22092753]     Ответить | Цитировать Сообщить модератору
 Re: Сеньтябрские тезисы Егора Бугаенко (+толстое видео)  [new]
mayton
Member

Откуда: loopback
Сообщений: 45379
PetroNotC Sharp
mayton
пропущено...

Это был вопрос?
Почему вопрос. Примите как данность. В бд не нужен ООП. Без выяснения почему.

Да я и не собирался спорить. Просто констатировал как ОНО есть сейчас.

Хотя вот создатели InterSystems Cache возможно и не так думают. Но у них наверное есть свои бока...
4 мар 20, 16:47    [22092763]     Ответить | Цитировать Сообщить модератору
 Re: Сеньтябрские тезисы Егора Бугаенко (+толстое видео)  [new]
Алексей Роза
Member

Откуда: РФ
Сообщений: 48
crutchmaster
Алексей Роза
"наследование" означает, что код не будет дублироваться

Это догма, я так понимаю? Не может быть такой ситуации, что один и тот же метод будет нужен в разных местах иерархий?
inb4: пофиксить иерархию.
Удачи. Обделаешься 2 раза еще на стадии выбора названий классов своему ООП зоопарку.

это если вообще ВЕСЬ код хранить в классах (как в JAVA), тогда да - будут накладки и проблемы
А если делать как в C++, где весь код в обычных helper-функциях, а в классах только автоматическая обработка спец.данных, тогда не будет таких накладок.
Тогда каждый класс занимается своим уникальным делом, а ф-и находятся либо снаружи (и доступны всем), либо таки в наследуемом классе.

Сообщение было отредактировано: 4 мар 20, 17:05
4 мар 20, 17:05    [22092782]     Ответить | Цитировать Сообщить модератору
 Re: Сеньтябрские тезисы Егора Бугаенко (+толстое видео)  [new]
Алексей Роза
Member

Откуда: РФ
Сообщений: 48
mayton
С JavaScript вообще интерсно. Там теоретики могут друг друга таскать за бороды и биться насмерть
но так и не договорятся о том есть ли в JS ООП или нет и вообще ЧТО считать объектом и классом.

Классы можно объявлять как в основном потоке кода, так и «инлайн», по аналогии с Function Declaration и Expression.
В объявлении классов можно использовать методы, геттеры/сеттеры и вычислимые названия методов.
При наследовании вызов конструктора родителя осуществляется через super(...args), вызов родительских методов – через super.method(...args).
Концепция классов, которая после долгих обсуждений получилась в стандарте ECMAScript, носит название «максимально минимальной». Т.е., в ней только те возможности, которые 100% необходимы.
В частности, не вошли «приватные» и «защищённые» свойства. То есть, все свойства и методы класса технически доступны снаружи. Возможно, они появятся в будущих редакциях стандарта.

я бы сказал, там классы уровня C (т.е. struct), но с наследованием и методами...

Сообщение было отредактировано: 4 мар 20, 17:10
4 мар 20, 17:09    [22092790]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 5 [6] 7   вперед  Ctrl      все
Все форумы / Java Ответить