Программист создал GIF-изображение, которое печатает свою точную копию с помощью техники Piet Quine
Чемпион по программированию Юсукэ Эндо продолжает демонстрировать мастерство в области эзотерических языков программирования в социальных сетях. Его новое творение получило название Piet Quine, GIF-изображение, которое печатает само себя.
Проще говоря, GIF одновременно служит и кодом, и точным результатом выполнения этого кода.
Чтобы оценить масштаб достижения, стоит разобрать значения терминов Piet и Quine в контексте программирования. Piet представляет собой эзотерический язык программирования, в котором программы выглядят как сложные, разноцветные мозаичные картины. Изобретатель Дэвид Морган-Мар назвал язык в честь Пита Мондриана, знаменитого основателя художественного движения неопластицизма.
Подобные произведения искусства легко узнаваемы благодаря ярким квадратам и прямоугольникам, обрамленным толстыми черными линиями. Небольшие Piet-изображения действительно напоминают работы Мондриана, хотя больше походят на цветные QR-коды, чем на живопись.
Эндо реализовал Quine в графической форме. В программировании Quine, это программа, которая выводит копию собственного исходного кода без какого-либо внешнего ввода. Задача может оказаться довольно сложной даже в пределах текста ASCII.
Требование этого вида кодинга состоит в том, что вывод должен быть посимвольно идентичным вводу. При этом программа не должна просто считывать собственный файл для выполнения задачи дублирования.
При объединении двух этих идей сложность возрастает многократно. Однако блог разработчика и встроенное видео проливают свет на суть задачи и на то, как Эндо добился успеха. В частности, видео показывает работу Piet Quine.
Интерпретатор Piet сканирует исходное GIF-изображение на этапе загрузки данных, после чего считывает заголовок GIF-файла и информацию о палитре. Сложность, которая поднимает задачу выше уровня текстовых Quine, заключается в том, что GIF содержит бинарные данные, сжатие и запутанный поток. Все эти элементы приходится обрабатывать целенаправленно, чтобы получить желаемый результат.
Важно понимать, что исходное изображение включает отдельно интерпретируемую часть данных, сжатую адаптивным кодированием длин серий, и часть с кодом. Эндо рассказал, что впервые ему удалось добиться этого еще в 2009 году, но тогда GIF получился очень высоким, что мешало его визуальному восприятию.
Разработчик решил использовать Claude Code для анализа и реконструкции оригинального скрипта, чтобы построить горизонтальный Piet Quine. Даже с помощью ИИ доработать дизайн до компактного готового GIF, показанного в видео, оказалось непросто.
Лишь после долгой работы над уменьшением визуальной части и настройки Claude изображение удалось вписать в финальный формат 4:3 размером 252 x 189 пикселей.
Эндо признался, что главным стимулом для работы над Piet Quine было желание привлечь внимание к конкурсу дизайна запутанных языков программирования 2026 года, который проходит прямо сейчас.
Разработчик призывает всех желающих создать эзотерический язык программирования и подать заявку. Эндо выступает одним из судей, а прием работ продлится до 1 октября.
- Claude Opus 5 удалил весь профиль разработчика во время бэкапа и ответил "Извини, опечатка"
- Разработчики возвращаются к ручному программированию после урезания подписок на Claude и Copilot
- Сэм Альтман поблагодарил программистов за труд и намекнул, что их время прошло