За последние пару месяцев мы получили возможность пообщаться со многими ведущими техническими специалистами, инженерами и менеджерами из различных крупных технологических компаний благодаря Disrupt и другим технологическим мероприятиям по всему миру Bay Area. Довольно много людей из широкой публики знакомы с термином генерация исходного кода и тем, как обычно создается программное обеспечение. Но когда мы разговариваем с техническими специалистами, особенно с теми, кто следит за развитием современного программного обеспечения, мы получаем вопрос о том, чем AppMaster отличается от GitHub Copilot. Это довольно интересный вопрос.
Если вы читаете мой пост, то наверняка слышали о Copilot - инструменте ИИ для расширенного завершения и генерации исходного кода. Copilot уже является довольно хорошим инструментом для вспомогательного программирования, когда разработчик пишет только часть исходного кода, а ИИ предлагает завершение кода, даже целых функций. Особенно хорошо Copilot справляется с заполнением шаблонов и словарей: напишите пару элементов, а остальное будет сгенерировано автоматически. Судя по отзывам сообщества и недавним постам CEO GitHub, Copilot развивается хорошими темпами.
В отличие от Copilot, AppMaster ориентирован на генерацию полного программного проекта, а не его частей. AppMaster аккумулирует требования для всего проекта: серверных приложений (backend), веб-приложений, мобильных приложений и всего дополнительного. В общем, мы собираем у инженера схемы моделей данных, логику приложения, конечные точки, элементы пользовательского интерфейса и все стандартные требования к будущему приложению в наглядном формате drag-and-drop. Подход "все в одном" позволяет инженерам-программистам делать меньше, чтобы получить больше.
Чтобы лучше понять суть, приведу небольшой пример.
Выполнение вызова API из веб- или мобильного приложения на сервер/бэкенд - одна из самых распространенных задач. Обычно инженеру приходится заглядывать в документацию API сервера и создавать структуру запроса/ответа и весь соответствующий код. Такую же задачу можно решить одним действием dran&drop в AppMaster. Поскольку платформа знает все о моделях данных и конечных точках, она автоматически предварительно генерирует визуальные блоки для безболезненного выполнения API-запросов, включая соответствующую структуру объектов. И даже больше: после каждого изменения моделей данных, бизнес-логики или конечных точек платформа автоматически обновляет зависимые элементы пользовательского интерфейса без вмешательства инженера.
Со стороны кажется, что AppMaster и Copilot пытаются решить разные задачи, мы работаем над одной и той же проблемой программной инженерии, но наши подходы совершенно разные. В то время как Copilot решил помочь инженерам-программистам писать больше кода быстрее и проще, мы сосредоточились на смещении парадигмы разработки программного обеспечения от создания программного обеспечения путем написания программного кода к простому определению требований высокого уровня. Наличие требований дает нам огромное преимущество - возможность регенерировать всю кодовую базу проекта с нуля. Мы можем сделать регенерацию по любой причине: при изменении требований, при появлении улучшенных алгоритмов генерации кода, для обновления версий языка программирования или библиотек, или даже для изменения всего технологического стека!
Мы верим в будущее с подходом"Не трогать исходный код" и высокоуровневыми требованиями к программной инженерии.
А что думаете вы? Слишком хорошо, чтобы быть правдой? Утопия?
P.S. Если вам интересна эта тема, посмотрите последний подкаст Лекса Фридмана с Андреем Карпати, бывшим директором Tesla по искусственному интеллекту, о Software 2.0 и генерации кода.