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

Прочтите Отказ от ответственности : Весь контент, представленный на нашем сайте, гиперссылки, связанные приложения, форумы, блоги, учетные записи социальных сетей и другие платформы («Сайт») предназначен только для вашей общей информации, приобретенной у сторонних источников. Мы не предоставляем никаких гарантий в отношении нашего контента, включая, но не ограничиваясь, точность и обновление. Никакая часть содержания, которое мы предоставляем, представляет собой финансовый совет, юридическую консультацию или любую другую форму совета, предназначенную для вашей конкретной опоры для любых целей. Любое использование или доверие к нашему контенту осуществляется исключительно на свой страх и риск. Вы должны провести собственное исследование, просмотреть, проанализировать и проверить наш контент, прежде чем полагаться на них. Торговля - очень рискованная деятельность, которая может привести к серьезным потерям, поэтому проконсультируйтесь с вашим финансовым консультантом, прежде чем принимать какие-либо решения. Никакое содержание на нашем Сайте не предназначено для запроса или предложения