Программы можно писать структурой папок или изречениями персонажа Вина Дизеля
Эзотерические языки программирования — это нечто среднее между шуткой в индустрии программного обеспечения, искусством и исследованием пределов знаний человечества. Как правило, вне узких кругов гиков известны не образцы, являющиеся математическими доказательствами, а Brainfuck и что-нибудь популярное, к примеру, ArdnoldC. Новые примеры эзотерических языков появляются достаточно часто.
Дэниел Темкин создал эзотерический язык программирования Folders. Это первый язык, созданный специально для его блога esoteric.codes. Как следует из названия, программирование в этом языке не требует файлов, нужно лишь дерево папок файловой системы, структура которого и определяет код. Пример Hello World на языке Folders представлен слева.
В своей работе Темкин вдохновлялся Whitespace, эзотерическим языком, в котором программирование осуществляется обычно не играющими большой роли символами: пробелом, символом табуляции и переводом строки. Темкин задался вопросом, что ещё более пусто, чем файл, открыв который, пользователь ничего увидит, и пришёл к выводу, что это могут быть пустые папки. Как правило, папки организуют файлы, а структура из папок, которая содержит лишь другие папки и никаких файлов, обычно абсолютно бесполезна и лишь отнимает место на диске.
Другая особенность каталогов файловой системы — это то, что иерархичиские вложения одной папки в другую похожи на структурное абстрактное дерево. При этом верхний каталог носит название имени программы.
99 бутылок пива
Код читается в алфавитном порядке. Числа перед командами игнорируются, их можно использовать как номера строчек. При этом первая папка в циклах
while
и if
определяет условие, а все последующие — команды. Также полностью игнорируются файлы внутри папок и слова - Copy
, - Copy (2)
и так далее в конце названий. Для соблюдения принципов языка данные и переменные сохраняются в папке Application Data текущего пользователя тоже в виде структуры папок, которая не удаляется после запуска, оставаясь в виде иллюстрации произошедшего. Некоторые ключевые слова можно (но необязательно) заменять на внешне распространённые названия папок.Команда | Альтернативное название |
---|---|
if | New Folder |
while | Temp |
declare | Images |
let | Downloads |
Setup | |
input | Logs |
Тип | Альтернативное название |
---|---|
int | Vacation photos |
float | Lang |
string | Img |
double | User |
На данный момент Folders доступен только для Windows, компилятор можно найти в репозитории на GitHub.
Другим недавно появившимся в Сети эзотерическим языком является Groot. Чтобы понять его идею, нужно вспомнить комиксы Marvel или фильм «Стражи Галактики» (Guardians of the Galaxy), прокат которого в России состоялся летом прошлого года. Язык одного из персонажей сложен, но всем остальным кажется, будто он повторяет одну и ту же фразу — «я есть Грут». Лишь со временем контактирующие с Грутом люди начинают понимать высказываемые интонации.
Groot — брейнфакоподобный язык, который повторяет принципы общения персонажа. Восемь команд определяются следующим образом:
Фраза | Значение |
---|---|
i am groot | увеличить значение в текущей ячейке |
I am Groot | уменьшить значение в текущей ячейке |
I AM GROOOT | напечатать значение из текущей ячейки |
I AM GROOT | перейти к следующей ячейке |
I am groot | перейти к предыдущей ячейке |
I am groot | ввести извне значение |
I'm Groot | если значение текущей ячейки ноль, перейти вперёд по тексту программы на ячейку, следующую за соответствующей We're Groot |
We're Groot | если значение текущей ячейки не ноль, перейти назад по тексту программы на I'm Groot |
Так выглядит Hello World на языке Groot:
Скрытый текст
I AM GROOT
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
I'm Groot
I am groot
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
I AM GROOT
I am Groot
We are Groot
I am groot
I AM GROOOT
I AM GROOT
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
I'm Groot
I am groot
i am groot
i am groot
i am groot
i am groot
I AM GROOT
I am Groot
We are Groot
I am groot
i am groot
I AM GROOOT
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
I AM GROOOT
I AM GROOOT
i am groot
i am groot
i am groot
I AM GROOOT
I AM GROOT
I AM GROOT
I AM GROOT
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
I'm Groot
I am groot
i am groot
i am groot
i am groot
i am groot
I AM GROOT
I am Groot
We are Groot
I am groot
I AM GROOOT
I AM GROOT
I AM GROOT
I AM GROOT
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
I'm Groot
I am groot
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
I AM GROOT
I am Groot
We are Groot
I am groot
I am Groot
I am Groot
I am Groot
I AM GROOOT
I am groot
I am groot
I am groot
I am groot
I AM GROOOT
i am groot
i am groot
i am groot
I AM GROOOT
I am Groot
I am Groot
I am Groot
I am Groot
I am Groot
I am Groot
I AM GROOOT
I am Groot
I am Groot
I am Groot
I am Groot
I am Groot
I am Groot
I am Groot
I am Groot
I AM GROOOT
I AM GROOT
I AM GROOT
i am groot
I AM GROOOT
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
I'm Groot
I am groot
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
I AM GROOT
I am Groot
We are Groot
I am groot
I AM GROOOT
I AM GROOT
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
I'm Groot
I am groot
i am groot
i am groot
i am groot
i am groot
I AM GROOT
I am Groot
We are Groot
I am groot
i am groot
I AM GROOOT
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
I AM GROOOT
I AM GROOOT
i am groot
i am groot
i am groot
I AM GROOOT
I AM GROOT
I AM GROOT
I AM GROOT
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
I'm Groot
I am groot
i am groot
i am groot
i am groot
i am groot
I AM GROOT
I am Groot
We are Groot
I am groot
I AM GROOOT
I AM GROOT
I AM GROOT
I AM GROOT
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
I'm Groot
I am groot
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
i am groot
I AM GROOT
I am Groot
We are Groot
I am groot
I am Groot
I am Groot
I am Groot
I AM GROOOT
I am groot
I am groot
I am groot
I am groot
I AM GROOOT
i am groot
i am groot
i am groot
I AM GROOOT
I am Groot
I am Groot
I am Groot
I am Groot
I am Groot
I am Groot
I AM GROOOT
I am Groot
I am Groot
I am Groot
I am Groot
I am Groot
I am Groot
I am Groot
I am Groot
I AM GROOOT
I AM GROOT
I AM GROOT
i am groot
I AM GROOOT
Больше информации можно найти в официальном репозитории проекта.