Прошлое, настоящее и будущее инструментов ИИ-кодирования
Getty Images/iStockphoto
Инструменты разработки программного обеспечения с помощью искусственного интеллекта автоматически предлагают или генерируют исходный код программного обеспечения программистам. Это может показаться передовой технологией — в некотором смысле это так и есть. Однако разработка с помощью ИИ не является чем-то совершенно новым. На самом деле, он имеет более длительную историю, восходящую к другим инструментам, которые использовали искусственный интеллект или алгоритмическую обработку, чтобы помочь программистам выполнять свою работу.
Чтобы понять, почему разработка с помощью ИИ важна сегодня, важно понять ее прошлое и увидеть, чем эти современные инструменты отличаются от своих предшественников. Давайте посмотрим на историю инструментов кодирования ИИ, чтобы понять, как мы добились того, что имеем.
Разработка программного обеспечения с помощью ИИ подразумевает использование машинного обучения, нейронных сетей и других аспектов ИИ для принятия автономных решений относительно таких вещей, как, например, когда писать новый код, где внести улучшения в существующий код или как выявить ошибки, которые могут существовать в кодовая база.
Однако существует множество категорий инструментов разработки программного обеспечения, которые появились задолго до появления современных разработок с использованием искусственного интеллекта. Хотя эти существующие инструменты и подходы, строго говоря, не являются тем же самым, что и разработка с помощью ИИ, в некоторых важных отношениях они послужили ее прообразом.
Интеллектуальное завершение кода — это тип инструмента разработки, который помогает программистам завершать строки кода, которые они начали писать. Он также может исправлять относительно простые синтаксические или орфографические ошибки, обнаруженные в коде.
Простым примером интеллектуального завершения кода является функция завершения командной строки, обычно связанная со сценариями оболочки, такими как Bash. Если вы открываете терминал в системе на базе Linux, такой как Ubuntu, начните вводить одну или две буквы и нажмите клавишу табуляции. Терминал ответит списком допустимых команд, которые вы, возможно, захотите ввести, на основе начальных символов, показанных в этом примере с использованием начальных символов «bas».
Аналогичным образом терминал будет обнаруживать случаи, когда пользователь, возможно, допустил ошибку в написании команды, и предлагать варианты того, что пользователь, возможно, хотел ввести.
Интеллектуальное завершение кода, возможно, восходит к 1950-м годам, когда программисты поняли, что могут повысить точность своего кода, используя базовые функции проверки орфографии, способные обнаруживать опечатки, которые могут вызвать проблемы в приложении. Конечно, интеллектуальное завершение кода — это не то же самое, что разработка или проверка кода с помощью ИИ, а вместо этого основано на более старых методах проверки, таких как сравнение вводимых пользователем данных с предварительно настроенными списками допустимых параметров ввода.
Инструменты разработки с низким уровнем кода позволяют разработчикам и нетехническим пользователям писать программное обеспечение с минимальным написанием кода вручную. В отличие от интеллектуальных инструментов завершения кода, платформы разработки с низким кодом предназначены для написания целых программ, а не только для завершения или проверки отдельных строк кода.
Инструменты программирования Low-code не используют ИИ. Вместо этого они зависят от готовых модулей кода, которые пользователи объединяют для создания программного обеспечения. Это означает, что инструменты с низким уровнем кода обычно поддерживают более узкий набор вариантов использования, поскольку они используются только для создания тех типов приложений, которые поддерживают их предварительно сконфигурированные модули.
Хотя это и не такой революционный подход, каким предполагалась разработка с помощью искусственного интеллекта, концепции разработки с низким кодом, возможно, существуют с 1970-х годов, когда языки программирования четвертого поколения, такие как FOCUS и SQL, впервые вышли на сцену.
В течение многих лет разработчики использовали инструменты статического анализа кода для автоматического анализа исходного кода в поисках уязвимостей безопасности, ошибок или других проблем, скрытых в кодовой базе. Инструменты статического анализа кода обычно запускаются после развертывания исходного кода, а не во время процесса разработки, что резко контрастирует с инструментами разработки с использованием искусственного интеллекта, которые будут задействованы с самого начала циклов сборки.
Однако, хотя анализаторы исходного кода традиционно не полагаются на искусственный интеллект для выполнения анализа, такие инструменты, как DeepCode, начинают сочетать концепции статического анализа кода и машинного обучения, чтобы облегчить этот тип сканирования кода в реальном времени.