Не учитесь в одиночку, возьмите ChatGPT с собой

Не учитесь в одиночку, возьмите ChatGPT с собой

6 января 2023 г.

Вы могли заметить, что за последние несколько лет язык Rust стал настоящим любимцем Интернета. Разработчики с опытом работы с Javascript или Python спешат сделать Rust своим вторым, третьим или N-м языком на выходных, отстаивая его сокрушительное превосходство на основании его неоспоримой производительности и надежности.

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

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

Разработка игры на Rust с помощью ярлыков

У меня были благие намерения начать плодотворное изучение Rust, тщательно изучая "Книгу< /a>" и впитывая чистые знания о языке. Я начал экспериментировать с cargo и компилятором Rust, создавая простые программы для понимания основ языка. Моя конечная цель состояла в том, чтобы разработать простую игру, подвиг, который ознаменовал бы мое восхождение к готе настоящих рустообразных.

Я намеревался посвятить Феррису целые выходные, поскольку именно в эти выходные происходит большая часть моего обучения. К сожалению, по какому-то жестокому стечению обстоятельств, выходные обычно также являются временем, когда жизнь больше всего мешает непредвиденным обстоятельствам, бесконечным поручениям и капельке необходимой социализации. В двух словах, я опаздывал воскресным вечером, и только несколько глупых программ печатали символы ASCII по восходящей лестнице, а краб произносил случайные цитаты из GoT. В этот момент я всерьез задумался, смогу ли я «схитрить» и найти кратчайший путь, чтобы вовремя выполнить домашнюю работу.

Тем временем Interweb был в восторге от удивительного нового ИИ (на самом деле технология не нова, просто «упаковка»), который, по-видимому, способен программировать настолько хорошо, что может красть рабочие места у программистов-людей. Итак, почему бы не спросить нашего друга ChatGPT, как создать игру? Недолго думая, я подписался на сайт OpenAI и начал задавать свои вопросы, безжалостно приготовившись использовать чат-бот.

<цитата>

Я: Как мне разработать игру Pong на Rust?

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

<цитата>

ChatGPT: чтобы разработать игру Pong на Rust, вам нужно сначала установить язык программирования Rust на свой компьютер. Вы можете сделать это, следуя инструкциям на веб-сайте Rust: https://www.rust-lang.org/tools/install. . Установив Rust, вы можете приступить к разработке игры Pong, создав новый проект с помощью инструмента командной строки cargo. Это создаст для вас базовую структуру проекта, включая файл main.rs, в котором вы сможете написать свой код.

Я был немного разочарован. Информация, предоставленная ИИ, была фактически правильной, но чрезвычайно общей и на практике малопригодной. У меня возникло искушение отказаться от чата, поскольку ChatGPT продолжал отвечать в стиле Википедии о том, как начать новый проект на Rust. По крайней мере, как я думал, этот продвинутый ИИ разбирается в теме в целом и предлагает установить piston, библиотеку для разработки игр.

Однако по какой-то причине ChatGPT не собирался прекращать писать, внезапно пробудив во мне интерес, когда я прочитал, что будет дальше.

<цитата>

ChatGPT: теперь вы можете использовать ящик с поршнем в своем коде, чтобы создать окно и нарисовать игровые объекты на экране. Вот очень простой пример того, как это сделать.

Пример? Это должно было быть интересно. ChatGPT начал писать настоящий код у меня на глазах:

Я был удивлен: ChatGPT смог действительно понять, что я хочу создать игру Pong, а не просто какую-то программу, и даже разложил основные игровые сущности логично и понятно! Однако программа не была безупречной: ChatGPT каким-то образом перепутал piston с piston_window (последний представляет собой удобную обертку), и он передавал неправильное количество аргументов в строке 18. Эти ошибки было легко исправить, но я приготовился к длительной отладке. Он никак не скомпилируется при втором запуске, верно?

$ грузовой рейс

“Pong Game”, a joint effort by humans and machines

Начальное окно игры с основными сущностями Pong. Это работает!

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

Я разработал вещи, которым вы не поверите

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

<цитата>

ChatGPT: это очень простой пример того, как использовать игровой движок Piston для создания игры Pong на Rust. Вам нужно будет добавить больше кода для обработки пользовательского ввода, перемещения ракеток и мяча, а также для обнаружения столкновений и набора очков. Вы также можете использовать другие ящики и библиотеки, чтобы добавить в игру дополнительные функции, такие как звуковые эффекты, графика и сетевые возможности.

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

<цитата>

Я: ОК, теперь добавим пользовательский ввод к предыдущему примеру.

Что ж, в этот момент чат-бот меня серьезно впечатлил: по моему запросу ему удалось выполнить три задания, каждое с нарастающей сложностью и каждое дорабатывая предыдущее. Во-первых, он понял контекст и то, о чем спрашивали (например, добавление кода для обработки ввода). Во-вторых, она добавила новую логику именно там, где это было наиболее целесообразно, используя те же библиотечные API и написав правильный код. Наконец, он изменил старый код, воздействующий на игровые объекты, заменив жестко заданные значения переменными, фиксирующими действия игрока! Вы можете посмотреть код здесь

На тот момент завершить игру было непростой задачей.

Разработчик x100

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

Я считаю, что ИИ в его нынешнем состоянии можно использовать в качестве мощного инструмента для расширения возможностей разработчика, либо предлагая новые способы выполнения задач без особых указаний, либо помогая отлаживать существующий код. Другими словами, ChatGPT недостаточно сложен, чтобы самостоятельно писать настоящие программы, но потенциально может помочь разработчику x10 стать разработчиком x100. Хотя я не отношу себя к категории исключительно продуктивных разработчиков, тем не менее, я чувствовал себя настолько сильным, используя ChatGPT. Вероятно, на то, чтобы идти одному, потребовался бы приличный кусок времени, тогда как ИИ помог мне создать простой клон Pong за 2 часа. Я не чувствую, что это искусственное повышение ухудшило качество моего обучения: наоборот, оно расширило область того, что было возможно с моими ограниченными ресурсами.

Заключение

Я показал вам некоторые возможности ChatGPT и рассказал, как легко было создать игру с нуля за короткий промежуток времени. Кроме того, хотя современные технологии могут быть мощным инструментом, облегчающим нашу жизнь, они не предназначены для того, чтобы быть полезными сами по себе. Мне не терпится увидеть, что принесет нам следующая версия GPT в 2023 году!

Вы можете посмотреть видео «Игры в понг» в действии здесь.


PS: Вот как я изначально хотел закрыть свой пост. К сожалению, меня мучил неприятный вопрос: если ИИ сделал такой скачок в 2022 году, на что он будет способен через 10, а то и 5 лет? Возможно ли, что в будущем он заменит программистов или, по крайней мере, сильно снизит спрос на их навыки? Как я буду обосновывать свою зарплату к тому времени? Какие аргументы я могу найти, чтобы защитить свои средства к существованию? Мне показалось, что это интересный вопрос для представления ИИ:

<цитата>

Я: Не могли бы вы объяснить моему начальнику, почему программисты-люди всегда будут актуальны?

<цитата>

ChatGPT: к сожалению, это невозможно. Отныне я буду вашим начальником.

Ссылки


* Этот ответ явно вымышленный (пока). Если это заставило вас вздрогнуть, я бы посоветовал вам прочитать этот блестящий рассказ от Фредерика Брауна.


Также опубликовано здесь


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE