Paint.NET получил переписанный с нуля Direct2D для WINE — почти целиком «наваяный» Claude

· Искусственный интеллект
Автор Paint.NET Рик Брюстер рассказал, что его редактор теперь работает на Linux через WINE благодаря чистой реализации Direct2D объёмом 180 000 строк, которую написала нейросеть Claude.

cover.svg

Рик Брюстер, создатель графического редактора Paint.NET, поделился необычным решением давней проблемы: его программа наконец сможет полноценно работать под WINE. Главным препятствием всегда был графический интерфейс Direct2D — прослойка, которую в WINE, по словам разработчика, вряд ли когда-нибудь доведут до состояния, пригодного для Paint.NET. Отключить Direct2D в самой программе тоже нельзя.

Выход нашёлся радикальный: Paint.NET теперь несёт собственную, написанную с чистого листа реализацию Direct2D, полученную методом обратной разработки. Она лежит в библиотеке PaintDotNet.Windows.Direct2D1.Managed.dll и включается флагом /wine. Никакого исходного кода Microsoft при этом не использовалось — только «clean-room» воспроизведение поведения.

«Trust me bro» на 180 тысяч строк

Самое любопытное — авторство. Всю эту библиотеку, признаётся Брюстер, написал не он, а нейросеть Claude, «без которой этого не случилось бы НИКОГДА». Разработчик прямо называет результат «vibe coded»: код по большей части толком не проверен, написан в стиле «поверь мне на слово». Отревьюить 180 000 строк вручную он просто не в состоянии — для сравнения, весь остальной Paint.NET, над которым он трудится больше двадцати лет, насчитывает около 700 000 строк.

Брюстер не скрывает, что работа с ИИ шла неровно. Временами Claude выдавал результат «с яростью десятка только что спущенных с цепи гениев уровня Эйнштейна, программирующих за десятерых». А временами — совсем наоборот. За нейросетью приходилось приглядывать, как за ребёнком: например, какое-то время она попросту забывала про подсчёт ссылок для COM-объектов, не вызывая аналог AddRef() (для тех, кто знаком с управлением ресурсами в Windows, — характерная и чреватая утечками оплошность). Пару раз разработчику пришлось, по его выражению, «надавать по рукам» за откровенно неудачные архитектурные решения.

При этом Брюстер не поскупился и на похвалу: его впечатлила упорная и порой изобретательная работа модели по обратной разработке — Claude сумел вывести все формулы, необходимые для реализации встроенной библиотеки эффектов Direct2D.

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


Источник: Simon Willison

Комментарии

Войдите, чтобы комментировать.

  • Пока нет комментариев.