Re[21]: The Big OOPs: Anatomy of a Thirty-five-year Mistake
От: rg45 СССР  
Дата: 23.09.25 12:46
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Ну, если стоит задача сделать формальную игру наподобие шахмат, где конь ходит только буквой "Г", и никак иначе, то Вы на верном пути. Если же хочется сделать одновременно несложный, удобный и универсальный инструмент, то придется отступить от строгой идеологии в пользу разумности.


Что ни пост, то "за всё хорошее, против всего плохого". Прямо жить хочется. Жизнеутверждающие такие посты.
--
Справедливость выше закона. А человечность выше справедливости.
Re[28]: Наследие Си
От: sergii.p  
Дата: 23.09.25 12:47
Оценка:
Здравствуйте, so5team, Вы писали:

S>Но никакими макросами они не являются.


я бы не был так категоричен. Вот в Java макросов нет — это точно. И например задачу форматирования строки в compile time выполнить нельзя. В D же эта задача реализуется проще и безопасней даже чем в С++. Впору задавать другой вопрос, а есть ли в С++ макросы? Они конечно как бы формально есть, но мало кто их не применяет. То есть фактически их и нет
Re[30]: Наследие Си
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 23.09.25 12:51
Оценка: +1
Здравствуйте, so5team, Вы писали:

S>Именно что из текстовой конструкции, а не из кода.


Это чисто условное, формальное разделение. Я уже описывал, как это можно легко и изящно скрестить. Но в рамках парадигмы "либо текст, либо код" этого не сделать, нужно менять парадигму на "код, как частный случай текста".

ЕМ>>встроенные макросы вроде __FUNCTION__


S>Который в современном C++ нахер не нужен


Осталось подсчитать количество лет, прошедшее с появления макросов вроде __FUNCTION__ (которые уже тогда были нарушением формальной парадигмы) до "современного C++", и задаться вопросом: действительно ли все это время "лучшие умы разработчиков" занимались действительно нужным и полезным делом?

S>когда скудоумие умножается на ограниченность кругозора, то просто караул.


Почему мне в ответ хочется сказать то же самое?

Вы, определенно, знаете гораздо больше частных решений, чем я. Но у Вас в голове они почему-то не складываются в общую идею, так и оставаясь частными, непересекающимися. Сколько там понадобилось тысяч лет, чтобы соединить отдельные понятия "ничего", "сколько-то", "увеличение на" и "уменьшение на" в общее понятие количества, которое может принимать также нулевое и отрицательные значения, и столь же общее понятие сложения? Но там-то потребовалось догадываться и изобретать, а Вы зачем-то упорно пытаетесь разъять целое на части, да еще так, что при складывании они целого обратно не дадут.
Re[20]: The Big OOPs: Anatomy of a Thirty-five-year Mistake
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 23.09.25 12:55
Оценка:
Здравствуйте, rg45, Вы писали:

ЕМ>>"они работают ДО компилятора! ДО! ДО! ДО!".


R>А ты с этим не согласен?


Я согласен только с тем, что так работают макросы в C/C++ и подобных реализациях. Хотя, как выше показано, и там нашлось место читерству (я о нем как-то подзабыл, поэтому раньше и не упоминал). А "макросы вообще" могут работать как угодно в рамках общего принципа макрообработки.
Re[29]: Наследие Си
От: so5team https://stiffstream.com
Дата: 23.09.25 12:55
Оценка:
Здравствуйте, sergii.p, Вы писали:

S>>Но никакими макросами они не являются.


SP>я бы не был так категоричен.


А вот я позволю себе таковым быть. Хотя бы потому, что ни разу не видел, чтобы в D средства метапрограммирования (а именно: templates, mixin и mixin templates) где-то в их официальной документации именовались макросами.

SP>Впору задавать другой вопрос, а есть ли в С++ макросы?


Есть и их, к сожалению, все еще приходится применять.
Re[22]: The Big OOPs: Anatomy of a Thirty-five-year Mistake
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 23.09.25 13:03
Оценка: :))
Здравствуйте, rg45, Вы писали:

R>У него там в голове такой зоопарк, что поди отдели бульдогов от носорогов.


Это потому, что Вы стремитесь держаться в общепринятой парадигме, не утруждая себя вопросом о ее целесообразности. Как правоверный еврей, у которого в доме две мойки — для "мясного" и "молочного", искренне не понимающий, как другие могут обходиться одной.
Re[23]: The Big OOPs: Anatomy of a Thirty-five-year Mistake
От: rg45 СССР  
Дата: 23.09.25 13:06
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Это потому, что Вы стремитесь держаться в общепринятой парадигме, не утруждая себя вопросом о ее целесообразности. Как правоверный еврей, у которого в доме две мойки — для "мясного" и "молочного", искренне не понимающий, как другие могут обходиться одной.


А что такое, в твоём понимании, "утруждать себя вопросом о её целесообразности", можешь пояснить более развёрнуто? И каковы ожидаемые результаты такого утруждения?
--
Справедливость выше закона. А человечность выше справедливости.
Re[30]: Наследие Си
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 23.09.25 13:15
Оценка: :)
Здравствуйте, so5team, Вы писали:

S>ни разу не видел, чтобы ... в их официальной документации именовались макросами.


Интересно, как бы Вы рассуждали, если бы вместо термина "macro" с самого начала использовался термин "template", а термин "macro" вовсе не вошел бы в обиход? Были бы в одних реализациях какие-нибудь "lexical templates", в других — "syntax templates", "semantic templates" и т.п., но единого и предельно четкого разделения не существовало бы. Так же ожесточенно ломали бы копья, что "нет, это не те, а вот эти"?

SP>>Впору задавать другой вопрос, а есть ли в С++ макросы?

S>Есть и их, к сожалению, все еще приходится применять.

А если подумать, откуда это сожаление? Не оттого ли, что и концепция, и реализация предельно убогие, прямо-таки наколенные, но уже больше полувека сохраняемые столь же тщательно, как религиозные догмы, давно потерявшие последние остатки разумного обоснования?
Re[31]: Наследие Си
От: so5team https://stiffstream.com
Дата: 23.09.25 13:22
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

S>>Именно что из текстовой конструкции, а не из кода.


ЕМ>Это чисто условное, формальное разделение.


Это принципиально разделение между макропрограммированием и метапрограммированием/рефлексией.

ЕМ>Я уже описывал, как это можно легко и изящно скрестить.


Звиздеть не мешки ворочать.

S>>когда скудоумие умножается на ограниченность кругозора, то просто караул.


ЕМ>Почему мне в ответ хочется сказать то же самое?


Принципиальная разница между нами в том, что я свои слова подтверждаю цитатами, ссылками и примерами кода + не делаю голословных утверждений о том, что кто-то когда-то должен был бы сделать (или мог бы сделать).
Re[31]: Наследие Си
От: so5team https://stiffstream.com
Дата: 23.09.25 13:24
Оценка: +1 :)
Здравствуйте, Евгений Музыченко, Вы писали:

S>>ни разу не видел, чтобы ... в их официальной документации именовались макросами.


ЕМ>Интересно, как бы Вы рассуждали, если бы


...у бабушки был бы...

ЕМ>А если подумать


Попробуйте, подумайте. Вряд ли получится, но вдруг.
Re[23]: The Big OOPs: Anatomy of a Thirty-five-year Mistake
От: rg45 СССР  
Дата: 23.09.25 13:37
Оценка: :)
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Это потому, что Вы стремитесь держаться в общепринятой парадигме, не утруждая себя вопросом о ее целесообразности.


А! То есть, ты утруждаешь себя вопросом о целесообразности общепринятой парадигмы и поэтому за 35 лет не смог освоить С++ даже на уровне джуниор-девелопера? Вон оно чё, Михалыч.

P.S. Это так же, как и с плаванием, да? Стиль плавания "бабушка в панамке" тебя привлекает как раз потому, что он противоречит общепринятой парадигме спортивного плавания
--
Справедливость выше закона. А человечность выше справедливости.
Отредактировано 23.09.2025 13:41 rg45 . Предыдущая версия .
Re[24]: The Big OOPs: Anatomy of a Thirty-five-year Mistake
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 23.09.25 14:04
Оценка:
Здравствуйте, rg45, Вы писали:

R>что такое, в твоём понимании, "утруждать себя вопросом о её целесообразности"


Это когда задаешь себе вопросы "чем обоснована принятая парадигма?", "в каких условиях она сформировалась?", "сохраняются ли эти условия сейчас, и в какой степени?", "какие выигрышы достигаются (или какие потери предотвращаются) сохранением парадигмы неизменной, и какие выигрыши/потери просматриваются при ее изменении?".

Вот у некоторых людей есть по три личных полотенца — для лица, для рук и для ног. Когда такое практикуется где-нибудь в лесном домике, где вода только в рукомойнике, в ведре и в ручье в полукилометре, руки вечно грязные, а ноги — вечно потные, это вполне соответствует ситуации. Но это практикуется в типичных жилищах городского типа, вместе с горячей водой, душем, домашней одеждой, домашними тапочками и прочим. Как лицо в таких условиях может быть чище рук, а ноги — грязнее лица, я в упор не понимаю, и эти люди, скорее всего, тоже, поскольку все обоснования у них сводятся либо к надуманным, искусственным аргументам, либо к вескому "так надо".

R>И каковы ожидаемые результаты такого утруждения?


В ситуации с полотенцами это позволяет избавиться от необходимости иметь и обслуживать три предмета вместо одного (вспоминаем Дейкстру с его притчей о вагонах и туалетах), от риска их перепутать, да и вообще от любого формального восприятия.

В ситуации с C++ это позволило бы давным-давно избавиться от искусственно навязанной дихотомии "макросы намеренно убоги — они только для голого текста, надо их избегать" — "шаблоны — только для языковых конструкций, они странны и часто неудобны, но надо их предпочитать", при которой и на первом, и на втором приходится городить различные трюковые схемы для реализации даже достаточно простых конструкций, для которых идеально подошло бы нечто среднее, но с развитыми возможностями внутреннего управления.
Re[32]: Наследие Си
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 23.09.25 14:16
Оценка: :)
Здравствуйте, so5team, Вы писали:

S>Это принципиально разделение между макропрограммированием и метапрограммированием/рефлексией.


Каковы исходные предпосылки этой принципиальности? Эти понятия являются фундаментальными законами природы, были открыты "как есть", и приходится считаться с их несовместимостью? Или это "правила, написанные кровью", к которым пришли после долгого пути проб и ошибок, и отступление чревато большими бедами? Может быть, это основополагающие понятия, лежащие в фундаментах крупных научных или технологических построений, и даже небольшое изменение их смысла неминуемо повлечет за собой разрушение всей надстройки?

S>Принципиальная разница между нами в том, что я свои слова подтверждаю цитатами, ссылками и примерами кода + не делаю голословных утверждений о том, что кто-то когда-то должен был бы сделать (или мог бы сделать).


А я тупо не вижу смысла заниматься этим в рамках данного обсуждения. На мой взгляд, подобные идеи должны быть интуитивно понятны любому, кто хотел бы иметь понятный, удобный и не слишком сложный инструмент для решения широкого круга задач, а не единственно верную идею, которая пребудет в веках.

Помните фразу "логически мыслящий человек по одной капле может догадаться о существовании океана"? Но по единственной капле, без подсказок, это сделать трудновато — тут уже нужен не просто логический мыслящий, а сильно продвинутый, а то и гениальный ум. Я же Вам уже и в ложку накапал, и в тарелку налил, и лужу показал, а Вы все талдычите "да не может оно до горизонта быть и всю планету покрывать! вот же оно кончается, вот же края!".
Re[25]: The Big OOPs: Anatomy of a Thirty-five-year Mistake
От: rg45 СССР  
Дата: 23.09.25 14:21
Оценка: :)
Здравствуйте, Евгений Музыченко, Вы писали:

R>>И каковы ожидаемые результаты такого утруждения?


ЕМ>В ситуации с C++ это позволило бы...


Ну вот, опять "бы". То есть никаких конкретных результатов не ожидается, а ты просто занимаешься откровенной маниловщиной. Вместо того, чтоб взять молоток и забить им гвоздь, ты предаёшься мечтаниям, что было бы, если бы молоток был такким, как персик... или как закат. Да ещё и других стыдишь за то, что они страдают этой ерундой вместе с тобой. Да ты талант
--
Справедливость выше закона. А человечность выше справедливости.
Отредактировано 23.09.2025 14:33 rg45 . Предыдущая версия . Еще …
Отредактировано 23.09.2025 14:32 rg45 . Предыдущая версия .
Отредактировано 23.09.2025 14:31 rg45 . Предыдущая версия .
Re[24]: The Big OOPs: Anatomy of a Thirty-five-year Mistake
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 23.09.25 14:36
Оценка: :)
Здравствуйте, rg45, Вы писали:

R>ты утруждаешь себя вопросом о целесообразности общепринятой парадигмы и поэтому за 35 лет не смог освоить С++ даже на уровне джуниор-девелопера?


"Не смог" сюда не подходит — я не захотел его осваивать за пределами полезного мне подмножества. Квалификация позволяла и 35 лет назад освоить его в полном на тот момент объеме, и развлекаться сочинением шаблонов в стиле Александреску. Я ж когда-то делал курсовики и сдавал экзамены по всяким там функциональным пространствам, формальным языкам и подобной математике, и вполне во всем этом разбирался, но вот не нравится оно мне. Не вижу в этом ничего удивительного. Я освоил то подмножество C++, которое позволяет мне эффективно решать задачи, которыми я занимаюсь, не испытывая чрезмерного дискомфорта от того, какими средствами это достигается. По той же причине я не использую, например, Qt там, где нужно показать простое окошко и пару диалогов.

По той же причине я не оборудую себе мастерскую со сверлильным, токарным и фрезерным станками, сварочными аппаратами MIG/MAG/TIG, станциями для перепайки BGA-микросхем и подобным. Тупо потому, что затраченные на это ресурсы никогда не окупятся даже простым удовольствием, ибо нет времени всем этим заниматься систематически и плодотворно, а в отдельных случаях хватает и наколенных приспособлений под конкретную задачу.

R>Стиль плавания "бабушка в панамке" тебя привлекает как раз потому, что он противоречит общепринятой парадигме спортивного плавания


Если б я стремился противоречить каждой общепринятой парадигме, то работал бы в линуксе, а не в винде, расплачивался бы исключительно наличными, в интернет ходил бы только через анонимайзер, телефон у меня был бы кнопочный и т.п.
Re[25]: The Big OOPs: Anatomy of a Thirty-five-year Mistake
От: rg45 СССР  
Дата: 23.09.25 14:38
Оценка: +1 :)
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>"Не смог" сюда не подходит — я не захотел его осваивать за пределами полезного мне подмножества.


Ах ну да. Не "не смог", а просто "не захотел". Но результат один и тот же

Это ж басня ещё есть какая-то на эту тему. Про лису и виноград, вроде.
--
Справедливость выше закона. А человечность выше справедливости.
Отредактировано 23.09.2025 14:39 rg45 . Предыдущая версия .
Re[26]: The Big OOPs: Anatomy of a Thirty-five-year Mistake
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 23.09.25 14:44
Оценка: :)
Здравствуйте, rg45, Вы писали:

R>То есть никаких конкретных результатов не ожидается


Разве я где-то давал основания думать иначе? Я нигде не обещал родить очередного "убийцу C++", поскольку, если это делать "для народа", то это налагает обязательства, которые я не в состоянии нести. А лично для себя я не вижу смысла делать столь масштабный проект, поскольку лично мне он лишь дал бы возможность легко писать на C++ то, что проще написать на каком-нибудь JS или Python. Идеями же делюсь в расчете на то, что какая-то из них может попасть на годную почву, хоть и вероятность этого год от года падает.

R>Вместо того, чтоб взять молоток и забить им гвоздь


Молотком был C. Ранний C++ был чем-то вроде мультитула, а современный больше похож на то инопланетное изделие из рассказа Саймака, которое удалось приспособить для рытья семиугольных ямок.
Re[26]: The Big OOPs: Anatomy of a Thirty-five-year Mistake
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 23.09.25 14:49
Оценка:
Здравствуйте, rg45, Вы писали:

R>Это ж басня ещё есть какая-то на эту тему. Про лису и виноград, вроде.


А что, неплохой пример. Технически и физиологически ничто не мешает лисе его есть, углеводы она усваивать способна, и с голодухи она наверняка будет это делать, чтоб не сдохнуть. Если мне доведется "не дай бог, так оголодать" — тоже буду осваивать остаток C++, куда деваться.
Re[27]: The Big OOPs: Anatomy of a Thirty-five-year Mistake
От: rg45 СССР  
Дата: 23.09.25 14:50
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

R>>Это ж басня ещё есть какая-то на эту тему. Про лису и виноград, вроде.


ЕМ>А что, неплохой пример. Технически и физиологически ничто не мешает лисе его есть, углеводы она усваивать способна, и с голодухи она наверняка будет это делать, чтоб не сдохнуть. Если мне доведется "не дай бог, так оголодать" — тоже буду осваивать остаток C++, куда деваться.


Походу, мораль басни ты так и не понял
--
Справедливость выше закона. А человечность выше справедливости.
Отредактировано 23.09.2025 14:50 rg45 . Предыдущая версия .
Re[28]: The Big OOPs: Anatomy of a Thirty-five-year Mistake
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 23.09.25 15:00
Оценка:
Здравствуйте, rg45, Вы писали:

R>Походу, мораль басни ты так и не понял


Да не про меня она. Там лису виноград явно привлекает, и она рада бы попробовать, подай его кто-нибудь на тарелочке, а мне одинаково противно что разбираться и в клубках "магических" шаблонов, и в средствах их частичного распутывания, и применять эти хитрозагнутые конструкции в готовом виде, копируя из примеров.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.