Текст/Облако Alibaba - Цинь Ци
Эта статья представляет собой серию статей. В основном она знакомит со многими интересными задачами (задачами), связанными с областью анализа кода. Она будет представлена с точки зрения введения, истории и текущей ситуации с этими задачами, надеясь дать каждому глубокую понимание кодового интеллекта. И эта статья начинается с одной из наиболее часто используемых и любимых функций разработчиков —Рекомендация кодаВначале я надеюсь постепенно раскрыть тайну интеллекта кода.
Завершение кода
Начнем с гифки.
картинка изTabnineОфициальный сайт
Видно, что благодаря рекомендациям по умному коду наша эффективность разработки и удовлетворенность программированием значительно улучшились.
Так что же такое рекомендации по коду?
Мы все использовали методы ввода.При вводе китайского языка большинство методов ввода будут связывать возможные фразы или предложения в соответствии с введенными символами, что может значительно повысить скорость нашего ввода. Изображение слева представляет собой эффект метода ввода Sogou, который порекомендует наиболее вероятный ввод для выбора людьми; изображение справа представляет собой визуализацию исправления ошибок функции метода ввода Xunfei, это очень распространенные и простые в использовании функции. в настоящее время.
Затем рекомендации по коду аналогичны. Чтобы разработчикам больше не приходилось нажимать по одной букве за раз, «ленивые» люди разработали множество полезных инструментов подсказок. Эти инструменты в определенной степени помогают программистам в хорошем программировании. После использования редактора с возможностью подсказки кода я могу только сказать, что никогда не вернусь к текстовому редактору, подобному NotePad.
Рекомендация по коду также называется подсказкой по коду, и существует много похожих названий, таких как IntelliSense, IntelliCode, автозаполнение, завершение кода, фрагменты кода, предложение по коду, прогнозирование по коду, подсказка по коду. Независимо от того, как он называется, он описывает возможность предоставления подсказок кода при программировании, так что не беспокойтесь об этом здесь.
История рекомендаций по коду
Первое исследование рекомендации кода было проведено в 1957 году, когда впервые была предложена проверка орфографии. Затем, в 1971 году, Ральф Горин разработал первое приложение для проверки орфографии SPELL, которое могло не только подсказывать на основе букв, но и исправлять простые орфографические ошибки в неуместных буквах.
Еще одна реализация рекомендаций по коду, о которой следует упомянуть, — это IntelliSense от Microsoft, который используется в Visual Studio и предоставляет множество возможностей подсказок по коду, включая типы, переменные, функции, фрагменты кода, ключевые слова и т. д. В 2017 году еще один проект Microsoft, IntelliCode, использует машинное обучение в качестве базовой поддержки рекомендаций по коду, которое также по умолчанию интегрировано в редактор VsCode.
Еще одна вещь, о которой следует упомянуть, — это интеллектуальная подсказка синтаксиса SQL, которая поставляется с SQL Server Management Studio, которая может подсказывать часто используемые ключевые слова и включенные библиотеки, таблицы и поля. Как язык высокого уровня следующего поколения, синтаксис SQL отличается от популярных в настоящее время объектно-ориентированных языков, таких как JAVA, и возможность реализации подсказок кода также несколько отличается.
Текущее состояние рекомендаций по коду
Можно сказать, что текущая подсказка по коду относится к эпохе, когда соперничают сотни школ мысли, и она считается важной базовой возможностью редактора или IDE, а качество подсказки по коду напрямую определяет, является ли она полезной. редактор.
В настоящее время в академическом сообществе также существует множество смежных исследований, в том числе моделей и алгоритмов, которые обучаются с использованием различных алгоритмов. Общими являются статистические алгоритмы и некоторые модели естественного языка. Самой популярной моделью в настоящее время является модель GPT, предоставляемая OpenAI, От первой версии до текущей GPT-3 каждый выпуск будет вызывать бурные обсуждения. иTabnine(очень популярный инструмент подсказки кода), основанный на модели GPT-2, предоставляет интеллектуальные и персонализированные возможности рекомендации кода, он может рекомендовать очень персонализированный код в соответствии с личными привычками программирования, можно сказать, что он очень прост в использовании.
Еще одна вещь, о которой следует упомянуть, - это спорный в настоящее времяGitHub CopilotДа, он использует модель GPT-3, использует более 1 миллиарда строк открытого исходного кода для обучения и обеспечивает хороший рекомендательный эффект, но поскольку иногда запрашиваемый код является непосредственно открытым исходным кодом, его обвиняют в плагиате, и он Многие разработчики запустили кампанию по бойкоту второго пилота, и последующие действия неизвестны.
Будущее рекомендаций по коду
Некоторые люди говорят, что с умными рекомендациями по коду последующие программисты будут уволены.
Это предложение хорошо слушать как шутку, а не присутствовать. Хотя текущие возможности рекомендаций по коду действительно сэкономили разработчикам много времени, они далеко не полностью заменяют программистов.
По аналогии с классификацией автономного вождения, я думаю, что рекомендация кода может достигать уровня L1 не более, то есть «иногда может помочь водителю в выполнении определенных задач вождения». Тем не менее, будущее можно ожидать.Точно так же, как текущий код преобразования изображений может генерировать большую часть статического кода в соответствии с проектом дизайна, я считаю, что рекомендации по коду будут становиться все более и более интеллектуальными, чтобы программист мог повторять их просто и механически, чтобы тратить время на написание «Искусства».