Думаю, когда человек впервые увидел слова, которые вывел первый компьютер на первый дисплей, сразу же захотел большего — вывести туда ещё и картину. Но первые дисплеи были алфавитно-цифровыми и графику не умели выводить ещё очень долгое время. В ответ на это желание человечество придумало так называемую ASCII-графику. Не знаю, как произносит это слово читатель, но в той среде, где я общался, говорили «а-с-цы», реже — «а-с-ки».
С этим типом «графики» (не уверен, нужны ли кавычки) я впервые столкнулся за первым компьютером, на котором начал программировать, — «Радио-86РК». Очень хорошо помню программу «шахматы», которая выводила фигуры знаками псевдографики. К шахматам у меня особого интереса никогда не было, но этот факт я для себя отметил.
Позже, когда у меня появился ПК, такого рода графика мне время от времени встречалась в различных текстовых файлах. Особенно часто её использовали как одну из форм самовыражения ребята, пиратившие софт. В их сопроводительных файлах её было навалом. А когда я попал в интернет в 90-е, обнаружил её там в изобилии.
________________
/ MAKE \
___________ / AMERICA GREAT \
(_( ___ ___ ) \ AGAIN! /
/_/-( c) (c )< \ \ _____________/
| | <_ | | /
|_| ' () ' | ___/
__\_ ( __ ) _/__
/ /| \ / |\ \
( ) ~ ~ ( )
( |\ ( . . ) /| )
( ) \ -- -- / ( )
| ,| | ___ | ,| |
\__/ \| / - | - \ |/ \__/
\oooO\_____________/Oooo/
\ _____ /
\. p | m ./
| \_____/ |
/ / \ \
(____) (____)
/_____| |_____\
___| | | |___
(_______| |_______)
Не скажу, что я специально искал где-то текстовую графику, собирал её или любил любоваться ею вечерами, но, когда она мне попадалась, её, как правило, было интересно рассматривать.
Среди такой графики попадались и надписи, сделанные подобным образом, — странная, казалось бы, идея: писать буквы другими буквами. Но таким способом можно было имитировать различные шрифты или, например, рукописное начертание.
,ggggggggggg, _,gggggg,_ ,ggggggggggg, _,gggggg,_ ,ggg, gg
dP"""88""""""Y8, ,d8P""d8P"Y8b, dP"""88""""""Y8, ,d8P""d8P"Y8b, dP""Y8b 88
Yb, 88 `8b,d8’ Y8 "8b,dPYb, 88 `8b,d8’ Y8 "8b,dPYb, `88 88
`" 88 ,8Pd8’ `Ybaaad88P’ `" 88 ,8Pd8’ `Ybaaad88P’ `" 88 88
88aaaad8P" 8P `""""Y8 88aaaad8P" 8P `""""Y8 88aaaaaaa88
88""""Y8ba 8b d8 88""""" 8b d8 88"""""""88
88 `8bY8, ,8P 88 Y8, ,8P 88 88
88 ,8P`Y8, ,8P’ 88 `Y8, ,8P’ 88 88
88_____,d8’ `Y8b,,__,,d8P’ 88 `Y8b,,__,,d8P’ 88 Y8,
88888888P" `"Y8888P"’ 88 `"Y8888P"’ 88 `Y8
В 1991 году кому-то пришло в голову, что процесс отрисовки таких надписей можно было бы автоматизировать, как это сделано со шрифтами для графических режимов. Так появилась небольшая утилита newban, которая потом выросла в «FIGlet» (название было составлено из имён автора и его друзей) и получила бешеную популярность.
Когда я ей заинтересовался в двухтысячных, по сети уже гуляло несколько сотен разных шрифтов. Восемьсот или около того. Мне очень хотелось разобраться как это всё работает.
Я тогда писал много пакетов для ПХП, мне очень нравился этот язык и очень хотелось что-нибудь сделать для сообщества. Поэтому пакет для работы со шрифтами FIGlet я написал именно на этом языке. Несколькими годами раньше это был бы Перл.
В 2008-м году появилось логическое продолжение — утилита toilet и формат шрифтов TOIlet («The Other Implementation’s letters»).
Основное отличие — шрифты стали юникодными: для поддержки символов за пределами одного байта больше не приходится делать отдельный файл с перекодировкой. Кроме того, появились цветные шрифты, но это, на мой взгляд, всё же менее важно.
Когда я начал переписывать свою библиотеку с помощью ИИ, я даже не подозревал, насколько глубока кроличья нора. В очередной раз хочу сказать, насколько сильно ИИ уже изменил и ещё изменит расклад в разработке. Если бы я переписывал эту библиотеку исключительно вручную, мне пришлось бы пойти на ряд компромиссов ради экономии времени. ИИ же позволяет удовлетворить перфекционизм почти любого уровня — только плати деньги.