Paint.NET получил переписанный с нуля Direct2D для WINE — почти целиком «наваяный» Claude
Рик Брюстер, создатель графического редактора 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
Комментарии
Войдите, чтобы комментировать.