Считается, что на конференции лучше всего запоминаются первое и последнее выступления. И тут я не являюсь исключением, так как при посещении С++ Zero CostConf 2025 мне сильнее всего запомнились как раз первый и последний доклады, но думаю не только из-за эффекта края, но и по той причине, что они были для меня самыми интересными и именно ради них и я решил съездить в Москву из далекой российской глубинки.

Но мне не хочется описывать само мероприятие, тем более, что видеозапись всех выступлений выложена на сайте конференции C++ Zero Cost Conf 2025 и пересказывать технически детали докладов не имеет смысла.

Однако прошедшее мероприятие было очень необычным и запоминающимся: мне удалось попробовать себя в роли вайб-кодера, а по результатам общения с докладчиками — написать два предложения в комитет по стандартизации C++ от России. Поэтому я всё же решил поделиться с читателями «Хабра» своими впечатлениями от некоторых докладов конференции и собственными выводами о вайб-программировании.

Безопасность С++ и новое слово "Хардеринг"

Самый первый доклад на конференции от Романа Русяева и Юрия Грибова стал для меня и самым неожиданным. Этот доклад сразу задал очень высокий уровень для всех последующих выступлений и тем самым подтвердив бриф конференции на сайте, что это не пустой маркетинговый лозунг, а реальный уровень выступающих:

От инженеров для инженеров
Практикующие разработчики на C++ из ведущих компаний поделятся своими знаниями, представят прикладные доклады и расскажут о реальных кейсах, подкреплённых метриками.

Мне они открыли новое слово в области разработки безопасного кода "Хардеринг" - обеспечение безопасности приложений на уровне генерации кода компилятором. И я был очень удивлен своим незнанием, так как вроде бы стараюсь быть в курсе последних тенденций, а тут ребята со сцены начинают рассказывать про какие то хитрые опции компилятора, о которых я слышу чуть ли не в первый раз.

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

Оказалась затронута и тема безопасной работы с памятью в С++, по которой у меня самого есть некоторые наработки. В результате после доклада я познакомился с его авторами, мы обменялись контактами и договорились пообщаться на эту тему уже после мероприятия.

И уже после конференции я увидел информацию с обсуждением инициативы по добавлению в Clang режим усиленной безопасности, (первоисточник: [RFC] Hardening mode for the compiler - Clang Frontend - LLVM Discussion Forums), т.е. фактически это выступление рассказывало про решения и прототипы наработок, которые пока находятся еще на уровне прототипов и только планируются к реализации!

Модули в С++

На конференции все доклады были хороши, просто некоторые темы для меня были не очень актуальны. Наверно из-за этого мне запомнился первый и последний доклады. Тем более, что в финальном выступлении Антон Полухих, представитель России в комитете по стандартизации С++, рассказывал об очень серьезных вещах, которые кардинально меняют всю экосистему С++, а именно про модули.

Тут новых вещей для меня было не много. Про модули в С++ говорят уже очень давно и я с нетерпением жду окончательного принятия нового стандарта, поэтому стараюсь быть в курсе нововведений. И с удивлением услышал со сцены, что проблема с макросами препроцессора в модулях С++ пока так и остается не решенной.

Уже после доклада удалось пообщаться с Антоном в неформальной обстановке, в том числе и насчет С++ Profiles и отношения к ним в комитете. И был сильно удивлен озвученным мнением, что комитет не в восторге от предложения p3038 от Bjarne Stroustrup и P3081 от Herb Sutter, так как профили очень сырые без какой либо реализации и все на уровне голых идей и прототипов. И если я правильно понял, комитет хоть и проголосовал за их развитие вместо Safe-С++, чтобы не ломать обратную совместимость (ведь это похоронило бы всю экосистему С++), но и что делать с профилями безопасности, пока остается непонятным.

Поэтому, по совету Антона, уже после конференции я закинул два предложение к российским представителям комитета по стандартизации С++. Одно по реализации профилей безопасности для С++26 · Issue #621 · cpp-ru/ideas · GitHub и предложение по использованию макросов препроцессора при компиляции файлов С++ модулей · Issue #622 · cpp-ru/ideas. Не рассчитываю, что с ними что-то реально получится, но пусть это будет моим небольшим вкладом в развитие С++ :-).

Практический опыт вайб-кодинга

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

Вайб-кодинг - это новое слово в ИТ, которое в современном сленге пошло от англицизма vibe («вибрация») и под ним принято понимать сильные эмоции, которые испытываются по отношению к чему либо. В контексте термина "вайб-кодинг" или "вайб-программирование" термин должен означать сильные эмоции по отношению к процессу написания кода с помощью нейросети. Причем, согласно устоявшемуся сленгу, эмоции могут быть как положительные - "вайб плюс" или просто "вайб", так и отрицательные, то есть "вайб минус".

Вайб-кодинг минус

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

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

Второй подход к вайб-кодингу (и тоже неудачный)

После общения с главным специалистом мне удалось получил начальные сведения об организации рабочего места и минимум знаний для начала работы. Удалось узнать и много для себя нового. Если коротко, то нейросеть для вайб-кодинга может работать в нескольких режимах работы. Самый простой это "сделай сама что бы было хорошо", т.е. общая команда без каких либо технических подробностей и ограничений. В этом случае нейросеть начинает галюцинировать самостоятельного генерировать подробный план работ и его поэтапно выполнять. В результате появляется готовый проект со спецификацией, кодом, тестами и прочими атрибутами завершенного ИТ проекта.

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

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

Но все оказалось банально, у ноутбука разрядился аккумулятор и он резко выключился. Его поставили на зарядку, а мне дали утешительный приз (черную майку), фактически авансом. Так закончилось мой второй подход к вайб-программированию.

Вайб-кодинг плюс

Процесс написания кода с помощью ИИ ассистента очень не быстрый, из-за чего пришлось некоторое время ждать свободного места и только с третьего раза мне удалось получить реальный результат.

Начал с самого простого "привет мир" на с++ и все получилось быстро и просто с первого раза. Хотя в данном случае неудача была бы свидетельством либо моей криворукости или наличием проблем в настройках рабочего места. Тем не менее итоговое решение собралось, запустилось и нейросеть отчиталось о завершении работ. Нейросеть генерирует ответ не очень быстро (весь проект "привет мир" занял примерно 5-7 минут), но в любом случае это значительно быстрее скорости набора даже самой быстрой машинистки, а тут даже код оказался рабочим.

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

Коротенькое видео с началом работы по задаче: https://vkvideo.ru/video-41739766_456239025?list=ln-QNk2DnFid3Ons6NaUJ
Неожиданно был приятно удивлен логичностью постановки задач и запланированных шагов для её выполнения (опять видео) https://vkvideo.ru/video-41739766_456239026?list=ln-RwJKOlqIYKSMOwvgum
И через 10-15 минут работы был получен реальный результат  https://vkvideo.ru/video-41739766_456239027?list=ln-6mcZOJZz3tNKYNCYfE

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

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

Самое интересное, что по такой схеме сейчас работает множество ИТ компаний и замена удаленных сотрудников на нейросети возможна вообще без каких либо трудностей. Поэтому нет ничего удивительно в том, что сейчас многие компании пересматривают свои бизнес процессы с учетом новых возможностей.

Вайб-конференция

Я остался очень доволен С++ Zero CostConf и приятно удивлен очень высоким классом докладов по сравнению с похожими мероприятиями. Ведь приходя на ИТ конференцию хочется получить какой нибудь инсайт, а обычно тебе рассказывают маркетинговые лозунги от спонсоров. Поэтому очень рад, что в данном конкретном случае все получилось именно так, как хотелось бы видеть на каждом подобном мероприятии. Хорошую проработку каждого вопроса, новые и не очевидные мысли и идеи, реальный инсайд из самых первых рук и непосредственных участников событий.

Большое спасибо организаторам С++ Zero CostConf за выбор интересных тем для докладов, за общую организацию мероприятия и за памятный сувенир.

Комментарии (0)