Re: Предложение опережает спрос
От: Артём Австралия жж
Дата: 08.12.24 01:59
Оценка:
Здравствуйте, Shmj, Вы писали:

S>В последнее время думаю что не так с C++


С ним всё так. Он невостребован. Если хочешь наслаждаться ломанием мозга об 10 этажные шаблоны, порчу памяти неизвестно откуда, борьбу с циклическими ссылками и конкурировать с 10 опытными зубрами за 1 позицию с миской риса- вперёд.
Re[2]: Что не так с C++ - компил-таймовый C++
От: vsb Казахстан  
Дата: 08.12.24 04:03
Оценка: +1
Здравствуйте, Pzz, Вы писали:

Pzz>Я думаю, дело не в полноценности-неполноценности. Эта-то проблема давно решается с помощью древней, как UNIX System 7, парадигмы автоматической генерации кода во время сборки с помощью специально написанных для этой цели программ или скриптов.


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

Я согласен с тем, что считаю создание второго языка для метапрограммирования ошибкой. Которую делают многие языки. С++, Scheme, Rust из тех, которые я знаю. Хотя Scheme и Rust хотя бы спроектировали этот язык намеренно, а не случайно...

Но не согласен с тем, что это лучше делать отдельной программой. Метапрограммирование лучше бы делать на том же языке, как часть проекта (или библиотеки). Просто запускать обычный код во время компиляции. Чем это лучше тупо отдельной программы? А вот чем:

1. Компилятор имеет доступ к AST, т.е. может дать мета-функции на вход уже распарсенное AST. Это удобно и это быстро.

2. Мета-функция может на выходе конструировать опять же AST, а не текст программы в виде строки. Это удобно и это быстро.

3. IDE может запускать мета-функцию в фоновом режиме и использовать её результаты для семантической подсветки и прочего вспомогательного функционала.

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

А минус вижу только один, это та самая IDE. Ничего не мешает в мета-функции, к примеру, подключаться к БД, вытаскивать её схему, генерировать классы на основе таблиц и возвращать их в виде AST. Как такое поддерживать в IDE, я не представляю. Нужно очень хорошо продумывать, как реализовывать кеширование в ожидаемом для юзера виде, видимо. Ну или кастрировать эти мета-функции, запрещая им подключаться к БД, ограничивая время их выполнения, но это, конечно, совсем не так интересно...

Немного в тему пример это D. Там есть две фичи: во-первых compile-time функции (тут ничего интересного, по сути аналогично C++), но эти функции могут возвращать строки. А также там есть конструкция, позволяющая эту compile-time строку включить в программу. И вот как раз это позволяет делать то, что я описал, правда без AST. К примеру моей ненаписанной дипломной работой была интеграция лиспа в D, когда можно было бы писать код на лиспе, перемежая его с кодом на D, вызывая друг друга и это всё в одном файле, в одной программе, без извращений с синтаксисом (код на лиспе в компайл-тайме транслировался бы в эквивалентный код на D). В целом там всё было реализуемо.
Отредактировано 08.12.2024 4:04 vsb . Предыдущая версия .
Re[4]: Что не так с C++ - компил-таймовый C++
От: so5team https://stiffstream.com
Дата: 08.12.24 05:45
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Здравствуйте, so5team, Вы писали:


S>>А вообще забавно наблюдать, как о проблемах языка рассуждают персонажи, разбирающиеся в предмете разговора как свинья в апельсинах. Типа в каждый является экспертом в политике, футболе, медицине и C++.


S>Мне примерно 7 мес. работы с C++


Т.е. еще года полтора до уровня среднего мидла. Самое время писать предложения о том, как нам реорганизовать рабкрин. Ага.
Re[6]: Что не так с C++ - компил-таймовый C++
От: so5team https://stiffstream.com
Дата: 08.12.24 05:51
Оценка: +3
Здравствуйте, Shmj, Вы писали:

S>Попробуйте без перехода на личности.


Опыт показал, что когда вы здесь начинаете рассуждать о C++, то единственный конструктивный подход -- это попросить вас перестать выплескивать на публику дерьмо из вашей головы.

Вы и так засираете RSDN своей тупизной по широчайшему спектру вопросов. Хотя бы C++ оставьте в покое.

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


Моего уровня, очевидно, не хватает для того, чтобы выносить на публику рассуждения о том, как можно улучшить С++. И знаете что? Я этого и не делаю.

Чего от всей души желаю и вам, и Pzz, и Евгению Музыченко, и vsb, и пр. заслуженным ыкспертам с десятилетиями "типа опыта" "типа в C++" за плечами.
Re[5]: Что не так с C++ - компил-таймовый C++
От: Shmj Ниоткуда  
Дата: 08.12.24 06:32
Оценка:
Здравствуйте, so5team, Вы писали:

S>>Мне примерно 7 мес. работы с C++

S>Т.е. еще года полтора до уровня среднего мидла. Самое время писать предложения о том, как нам реорганизовать рабкрин. Ага.

У всех по разному. Я почти 20 лет пишу код, причем языки были разные. Нельзя всех под одну гребенку.

Многие десятилетиями пишут, но не залазят в дебри (ака сложные конструкции на SFINAE) принципиально.

Я тоже решил что от каждого языка или технологии — нужно брать главное и не завязываться на дебри. Причина — будет проще адаптировать проект под другую технологию, если такая потребность возникнет. Был опыт что контора завязалась на MS SQL — а там много много всякого хитровымудренного MS придумала, чего и близко нет в других СУБД. И все эти фишки не так уж важны, можно и без них — просто сахар. Но вот при попытке слезть на другую СУБД — этот сахар превращается в липучку, которая прямо не отпускает и удерживает.
Re[7]: Что не так с C++ - компил-таймовый C++
От: Shmj Ниоткуда  
Дата: 08.12.24 06:34
Оценка: :)
Здравствуйте, so5team, Вы писали:

S>Опыт показал, что когда вы здесь начинаете рассуждать о C++, то единственный конструктивный подход -- это попросить вас перестать выплескивать на публику дерьмо из вашей головы.


Так то когда было? Начинал вопросы задавать я еще не имея опыта особого. Посмотрите сколько времени прошло то...
Re[8]: Что не так с C++ - компил-таймовый C++
От: so5team https://stiffstream.com
Дата: 08.12.24 06:43
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Посмотрите сколько времени прошло то...


1. Недостаточно.
2. Без толку.
3. Дурака учить только портить.

По сути: хотите улучшить C++ -- сделайте это. Напишите пропозал в комитет, займитесь его продвижением. А лужи газифицировать на RSDN перестаньте.
Re[9]: Что не так с C++ - компил-таймовый C++
От: Shmj Ниоткуда  
Дата: 08.12.24 07:15
Оценка: :)
Здравствуйте, so5team, Вы писали:

S>1. Недостаточно.

S>2. Без толку.
S>3. Дурака учить только портить.

Попробуйте проанализировать свое сердце и понять что вас заставляет высказывать эти эмоции? Мне от вас ничего не нужно.

Если мы будем друг-другу завидовать, унижать и подавлять — возможно временно это принесет эгоистическую пользу на личном уровне, но как единое целое, как человечество — мы потеряем и многое потеряем. Меняйте сердцевину (перестраивайте лимбическую систему).

S>По сути: хотите улучшить C++ -- сделайте это. Напишите пропозал в комитет, займитесь его продвижением. А лужи газифицировать на RSDN перестаньте.


Наоборот — сначала нужно обкашлять на локальном уровне.
Re[10]: Что не так с C++ - компил-таймовый C++
От: so5team https://stiffstream.com
Дата: 08.12.24 07:22
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Попробуйте проанализировать свое сердце и понять что вас заставляет высказывать эти эмоции?


Не говорите другим людям что им делать, они не скажут вам куда пойти.

S>Мне от вас ничего не нужно.


Мне от вас нужно, а именно: хватит засирать RSDN своей тупизной. Заведите блог или TG-канал и изливайте там любой понос из своей башки в любых формах и количествах. А здесь таки место общего пользования и стараться обходить темы так, чтобы не вляпаться в ваше дерьмо, мне лично не нравится.

Подобные просьбы вам высказывались не однократно. Вы их старательно игнорируете. Поэтому остается в очередной раз переходить на личности и говорить вам: держите свое дерьмо в себе.

S>Наоборот — сначала нужно обкашлять на локальном уровне.


Какой же вы дебил, прастихоспади.
Re[11]: Что не так с C++ - компил-таймовый C++
От: Shmj Ниоткуда  
Дата: 08.12.24 07:25
Оценка: +1 :)))
Здравствуйте, so5team, Вы писали:

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


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

S>Подобные просьбы вам высказывались не однократно. Вы их старательно игнорируете. Поэтому остается в очередной раз переходить на личности и говорить вам: держите свое дерьмо в себе.


Это КСВ, на минуточку. Именно для таких тем данный форум и создан.

S>>Наоборот — сначала нужно обкашлять на локальном уровне.

S>Какой же вы дебил, прастихоспади.

Ну ты уже показал всем свой уровень развития, начав беспричинно оскорблять собеседника. Думаешь я буду отвечать тебе бранью или оскорблениями? Опускаться до твоего уровня?
Re[12]: Что не так с C++ - компил-таймовый C++
От: so5team https://stiffstream.com
Дата: 08.12.24 07:33
Оценка: -1
Здравствуйте, Shmj, Вы писали:

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


Объективные данные об уровне владения C++ у вас, Pzz и Евгения Музыченко здесь (на RSDN-е, особенно в профильных форумах) накоплены в товарных количествах.

S>>Подобные просьбы вам высказывались не однократно. Вы их старательно игнорируете. Поэтому остается в очередной раз переходить на личности и говорить вам: держите свое дерьмо в себе.


S>Это КСВ, на минуточку. Именно для таких тем данный форум и создан.


Очередная демонстрация вашей тупизны.

S>>>Наоборот — сначала нужно обкашлять на локальном уровне.

S>>Какой же вы дебил, прастихоспади.

S>Ну ты уже показал всем свой уровень развития, начав беспричинно оскорблять собеседника. Думаешь я буду отвечать тебе бранью или оскорблениями? Опускаться до твоего уровня?


Будет достаточно если вы перестанете публиковать новые топики со своими бредовыми и бесплотными фантазиями.
Re[13]: Что не так с C++ - компил-таймовый C++
От: graniar  
Дата: 08.12.24 08:10
Оценка: +1
Здравствуйте, so5team, Вы писали:

S>>Это КСВ, на минуточку. Именно для таких тем данный форум и создан.


S>Очередная демонстрация вашей тупизны.


На всякий случай расшифрую: КСВ — Компьютерные Священные Войны — название данного раздела.
Re[5]: Что не так с C++ - компил-таймовый C++
От: Vzhyk2  
Дата: 08.12.24 08:19
Оценка: +1 :))) :)
Здравствуйте, so5team, Вы писали:

S>Уродство, уродство, узбагойтесь уже, это даже не оспаривается. Парадокс в том, что пользоваться современным C++ удобнее, чем тем, который был 25 лет назад.

Нет, не удобнее. Лично я уже лет как 10 вернулся к стилю С с классами и игнорю почти все нововведения. Код получается быстрым, безбажным и понятным.
Re[14]: Что не так с C++ - компил-таймовый C++
От: so5team https://stiffstream.com
Дата: 08.12.24 08:30
Оценка: +1
Здравствуйте, graniar, Вы писали:

G>На всякий случай расшифрую: КСВ — Компьютерные Священные Войны — название данного раздела.


Священные войны -- это споры о предметах веры, типа tabs vs spaces, vim vs emacs, windows vs linux и т.д.
А не соревнования в тупизне.
Re[6]: Что не так с C++ - компил-таймовый C++
От: so5team https://stiffstream.com
Дата: 08.12.24 08:34
Оценка:
Здравствуйте, Vzhyk2, Вы писали:

S>>Уродство, уродство, узбагойтесь уже, это даже не оспаривается. Парадокс в том, что пользоваться современным C++ удобнее, чем тем, который был 25 лет назад.

V>Нет, не удобнее. Лично я уже лет как 10 вернулся к стилю С с классами и игнорю почти все нововведения. Код получается быстрым, безбажным и понятным.

Значит вам это предметная область позволяет.

У меня же опыт за последние лет 12-13 такой, что когда приходится возвращаться на стандарт-два назад, то это вызывает боль и неудобства. Например, при возврате с C++11 на C++98 не хватает лямбд и variadic templates, при возврате с C++14 на C++11 не хватает обобщенных лямбд, при возврате с C++17 на C++11 не хватает if constexpr и structured binding, при возврате с C++20 на C++17 не хватает концептов, spaceship operator и designated intitializers...

Что до понятности, то регулярно приходится встречать код на Си с классами от разработчиков с десятками лет "типа опыта" за плечами, разобраться в котором может разве что сам автор. И то не факт.
Re[7]: Что не так с C++ - компил-таймовый C++
От: Vzhyk2  
Дата: 08.12.24 08:48
Оценка: +1
Здравствуйте, so5team, Вы писали:

S>Значит вам это предметная область позволяет.

Да. Это может быть значимо в вопросе применения фич С++.
Про области, где новейшие фичи С++ я ничего не знаю, но это не говорит о том, что их нет.

S>Что до понятности, то регулярно приходится встречать код на Си с классами от разработчиков с десятками лет "типа опыта" за плечами, разобраться в котором может разве что сам автор. И то не факт.

Постарайся без "аргументов блондинки". Тошнит уже от алогичности 99% постов на кывте.

И да, моё видение применения фич С++: Применять новые фичи С++ только тогда, когда код с применением их становится сильно лаконичнее и понятнее и не замедляет его выполнение.
Re[8]: Что не так с C++ - компил-таймовый C++
От: so5team https://stiffstream.com
Дата: 08.12.24 09:04
Оценка:
Здравствуйте, Vzhyk2, Вы писали:

S>>Что до понятности, то регулярно приходится встречать код на Си с классами от разработчиков с десятками лет "типа опыта" за плечами, разобраться в котором может разве что сам автор. И то не факт.

V>Постарайся без "аргументов блондинки".

Если вы дадите себе труд объяснить что вам не понятно в этой фразе, я постараюсь объяснить.

Так-то это был намек на то, что понятность кода зависит от способности человека связно излагать свои мысли (ну и о наличии этих самых мыслей). Когда такая способность есть, то понятно получается хоть в изложении на русском, хоть на Си с классами, хоть на modern C++.
Когда ее нет, тогда в Си с классами появляются развесистые иерархии наследования, а в modern C++ шаблон на шаблоне.

V>И да, моё видение применения фич С++: Применять новые фичи С++ только тогда, когда код с применением их становится сильно лаконичнее и понятнее и не замедляет его выполнение.


Именно это происходит, например, с variadic templates.
Но оценить это можно будет в обобщенном коде. Если же в прикладной задаче мест для обобщенного кода нет, то этого и не видно будет.

Именно это происходит, например, с концептами.
И здесь тоже самое касательно обобщенного кода.

Именно это происходит, например, с if constexpr. Хотя if constexpr может применяться не только в обобщенном программировании, но и для написания кросс-платформенного кода.

Именно это происходит, например, с operator spaceship. Тут вообще безотносительно обобщенного кода.

И т.д., и т.п.

Фичи -- это всего лишь фичи. Проблема (одна из множества) C++ в том, что эти фичи набраны абы как, а зачастую в режиме "ну есть же кривой способ, так и незачем добавлять нормальный". Но фичи не виноваты в том, что их начинают применять бездумно, не имея ни опыта, ни здравого смысла.
Re[9]: Что не так с C++ - компил-таймовый C++
От: Vzhyk2  
Дата: 08.12.24 09:06
Оценка:
Здравствуйте, so5team, Вы писали:

S>Если вы дадите себе труд объяснить что вам не понятно в этой фразе, я постараюсь объяснить.

Почитай на той же вике, что такое "аргумент блондинки".
Re[10]: Что не так с C++ - компил-таймовый C++
От: so5team https://stiffstream.com
Дата: 08.12.24 09:12
Оценка:
Здравствуйте, Vzhyk2, Вы писали:

S>>Если вы дадите себе труд объяснить что вам не понятно в этой фразе, я постараюсь объяснить.

V>Почитай на той же вике, что такое "аргумент блондинки".

Ссылкой не поделитесь?
Re[11]: Что не так с C++ - компил-таймовый C++
От: Vzhyk2  
Дата: 08.12.24 10:08
Оценка:
Здравствуйте, so5team, Вы писали:

S>Ссылкой не поделитесь?

"Чрезмерное обобщение — безосновательный перенос характеристик частных или даже единичных случаев на их обширные совокупности. Существует множество видов этого когнитивного искажения" обычно вот это называют "аргументом блондинки".
Вот тут неполный список когнитивных искажений (алогичностей) https://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BA%D0%BE%D0%B3%D0%BD%D0%B8%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D1%85_%D0%B8%D1%81%D0%BA%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.