
17 июня 2025 года Андрей Карпати выступил на AI Startup School в Сан-Франциско. Он предложил делить историю программного обеспечения на три этапа.
- Software 1.0. Программист вручную записывает инструкции на C++, Python или другом языке.
- Software 2.0. Разработчики задают архитектуру и цель обучения, а поведение программы хранится в весах нейросети.
- Software 3.0. Инструкции на естественном языке становятся частью программы. Вместо отдельной логики для каждого случая разработчик описывает задачу модели.
LLM как компьютер нового типа
Карпати сравнивает большую языковую модель с операционной системой. Она принимает текстовые команды и выполняет разные задачи через один интерфейс. Это удобно, но аналогия не должна вводить в заблуждение. Ответ модели вероятностный, поэтому одинаковый запрос не всегда даёт одинаковый результат.
Рваный интеллект
Модель может написать рабочую функцию и тут же ошибиться в простом сравнении чисел. Карпати называет это jagged intelligence, или рваным интеллектом. У LLM нет ровного уровня способностей, который можно оценить одним тестом.
Поэтому сгенерированный код нужно читать, запускать и проверять. Рабочий цикл выглядит просто. Сформулировать задачу, получить изменение, проверить его и исправить найденные ошибки.
Vibe coding
Термин vibe coding описывает разработку, в которой человек объясняет желаемый результат словами, а модель пишет код. Такой способ подходит для прототипов и небольших личных проектов. В продуктовой разработке без контроля быстро накапливаются ошибки, уязвимости и решения, которые никто в команде не понимает.
Графический интерфейс помогает проверять результат. Изменение проще заметить на экране, чем в большом фрагменте сгенерированного кода. Но визуальная проверка не заменяет тесты.
Прототип и продукт
По оценке Карпати, первые 90% работы дают прототип. Последние 10% включают тесты, безопасность, документацию и обработку редких случаев. Именно эта часть обычно требует больше всего инженерного времени.
Software 3.0 не отменяет работу программиста. Модель ускоряет написание кода, а человек отвечает за постановку задачи, архитектуру и проверку результата.

