Хорошо, так ChatGPT только что отлаживал мой код. Правда.

1-отладка(1).png

Итак. Программирование. Для людей, которые занимаются программированием профессионально, это постоянная игра в умственный дженга: одна строка кода на другую, создающая башню кода, на которую вы надеетесь, что она достаточно надежна, чтобы не рухнуть.

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

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

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

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

Тестирование ChatGPT в реальном мире

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

Также:Как работает ChatGPT?

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

Это другой способ взглянуть на ChatGPT. Тестовые сценарии часто являются искусственными и упрощёнными. В реальных проектах разработки программного обеспечения это на самом деле означает обработку нового обращения пользователей в службу поддержки и выявление причин негативного опыта.

Итак, давайте рассмотрим эти задачи и посмотрим, как справился ChatGPT.

Переписываем код регулярного выражения

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

Также:Я использую ChatGPT, чтобы помочь мне исправлять код быстрее, но во что это мне обходится?

Итак, когда мне поступило сообщение об ошибке, в котором говорилось, что часть моего кода позволяет только целые числа, когда должны быть допускаются доллары и центы (то есть некоторое количество цифр, возможно, за которым следует точка, а затем, если есть точка, еще две цифры), я знал, что мне потребуется использовать регулярные выражения в кодировании.

Поскольку я нахожу это утомительным и раздражающим, я решил обратиться за помощью к ChatGPT. Вот что я спросил:

2-regex-q.jpg

И вот хорошо презентованный ответ ИИ (нажмите на маленький квадрат, чтобы увеличить его):

3-regex-a.jpg

Я вставил код ChatGPT в свою функцию, и он работал. Вместо примерно 2-4 часов тяжелой работы, потребовалось всего пять минут, чтобы создать запрос и получить ответ от ChatGPT.

Форматирование массива

Далее произошла переформатирование массива. Я люблю писать код для массивов, но иногда это трудоемко. Так что я снова попробовал ChatGPT. Абсолютное провал.

Кроме того:Как сделать ChatGPT предоставлять источники и цитаты

К концу я, вероятно, подал ему десять разных приглашений. Некоторые ответы казались многообещающими, но когда я пытался запустить код, он выдавал ошибку. Некоторый код завершался сбоем. Некоторый код генерировал ошибки. А некоторый код запускался, но не делал то, что я хотел.

После примерно часа такого подхода я сдался и вернулся к своей обычной технике рыться в Github и StackExchange, чтобы увидеть, есть ли какие-либо примеры того, что я пытался сделать, и затем писать свой собственный код.

До сих пор у ChatGPT было одно победа и одно поражение. Но теперь я собирался повысить сложность.

Фактически нахожу ошибку в своем коде

Хорошо, так что следующая часть будет сложно объяснить. Но подумайте о том, что если это сложно объяснить вам (предположительно, человеку, а не одному из 50 или около того ботов, которые просто копируют и публикуют мои работы на мошеннических и спамных веб-сайтах), то еще сложнее объяснить это ИИ.

Я писал новый код. У меня была функция, которая принимала два параметра, и вызывающий оператор, который отправлял два параметра в мой код. Функции - это маленькие черные ящики, которые выполняют очень конкретные функции, и их вызывают (просят сделать свою магию) из строк кода, выполняющихся в другом месте программы.

Проблема была в том, что я постоянно получал сообщение об ошибке.

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

Также: Как использовать ChatGPT для краткого изложения книги, статьи или научной работы

ЧТО-ВСЕ-В-ИМЯ-СВЯТОЕ?!

После примерно пятнадцати минут глубокого разочарования, я решил обратиться к искусственному интеллекту, чтобы узнать, сможет ли он помочь. Итак, я написал следующее сообщение:

4-untitled.jpg

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

В течение нескольких секунд ChatGPT ответил следующим образом (щелкните на маленький квадрат, чтобы увеличить):

5-error-with-apply-filters-in-wordpress.jpg

Как только предложили, я обновил четвертый параметр функции add_filter() на 2, и это сработало!

ChatGPT взял сегменты кода, проанализировал их и предоставил мне диагноз. Чтобы быть ясным, чтобы дать свои рекомендации, системе нужно было понять внутренности того, как WordPress обрабатывает хуки (это то, что делает функция add_filter) и как это функционал переводится в поведение вызывающих и выполняющих строк кода.

Также: я попросил ChatGPT написать нужный мне плагин для WordPress. Он сделал это за меньше чем 5 минут

Я должен пометить это как невероятное, бесспорно "живущее в будущем" невероятное.

Что все это значит?

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

Также: Эти эксперты гонятся, чтобы защитить искусственный интеллект от хакеров

Но когда вы застряли, часто бывает трудно получить помощь. Это потому что даже близкий коллега может не быть знакомым со всем объемом кода, который вы отлаживаете. Программа, над которой я работаю, состоит из 153 259 строк кода в 563 файлах - и для программ это считается небольшим.

Итак, если бы я хотел получить помощь коллеги, я, вероятно, должен был бы составить запрос почти идентичным образом, как я его отправил в ChatGPT.

Но вот что следует учесть: я вспомнил включить строку обработчика, хотя не понимал, что именно там была ошибка. В качестве теста, я также попробовал попросить ChatGPT диагностировать мою проблему в промпте, где я не включил строку обработчика, и он не смог помочь. Так что существуют очень определенные ограничения в том, что ChatGPT может делать для отладки прямо сейчас, в 2023 году.

Также: Лучшие AI-чатботы для попробовать

По сути, вам нужно знать, как задавать правильные вопросы правильным способом, и эти вопросы должны быть достаточно краткими, чтобы ChatGPT мог обработать всю информацию в одном запросе. Для этого требуется реальные навыки программирования и опыт, чтобы узнать, как это сделать.

Мог я самостоятельно исправить ошибку? Конечно. У меня никогда не было ошибки, которую я не мог бы исправить. Но, сколько бы это времени заняло - два часа или два дня (плюс пицца, пошлости и много кофе), перенося множество прерываний, это я не знаю. Могу сказать, что ChatGPT исправил ее за минуты, сэкономив мне кучу времени и нервов.

Смотря в возможное (возможно, дистопическое) будущее

Я вижу очень интересное будущее, где будет возможность питать ChatGPT всеми 153 тысячами строк кода и просить его рассказать, что нужно исправлять. Компания Microsoft (владеющая Github) уже работает над инструментом "copilot" для Github, который поможет программистам создавать код. Microsoft также инвестировала миллиарды долларов в OpenAI, создателей ChatGPT.

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

Также: Я попросил ChatGPT написать небольшой эпизод Star Trek. Он действительно справился

Учитывая, насколько хорошо ChatGPT определил мою ошибку по предоставленному коду, я определенно вижу будущее, когда программисты смогут просто обратиться к ChatGPT (или аналогу от Microsoft), чтобы найти и исправить ошибки в целых проектах.

И вот где я переношу этот разговор в очень темное место.

Представьте, что вы можете попросить ChatGPT взглянуть на ваш репозиторий на Github для конкретного проекта и попросить его найти и исправить ошибки. Один из способов может быть таким, чтобы он представлял вам каждую найденную ошибку для вашего утверждения, чтобы вы могли внести исправления.

А что насчет ситуации, когда вы просите ChatGPT просто исправить ошибки, и позволяете ему сделать это, не беспокоясь о просмотре всего кода самостоятельно? Может ли он внедрить что-то неприятное в ваш код?

Также: Bard против ChatGPT: Может ли Bard помочь вам программировать?

А как насчет ситуации, когда невероятно способный искусственный интеллект имеет доступ к почти всем коду мировых репозиториев Github? Что он может скрыть во всем этом коде? Какое зловещее зло может нанести этот искусственный интеллект на мировую инфраструктуру, если он имеет доступ к нашему коду?

Давайте сыграем в простую мысленную игру. Что, если искусственный интеллект (ИИ) был бы дан ключевая инструкция в виде первого правила Азимова. Или, говоря более точно, "робот не должен причинять вред человеку или, не предпринимая действий, допустить причинение вреда человеку". Не мог ли бы ИИ решить, что все наши инфраструктуры причиняют нам вред? Имея доступ ко всем нашим программам, он мог бы просто решить спасти нас от нас самих, вставляя задние двери, позволяющие ему, скажем, выключать электропитание, приземлять самолеты и вызывать пробки на дорогах.

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

Кроме того: Как использовать ChatGPT для написания формул Excel

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

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

Связанные статьи

Показать больше >>

Раскройте возможности искусственного интеллекта с помощью HIX.AI!