Редкие, исчезающие языки и языки замкнутых этноконфессиональных общин – это своего рода эзотерика. Мистики – никакой, просто термин такой есть. Общаться на таких языках можно только в узком кругу своих.
Более того, есть и «эзотерические языки программирования». Сейчас их более двадцати. Особый интерес представляют FALSE, Brainfuck, разработанные на основе идеи крайнего примитивизма, и INTERCOL, базирующемся на гротескной непохожести и парадоксальной сложности.
Зачем создаются такие модели? Давайте постараемся понять.
Считается, что важнейшей особенностью любого языка является коммуникативная функция, служащая средством общедоступности и распространения информации между людьми. Однако нередко возникает потребность в противоположных свойствах. Есть немало ситуация, когда необходимо максимально затруднить доступ к информации нежелательным пользователям.
Секретная функция языка – это безопасность, прежде всего. Программисты при создании компьютерных продуктов стараются сохранить конфиденциальность и соблюдать тайну переписки между пользователями.
Например, есть эзотерический язык Piet, маскирующийся под абстрактное искусство. Давид Морган-Мар использовал 20 разных цветов и два цикла преобразований – яркости и оттенков. Код на языке Piet представляет собой форму графики, собранной из распознаваемых цветов. Основной элемент – цветной блок. Он принимает любые формы и может иметь «дыры» других цветов внутри, которые не являются частью блока.
Интересно, что эзотерические языки программирования могут теоретически использоваться хакерами. Например, программы на языке Whitespase – это команды из непечатных символов и пробелов. Они могут незаметно встраиваться в программы, написанные на обычных языках. По сути, такой эзотерический язык напоминает вирус.
Хакерское воздействие Whitespase может напоминать и некоторые магические манипуляции. В одном фантастическом рассказе добропорядочный обыватель разгадывает кроссворд и неожиданно для себя собирает слово из шести букв – «Сатана». Как только головоломка была разгадана, демон тут же появился и забрал душу заядлого игрока.
Зачастую эзотерические языки программирования создаются ради так называемой «хакерской ценности». Это, когда человек охвачен идеей придумать что-нибудь оригинальное, какую-нибудь головоломку.
Креативные программисты одержимы концептуализмом. Например, среди хакеров зародилась палиндромная музыка –произведения, которые будут звучать одинаково, в каком бы направлении вы их ни прослушали.
Один из принципов хакерской этики, описанный в книге «Хакеры: герои компьютерной революции» Стивена Леви гласит: «Вы можете создавать искусство и красоту на компьютере». Другой принцип – использование вещей уникальным образом, не по прямому назначению. Матричный принтер вполне годится для создания музыкальных нот, планшетный сканер – для съемки фотографий с очень высоким разрешением, а оптической мышью можно считывать штрихкоды… А вы не знали?
«Чтобы все вас уважали, надо заниматься тем, что никому не понятно». Это принцип разработки INTERCAL.
Один из старейших эзотерических языков программирования был создан в 1972 году как шутка двух студентов. Они называли INTERCAL «языком с непроизносимой аббревиатурой». В нем даже для символов были созданы специальные имена, – например, кавычки и знак равенства стали «кроличьими ушами» и «полурешеткой». Разработчики насытили язык парадоксальными операторами, например, «PLEASE». Если такой оператор появлялся редко, программа считается недостаточно вежливой и приходило сообщение об ошибке. Если же это мелькало часто, программа отклонялась как подозрительная.