Обновить
32K+
167
Александр Рябиков@rsashka

Системный архитектор

42
Рейтинг
86
Подписчики
Отправить сообщение

Этот код без поддержки уже более трех лет, поэтому его неработоспособность странной не является :-)

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

Там есть раздел с русским переводом.

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

В исходном коде, я так понимаю, тоже?

Это касается только исходного кода С++

А пример кода, хоть самый завалящий, на это языке можно поглядеть где-то?

Это переработка проекта https://github.com/rsashka/newlang (https://newlang.net/), там есть примеры кода.

Правда сейчас будет небольшое изменение в синтаксисе итераторов (я решил использовать знак вопроса по другому), но общая идея осталось той же. Отсутствие ключевых слов, строгая грамматика на правилах без исключений, ключевые слова с помощью макросов, которые являются частью AST.

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

Это называется “вайб-кодинг” или “vibe coding”, не стесняйтесь изначального наименования этого процесса :)

Большое спасибо, что поправили. Это очень верное замечание.

Да, и в один прекрасный момент LLM-компаниям ничего не будет стоить поднять цены за токены ещё выше…

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

А зачем на этом уровне оставаться? LLM отлично заменяет человека в планировании и контроле …

Только в в планировании и контроле. Но у нее нет целеполагания и понимание того, что и как требуется получить в итоге. Поэтому если не контролировать результат, там столько будет накручено, что только на свалку и переписывать заново.

Руководству не выгодно будет таких сотрудников держать, …

Это образное выражение. Понятно, что «подчинённый перед лицом начальствующим должен иметь вид лихой и придурковатый, дабы разумением своим не смущать начальство» :-)

Не обесценивайте результаты десятилетних исследований…

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

А выбор у Ваших коллег будет - использовать LLM или нет? Какими это, например? Своими личными проектами в рабочее время?

Я работаю удаленно и руководство принимает фактически сделанную работу. А личные проекты, это и лично время и личные расходы на них.

Только время нас рассудит :-)

Ну как получилось навайбкодить, так и получилось :-)

вымышленные слова

Пипец, Сепулька и сепулькарий попали под запрет. Ну и как теперь после этого жить :-(

Сложно об этом спорить, так как на вкус и цвет все фломастеры разные.

Просто по моему опыту не имеет смысла ставить очень долгоиграющие задачи без промежуточного контроля. И это в случае людей, а для LLM это вообще фундаментальное ограничение на длину контента (качество, время, деньги).

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

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

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

беклог, это не про кодирование, а про планирование. И к непосредственному программированию имеет слабое отношение

Чтобы начать что-то делать, нужно понимать что, как и зачем. Вы можете это сформулировать? Или учитывая контекст вашей статьи, “написать программу”, что как и зачем нужно разрабатывать подобный язык программирования :-)

это не язык, а описание структуры ТЗ или отдельно взятой задачи (если что, извините :-) ) )

Уже упомянули в комменатриях. Просто я в статье ориентировался на реальные языки, а не исследовательские проекты. Хотя наверно вы правы и следовало бы упомянуть, раз вспомнил про cfront.

И даже читал описание “In short, it aims to help evolve C++ itself, not to be a "C++ successor.”". А иногда даже переписываюсь с автором проекта по поводу некоторых идей и предложений :-)

Так вы определитесь с @unC0Rr что конкретно нужно. :-)

Либо “валидный указатель”, но в случае использования обычного числа (адреса в памяти) в качестве указателя, нужно определить критерии его “валидности”, тогда как изначально обозначенную проблему потенциальной возможности разименования nullptr, ссылка вполне себе решает, т.е. после ее создания последующие её проверки не требуются, но это не дает гарантии её “валидности”.

“Делайте правильно, неправильно не делайте” - универсальный совет на любую проблему в программировании.

Так с этого совета от разработчиков Раст все и началось :-)

Ссылки в расте же закрывают и этот момент.

Ну да, ну да. Я не спорю, что Раст закрывает действительно очень большую часть проверок, но только выполнимых во время компиляции, как и устанавливает степень контроля значительно выше, чем в обычном С++.

Однако “невалидный адрес” легко получается в рантайме и тут проблема не в nullptr как таковом, а в комплексе проблем у С++, которые нельзя решить в принципе без нарушения обратной совместимости и не инициализированные переменные как раз из их числа.

валидный указатель в поле класса

Мне на ум приходит только умные указатели (а не адрес памяти, как обычное число).

Но если эта ссылка-класс, то делайте в нем что хотите (храните только валидный указатель), а если вы храните ссылку как обычно число, то каким образом вы можете гарантировать его валидность?

Ненужно придумывать проблем там, где их нет. Как раз для подобных хотелок в С++ сделали ссылки (T&), которые по определению могут быть только валидными.

Исключение, которое в принципе можно обработать - это не исключение, а код ошибки. …

Можно сказать, что код ошибки, это информация для вызывающей стороны, причем в рамках контракта (API) для вызываемой функции. И будет вызывающая сторона обрабатывать код ошибки или нет, это её дело. Тогда как исключение, это возникновение ситуации выходящей за рамки согласованного контракта вызываемой функции (например, не предусмотрен код ошибки, как в вашем примере с нулевым указателем).

Но по большому счету это не важно. Исключение, это только инструмент, и всегда можно компилировать с -fno-exceptions

Информация

В рейтинге
191-й
Откуда
Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Инженер встраиваемых систем, Архитектор программного обеспечения
Ведущий
C++
ООП
Linux
Программирование микроконтроллеров
Встраиваемая система
C
Qt
Разработка программного обеспечения