На самом деле для ответа на данный вопрос нужно для начала понять что стоит за задачей "создать программу". Как минимум для создание программного обеспечения (ПО) нужно решить следующие задачи:
- Пообщавшись с заказчиком выяснить требования к ПО, как минимум:
- функциональные требования (какую задачу ПО должно уметь выполнять/автоматизировать)
- технические требования (в каком окружении будет работать ПО)
- требования к внешним интерфейсам
- требования к взаимодействию (с другим ПО, окружающим "миром" и т.д.)
- ограничения
- требования к производительности и масштабируемости
- требования к безопасности
- Исходя из перечисленного - должны быть выбраны архитектура, используемые средства для реализации - языки программирования, фреймворки и библиотеки, прочее ПО (СУБД и т.д.)
- Должны быть созданы алгоритмы, если типовые решения и паттерны не подходят
- Должно быть собственно написано ПО
- Должны быть проведены отладка и тестирование
- Должно быть проведено внедрение и развёртывание (это уже традиционно зачастую делается автоматизировано, с помощью инструментария CI/CD)
Их перечисленных задач ИИ способен участвовать в ограниченном числе задач, т.к. надо понимать, что существующие технологии позволяют решать только очень типовые задачи, по которым имеются большие объёмы накопленного опыта, подходящего для анализа алгоритмами машинного обучения.
По настоящему сложное ПО ИИ в обозримом будущем писать не сможет.