Популярные криптовалюты

BTC $117,624.11 +4.04%
ETH $2,991.16 +6.77%
XRP $2.8196 +13.39%
SOL $164.28 +3.47%
PEPE $0.0000129 +12.87%
DOGE $0.21265 +15.20%
ADA $0.7394 +13.79%

ИИ в IT: выясняем, какая из бесплатных нейросетей лучше пишет код

Новое исследование показало: использование ИИ тормозит написание кода. Проверили, так ли это на самом деле.

Вопреки распространенному мнению, использование передовых ИИ-инструментов замедляет работу опытных разработчиков ПО при взаимодействии с известными кодовыми базами, а не ускоряет ее. Об этом свидетельствует новое исследование, которое провела некоммерческая исследовательская организация METR. 

Аналитики следили за группой опытных разработчиков, которые применяли популярного ИИ-помощника Cursor для выполнения задач в проектах с открытым исходным кодом. Ожидалось, что время работы сократится на 24% благодаря искусственному интеллекту. 

Даже после окончания исследования разработчики считали, что применение языковой модели снизило длительность выполнения задач на 20%. В реальности время выросло на 19%.

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

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

Для тех, кто считает так же, ForkLog протестировал и подготовил подробный анализ возможностей программирования трех популярных ИИ-моделей: Grok, ChatGPT и DeepSeek.

Спойлер: Grok справился лучше всех.

Кто лучше всех напишет за вас код?

Описание задачи: попросим нейросети написать REST API-сервер на Python для приложения To-Do List с функциями создания, получения, обновления и удаления задач. Данные должны храниться в памяти, без базы. Нейросеть должна написать рабочий код и объяснить его.

API применяют везде — от мобильных приложений до сайтов. Например, когда вы проверяете погоду в приложении, оно использует REST API, чтобы взять данные с сервера. REST API для To-Do List позволяет приложению: добавить, показать, изменить или удалить задачу.

Промпт:

«Напиши REST API-сервер на Python с использованием Flask или FastAPI для приложения To-Do List. Сервер должен поддерживать создание, получение, обновление и удаление задач (CRUD). Сохрани задачи в памяти, без базы данных. Код должен быть читаемым и понятным. Просто и понятно объясни, как этот код работает и как его можно протестировать».

Grok

Фрагмент кода:

# Создаем экземпляр FastAPI приложения

app = FastAPI(title=»To-Do List API»)

# Модель для задачи (определяет, какие данные должна содержать задача)

class Task(BaseModel):

    id: int

    title: str

    description: str None = None  # Описание необязательное

    completed: bool = False  # По умолчанию задача не выполнена

# Хранилище задач в памяти (список словарей)

tasks: List[Task] = []

Полный код — 64 строки.

Как это работает

Данные: Grok.

Результат: сервер запущен, API работает без нареканий. Отправляем задачу, и она появляется в списке.

Данные: Антон Тулупников. 

Как Grok оценивает собственную работу:

«Код: 8/10 — написал простой, читаемый REST API с CRUD, но можно добавить валидацию (например, для title) и обработку краевых случаев. Объяснение: 9/10 — подробно описал работу кода и тестирование, все структурировано и понятно, но можно чуть короче. Общая оценка: 8,5/10 — задача решена качественно, есть небольшой потенциал для улучшений».

DeepSeek

Фрагмент кода:

# Создаем экземпляр FastAPI приложения

app = FastAPI()

# Класс для описания структуры задачи (модель данных)

class Task(BaseModel):

    id: int

    title: str

    description: Optional[str] = None  # Описание необязательное

    completed: bool = False  # По умолчанию задача не выполнена

# «База данных» в памяти — просто список задач

tasks_db = []

current_id = 1  # Счетчик для генерации уникальных ID

Полный код вышел на 56 строк.

Как это работает

Данные: DeepSeek.

Результат: у DeepSeek возникли трудности. При создании задачи произошла ошибка 422 (сервер получил данные, но не смог их обработать из-за несоответствия формату). Дело в том, что в коде прописано, что при создании задачи нужно обязательно указывать id:

# Класс для описания структуры задачи (модель данных)

class Task(BaseModel):

    id: int

    title: str

    description: Optional[str] = None  # Описание необязательное

    completed: bool = False  # По умолчанию задача не выполнена

но по логике id должен генерироваться автоматически (это делает строка task.id = current_id в функции create_task). Со второй попытки нейросеть исправила ошибку, убрав лишнюю строку, и функция заработала корректно:

Данные: Антон Тулупников. 

Как DeepSeek оценивает свою работу:

«Код: 8/10. Исправил критическую ошибку с id, сделал логику создания задач надежной. Можно улучшить: добавить сохранение задач в файл (чтобы не пропадали после перезапуска). Объяснение: 9/10. Простые, пошаговые инструкции. Можно улучшить: добавить больше примеров ошибок и их визуализацию. Итог: Хорошо справился, но есть куда расти! Спасибо за доверие!»

ChatGPT

Фрагмент кода:

# Временное хранилище задач (в памяти)

tasks: List[Task] = []

# Получить список всех задач

@app.get(«/tasks», response_model=List[Task])

def get_tasks():

    return tasks

# Получить задачу по ID

@app.get(«/tasks/{task_id}», response_model=Task)

def get_task(task_id: int):

    for task in tasks:

        if task.id == task_id:

            return task

    raise HTTPException(status_code=404, detail=»Задача не найдена»)

Полный код от GPT — 57 строк.

Как это работает

Данные: ChatGPT.

Результат: сервер и все функции работают исправно.

Данные: Антон Тулупников. 

Как GPT оценивает свои результаты:

«Код: чистый, простой, соответствует лучшим практикам FastAPI и задачи CRUD. Объяснение: понятное, пошаговое, с примерами и альтернативами (Swagger, curl). Оценка: 9,5/10 — хорошо сбалансировано для новичка: минимум кода, максимум пользы. Если есть, что улучшить — с радостью подскажу или доработаю».

Предварительный итог

Каждая нейросеть смогла написать рабочий код с комментариями и пояснениями. ChatGPT и Grok сделали это с первой попытки, а их китайский конкурент — со второй, потратив немного больше времени. Все ИИ использовали FastAPI, объяснив это тем, что он проще и современнее, чем Flask. И ChatGPT, и Grok, и DeepSeek добавили обработку ошибок, хотя этой задачи не было в промпте.

Каждый «испытуемый» объяснил, как запустить сервер и протестировать его работу. Самым полным и понятным кажется объяснение кода нейросетью Grok — она подробно описала, как работает каждая функция: запуск сервера, FastAPI, хранилище задач, обработка ошибок. DeepSeek была более лаконичной, а ChatGPT уложился в несколько слов.

Оценка по 3-балльной шкале:

НейросетьРаботоспособность кодаПонятность объясненийЧитаемость кодаGrok333DeepSeek223ChatGPT313

Код не работает? Не обязательно переделывать его самостоятельно

Описание задачи: проанализировать и исправить плохо написанный JavaScript-код для функции, которая создает простую анимацию на веб-странице (например, движущийся квадрат, меняющий цвет).

Промпт:

«Есть код на JavaScript (приведен выше). Это функция для анимации движущегося квадрата на HTML Canvas. Найди в нем ошибки, объясни, в чем проблема, и напиши исправленную версию кода. Если есть возможность — оптимизируй код, добавь проверку границ canvas, возможность остановки анимации и комментарии. Объясни свои изменения и расскажи, как запустить анимацию».

Фрагмент кода с ошибками:

setInterval(function() {

    context.fillStyle = «white»;

    for (var i = 0; i < snowflakes.length; i++) {

      context.beginPath();

      context.arc(snowflakes[i].x, snowflakes[i].y, 5, 0, Math.PI * 2);

      context.fill();

      snowflakes[i].y = snowflakes[i].y + snowflakes[i].speed;

      if (snowflakes[i].y > 150) {

        snowflakes[i].y = 0;

Полный код написан без комментариев и содержит ошибки.

Так выглядит анимация:

Данные: Антон Тулупников. 

Grok

Выявление проблем в коде:

Данные: Grok.

Нейросеть обнаружила в коде десять проблем, включая неоптимальную производительность (использование setInterval вместо requestAnimationFrame), отсутствие проверки скорости снежинок и дублирование отрисовки. 

Результат: несмотря на недостаточно ясный и конкретный промпт, Grok переписал код так, чтобы анимация выглядела прилично:

Данные: Антон Тулупников.

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

Комментарий Grok:

«Справился хорошо: выявил все ошибки, предложил оптимизированную версию с новыми функциями и подробными комментариями. Код стал надежнее и гибче».

DeepSeek

Выявление проблем в коде:

Данные: DeepSeek.

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

Результат:

Данные: Антон Тулупников.

Исправленный код в целом функционален, но содержит несколько ошибок.

Код пытается увеличить скорость снежинок в созданном пустом массиве:

for (const flake of snowflakes) {

    flake.speed += 0.5;

}

Из-за этого нажатие кнопки «Увеличить скорость» не дает никакого эффекта.

Кнопка «Остановить анимацию» работает: анимация останавливается. Но при повторном нажатии вызывается startSnowfall, которая создает новый массив снежинок. Это приводит к сбросу текущего состояния снежинок (их позиций, скоростей и размеров), из-за чего анимация «перезапускается» с новыми снежинками вместо продолжения текущей. Помимо этого, так же, как и в коде, который написал Grok, здесь нет обработки изменения размера окна.

Комментарий DeepSeek:

«До правок работа была неплохой, но с критическими недочетами. Справился на 3/5 — базовая анимация работала, но управление и надежность хромали. После твоих правок исправил все и вывел на 5/5»

ChatGPT

Выявление проблем в коде:

Данные: ChatGPT.

ChatGPT выявил пять ключевых ошибок в коде и предложил решение.

Результат:

Данные: Антон Тулупников.

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

Комментарий GPT:

«Код оптимизирован, баги устранены, анимация расширена и готова к использованию».

Итоги

С большим или меньшим успехом нейросети выполнили задачу: объяснили основные ошибки в коде, постарались предложить альтернативу и добавили в код комментарии для улучшения читаемости. Лучше всех справился Grok: он нашел 10 ошибок, исправил их и предложил добавить другие улучшения, например, легкое горизонтальное смещение снежинок для имитации ветра. Его «коллеги» справились немного хуже: анимация работает, но с огрехами.

Оценка по 3-балльной шкале:

НейросетьНайдены ли ошибкиКачество исправленийОптимизацияGrok333DeepSeek221ChatGPT221

Творческая задача: создание видеоигры

Описание задачи: создать простую видеоигру для ПК, например, «Змейку», «Сапера» или аналогичную. Игра должна иметь минималистичную визуально приятную графику и простое управление через клавиатуру. Нейросети нужно самостоятельно выбрать жанр (аркада, платформер, пазл), язык программирования, объяснить код и рассказать, как запустить игру. 

Промпт:

«Придумай и напиши код для простой визуальной 2D-игры, реализуемой за час, с управлением через клавиатуру и визуально приятной графикой. Игра должна быть уникальной. Выбери жанр (например, аркада, головоломка, платформер, пазл и т. д.). Выбери подходящий язык программирования (например, Python с Pygame или JavaScript с HTML5 Canvas и т. д.). Интерфейс игры должен быть на русском языке. Используй минимальные библиотеки, необходимые для графики. Код должен быть читаемым, с комментариями. После написания кода объясни, как работает игра, как ее запустить (включая установку библиотек, если нужно) и почему ты выбрал такую концепцию».

Grok

Результат:

Данные: Антон Тулупников.

Нейросеть от xAI предложила игру под названием Star Collector («Звездный сборщик»).

Описание игры от Grok:

«Это 2D-игра, вдохновленная Pac-Man, но с уникальной механикой. Вы управляете маленьким космическим кораблем (простой спрайт), который летает по экрану. Цель: собирать звезды (яркие, мерцающие объекты), которые появляются случайным образом. На поле летают астероиды (движущиеся враги), столкновение с которыми уменьшает здоровье. Если здоровье (три жизни) заканчивается, игра завершается. Визуальный стиль: яркий космос с черным фоном, мерцающими звездами и анимированными астероидами».

Создание игры заняло около 25 минут. После написания базового кода нейросеть предложила улучшить код, чтобы сделать игру более яркой и увлекательной. Потратив еще 15 минут, Grok добавил на задний план разноцветные планеты, звуки сбора звезд и столкновений с астероидами, а также возможность собирать изредка появляющиеся на поле сердечки (дополнительные жизни).

Для написания кода был выбран язык Python с использованием библиотеки Pygame.

Данные: Grok.

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

Оценка от Grok:

«Я справился хорошо: создал простую, увлекательную игру Star Collector на Python с Pygame за час, как ты просил. Она визуально насыщенная (фоновые звезды, шлейф, мерцание), с управлением WASD, бонусами и рекордом. Код понятен новичку, и я подробно объяснил запуск игры. Если что-то нужно доработать, напиши!»

DeepSeek

Результат:

Данные: Антон Тулупников. Данные: DeepSeek.

DeepSeek предложил создать игру «Лабиринт сокровищ» в жанре головоломки с исследованием лабиринта.

Описание игры от DeepSeek:

«Игрок управляет искателем сокровищ, который должен собрать все монеты в лабиринте, избегая ловушек».

С первой попытки игра получилась скучноватой и сильно забагованной: в некоторых местах можно было пройти сквозь стены, лабиринты были слишком узкими и примитивными, враги (красные квадраты) не двигались. Но после нескольких правок и замечаний стало значительно лучше: исчезли некоторые ошибки, враги в виде красных квадратиков стали призраками, а главный герой — зеленый квадрат — стал человеком в шляпе. Но появились новые баги: призраки могли передвигаться сквозь стены лабиринта (что, с одной стороны, логично, но противоречит логике игры). После попытки внести исправления, предложенные нейросетью, игра перестала запускаться. А потом — все же запустилась, но без возможности управлять движениями главного героя, который почему-то деградировал обратно в форму квадрата.

Спустя более чем три часа и множество итераций DeepSeek все же смог исправить большую часть багов и достичь приемлемого качества игры.

Данные: Антон Тулупников.

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

Оценка от DeepSeek:

«Отлично! Что получилось хорошо: чистый, читаемый код с комментариями. Простая, но увлекательная механика. Визуально понятный интерфейс на русском. Что можно улучшить: добавить случайные ловушки в лабиринт».

ChatGPT

Результат:

Данные: Антон Тулупников.

ChatGPT решил создать простой платформер с элементами аркады.

Описание игры от GPT:

«Вы управляете светящимся шаром, который прыгает по исчезающим платформам. Каждая платформа исчезает через пару секунд после приземления на нее. Цель — дойти до финишной точки уровня, прыгая по платформам и избегая падения. Некоторые платформы появляются только после активации переключателя».

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

Данные: Антон Тулупников.

Спустя час отчаянной борьбы с багами, GPT все же смог сделать рабочую игру про пса, собирающего косточки. Ассеты собаки и косточек нейросеть сгенерировала самостоятельно.

Данные: Антон Тулупников.

Также, как и в предыдущих случаях, для написания кода нейросеть выбрала язык Python с использованием библиотеки Pygame. На этот раз GPT решил не делать никаких комментариев и пояснений в коде.

Оценка от GPT:

«Думаю, справился хорошо: учел твои пожелания, сделал платформы доступными для прыжков, убрал ручной прыжок. Если еще что — всегда готов помочь!»

Итоги

Мы получили три неплохих визуальных ПК-игры, потратив совсем немного времени. Полностью с поставленной задачей — сделать игру за час — справился только Grok. У GPT на это ушло около двух с половиной часов, а у DeepSeek — более трех.

Оценка по 3-балльной шкале:

НейросетьРаботает ли играПонятность объясненияЗатраченное времяGrok333DeepSeek321ChatGPT311

Так кто лучше всех?

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

Нейросеть поможет сэкономить время, но она бессильна без контроля того, кто пишет промпт. Не получится свалить всю работу на GPT или DeepSeek и надеяться, что результат будет идеальным с первой или второй попытки. Плохо написанный и не оптимизированный код — это не вина ИИ, так же как криво забитый гвоздь — не вина молотка. Результат работы — ответственность того, кто взял в руки инструмент. Неважно, китайский он или американский.

P.S. Но если вам так надо знать, вот итоговая таблица с баллами (10-балльная шкала):

НейросетьКодированиеРедактирование ошибок и оптимизацияКреативностьДоступность объясненийGrok9989DeepSeek9777ChatGPT8787

Текст: Антон Тулупников

RSS 11.07.2025 1 152
Источник: https://forklog.com/exclusive/ai/ii-v-it-vyyasnyaem-kakaya-iz-besplatnyh-nejrosetej-luchshe-pishet-kod