Crypto Currency Tracker logo Crypto Currency Tracker logo
Forklog 2025-07-11 13:30:00

ИИ в 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 Текст: Антон Тулупников

Read the Disclaimer : All content provided herein our website, hyperlinked sites, associated applications, forums, blogs, social media accounts and other platforms (“Site”) is for your general information only, procured from third party sources. We make no warranties of any kind in relation to our content, including but not limited to accuracy and updatedness. No part of the content that we provide constitutes financial advice, legal advice or any other form of advice meant for your specific reliance for any purpose. Any use or reliance on our content is solely at your own risk and discretion. You should conduct your own research, review, analyse and verify our content before relying on them. Trading is a highly risky activity that can lead to major losses, please therefore consult your financial advisor before making any decision. No content on our Site is meant to be a solicitation or offer.