Чемпион-программист Юсукэ Эндо (Yusuke Endoh) вновь демонстрирует свои эзотерические навыки в социальных сетях. Его последнее творение — Piet Quine — GIF-изображение, которое выводит само себя. Иными словами, GIF одновременно является и кодом, и точным результатом его выполнения.
Если вы не до конца осознали масштаб этого достижения из заголовка, стоит разобрать определения Piet и Quine в контексте программирования. Piet — это эзотерический язык программирования, программы в котором выглядят как сложные красочные мозаичные изображения. Изобретатель Дэвид Морган-Мар назвал его в честь Пита Мондриана, знаменитого основателя движения неопластицизма. Такие произведения искусства сразу узнаваемы по смелым квадратам и прямоугольникам, обрамлённым толстыми чёрными линиями. Небольшие GIF-изображения Piet, на мой взгляд, выглядят более мондриановскими, но также больше напоминают разноцветные QR-коды, чем картины.
Эндо создал Quine в графическом виде. В программировании Quine — это программа, которая выводит копию своего собственного исходного кода без какого-либо внешнего ввода. Это может быть довольно сложной задачей, даже если ограничиться миром ASCII-текста. Требование этого искусства кодирования состоит в том, что вывод должен быть посимвольно идентичен вводу. Программа не должна просто читать свой собственный файл для выполнения задачи дублирования.
При объединении двух вышеуказанных идей всё становится гораздо сложнее. Однако прикреплённый блог и встроенное видео проливают свет на поставленную задачу и на то, как Эндо удалось её решить. В частности, видео показывает работу Piet Quine. Интерпретатор Piet сканирует исходное GIF-изображение в фазе «загрузки данных», после чего следует чтение заголовка GIF-файла и информации о палитре. Сложность, которая поднимает эту задачу выше текстовых Quine, заключается в том, что GIF содержит двоичные данные, сжатие и неудобный поток — все они должны быть обработаны целенаправленно, чтобы получить желаемый результат.
Ключевой момент, который нужно понять об исходном изображении: оно включает отдельно интерпретируемую часть данных, сжатую с помощью адаптивного кодирования длин серий, и часть кода. Эндо говорит, что ему удалось добиться этого ещё в 2009 году, но GIF был очень высоким, поэтому не идеален для визуального восприятия. Разработчик решил попросить Claude Code проанализировать и восстановить исходный скрипт, а затем создать «ландшафтный» Piet Quine. Даже с помощью ИИ было непросто доработать дизайн до компактного готового GIF, который можно увидеть в этой статье и видео. Только после долгой работы по уменьшению визуальных элементов и настройке Claude удалось втиснуть GIF в итоговое изображение с соотношением сторон 4:3 (252 x 189 пикселей).
Наконец, Эндо раскрывает, что движущей силой его усилий по разработке Piet Quine было желание привлечь внимание к Конкурсу дизайна обфусцированных языков программирования 2026, который проходит прямо сейчас. Если можете, пожалуйста, разработайте эзотерический язык программирования и отправьте его! Эндо — один из судей, и у вас есть время до 1 октября, чтобы подать свои заявки.
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Mark Tyson




