Bend 2 and the Vibe-Coding Trap
Bend 2 позиционируется как язык для эпохи AI-кодинга: человек пишет «законы», а ИИ генерирует реализации и доказательства, которые компилятор проверяет на корректность. Однако автор статьи указывает, что в демонстрации Bend для простого свойства — что игрок никогда не коснётся флага и не выиграет игру — требуется 58 строк кода для формулировки законов и целых 442 строк для их доказательства ИИ. Это выглядит избыточно, особенно если сравнить с существующими подходами в формальной верификации.
Автор показывает, что эквивалентную задачу можно решить гораздо проще на SPARK — языке с встроенной поддержкой формальной верификации. После указания типов, инвариантов и условий, достаточно запустить GNATprove, который подтверждает корректность программы за 12 проверок без необходимости писать громоздкие доказательства вручную или через ИИ. Это демонстрирует, что Bend изобретает велосипед, игнорируя десятилетия исследований в области формальной верификации, термины которой даже не упоминаются на его сайте или в коде.
Основная проблема — не в самом Bend, а в явлении «vibe-coding»: когда разработчик, вдохновлённый возможностями ИИ, сразу приступает к созданию сложной системы (языка, компилятора), не проверив, существует ли уже эффективное решение. ИИ с радостью поможет построить что-то с нуля, но не подскажет, что 99% работы уже сделано и доступно для переиспользования. В результате получается решение, которое работает, но является избыточным и устаревшим по сравнению с текущим состоянием области. Это не просто плохой дизайн — это системная рискованная практика, когда отсутствие предварительного исследования приводит к изобретению хуже существующего.