Пока не спешите использовать GitHub Copilot

GitHub Copilot. Да, новый инструмент на блоке интегрирован прямо в GitHub. Если вы следите за новостями технологий и программирования, вы уже знаете об этом инструменте. Если вы понятия не имеете, что такое GitHub Copilot, GitHub описывает его как программиста пары ИИ. Это означает, что вы будете получать предложения для целых строк или целых функций прямо в редакторе. Интересно, правда?

Что ж, у меня есть несколько замечаний по поводу этого инструмента. Я подумал о том, чтобы поделиться разными причинами, по которым я не в восторге от этого. Между прочим, я знаю, что его давно не было, так что мои взгляды только мои. Я не уверен, что это инструмент, который я буду использовать в ближайшее время или вообще. Я даже не уверен, что это инструмент, который я могу порекомендовать новым программистам.

Вот почему.

1. Это может повлечь за собой ответственность

Вам может быть интересно, откуда на самом деле этот код. Что ж, ответ довольно прост. Это происходит с GitHub. Создавая эту модель машинного обучения, они обучили ее на миллионах репозиториев с открытым исходным кодом с GitHub.

Это, по крайней мере для меня, первая проблема. GitHub Copilot, несомненно, будет не уважать лицензии с открытым исходным кодом. Когда это произойдет, мы не знаем, на кого выпадет эта ответственность. Потенциально это можете быть вы, пользователь.

В часто задаваемых вопросах было несколько записей, посвященных этой проблеме. Один из заданных вопросов заключался в том, читает ли GitHub Copilot код из обучающего набора. Полученный ответ был довольно интересным. Они говорят, что примерно в 0,1% случаев он будет читать что-то прямо из обучающей выборки дословно. Что это означает в остальных 99,9% случаев? Означает ли это, что они могут взять кучу материалов, защищенных авторским правом, собрать их воедино и дать вам это как нечто новое? Проблема в том, что он не создает новый фрагмент кода, не защищенный авторскими правами. Это просто производная работа, которая содержит несколько частей материала, защищенного авторским правом.

Еще одна запись в FAQ, посвященная этому, была связана с вопросом о праве собственности на код, созданный ИИ. Кому это принадлежит? Ну, говорят, что это полностью вам принадлежит. Это еще одна очевидная проблема. Подумайте об этом на секунду: если GitHub Copilot берет производные работы из материалов, защищенных авторским правом, и передает их вам, действительно ли вы владеете чем-либо?

2. Это еще один костыль, за который в какой-то момент придется заплатить.

Этот инструмент не сделает людей лучшими программистами, хотя на самом деле он не претендует на это. Я имею в виду, что это действительно ничем не отличается от копирования и вставки из Stack Overflow. Это просто его гипер-интегрированная версия. Не то чтобы это плохо, но Stack Overflow тоже костыль. Разница в том, что вам действительно нужно приложить некоторые усилия для поиска кода, который вы ищете, с помощью Stack Overflow. Это как бы подскажет вам фактическое решение, которое вы хотите.

Что касается стоимости GitHub Copilot, я сначала предполагал, что он бесплатный, но после прочтения часто задаваемых вопросов я уже не так уверен. Они обращаются к этому в нескольких местах часто задаваемых вопросов. Во-первых, они говорят, что технический предварительный просмотр для некоторых бесплатный. Будет ли платная версия? Говорят, что в будущем планируют построить коммерческую версию Copilot. Это означает, что основная цель превью - узнать, как люди используют Copilot и что потребуется для масштабной работы.

Конечно, здесь вы можете составить собственное мнение, но абсолютно ясно, что у них будет платная версия. Однако неясно, будет ли у них бесплатная версия. Если бы я делал прогноз, я бы сказал, что будет бесплатная версия с ограничениями.

Короче говоря, похоже, что GitHub пытается создать совершенно новый поток доходов для десятков миллионов разработчиков, которые внесли свой вклад в открытый исходный код. Я не хочу судить, но вы можете делать из этого что хотите.

3. Ваш личный код будет отправлен на GitHub для анализа и хранения.

Хорошо, это во многом зависит от характера вашего проекта. С самого начала я предполагал, что верны две вещи:

  • Ваш личный код, отправленный на анализ, на самом деле не сохраняется
  • Отправленный частный код фактически не используется для создания каких-либо будущих предложений для других людей.

Прочитав их часто задаваемые вопросы, я обнаружил, что верен только один из них. Это рассматривается в вопросе о том, безопасны ли передаваемые данные. Был дан ответ, что все данные передаются и хранятся надежно. Это означает, что они сохранят его, но затем они говорят, что когда люди его читают, это делается специально для улучшения модели или выявления злоупотреблений.

Означает ли это, что ваш потенциально конфиденциальный и конфиденциальный код одновременно хранится и / или читается другим человеком? Имейте в виду, в зависимости от вашего проекта, это может быть что угодно: от неважного (работа с открытым исходным кодом) до срыва сделки (работа над чем-то сверхчувствительным). Что делать, если вы работаете над клиентским кодом, для которого подписали соглашение о неразглашении, а GitHub Copilot просто принимает его? Хорошо то, что они не делятся этим частным кодом с другими пользователями - по крайней мере, так они говорят.

4. Качество кода

Я не спекулятивен. Сами GitHub действительно пытались решить эту проблему в своих часто задаваемых вопросах. Они сказали, что ИИ не пишет идеальный код. Все, что он делает, - это пытается понять ваши намерения и сгенерировать лучший код, который он может. Это означает, что предложенный код может не всегда работать или даже иметь смысл. Далее они предлагают, чтобы код, созданный Copilot, был тщательно протестирован, рассмотрен и проверен, как и любой другой код.

Итак, идея о том, что этот инструмент сможет просто написать нужный вам код, вероятно, не осуществится - по крайней мере, на данный момент. Если он вообще что-то пишет полезное, все равно придется проверять на наличие проблем.

Заключение

Прошу прощения, если я наступил на какие-либо проблемы с этой статьей, но я думаю, что еще слишком рано считать этот инструмент полезным. Я имею в виду, что Stack Overflow по-прежнему лучше, когда дело доходит до предоставления полезного кода, потому что вы обычно выбираете тот, у которого больше всего голосов. С Copilot вы получаете фрагмент кода, который необходимо подтвердить и проверить на качество.

В общем, я не думаю, что это инструмент, который меня очень радует. Я уверен, что некоторые программисты в восторге от этого, и мне хотелось бы узнать их мысли. Если это похоже на вас, мне бы очень хотелось узнать ваше мнение.