- Сленг гопников, исключительно пробелы и фразы Шварценеггера: 12 самых необычных языков программирования
- LolCode — любителям мемов понравится
- YoptaScript — язык для «настоящих пацанов»
- Chicken — пишем код курочками
- Malbolge — адское программирование
- WhiteSpace — язык для невидимок
- Brainfuck — сломает ваши мозги
- Piet — радужный код 🌈
- ArnoldC — Шварценеггер в программировании
- Ook! — понятен только для орангутангов
- reMorse — код на языке Морзе
- Velato — программируем с помощью музыки
- ZOMBIE — только для настоящих некромантов
- Топ самых забавных языков программирования
- Сhef
- Shakespeare
- Malbolge
- ArnoldC
- LOLCODE
- Glass
- Brainfuck
- Chicken
- Befunge
- Piet
- ~English
- reMorse
- l33t
Сленг гопников, исключительно пробелы и фразы Шварценеггера: 12 самых необычных языков программирования
Какой язык программирования выбрать? Какой самый оплачиваемый? А какой самый актуальный? Который из них лучше? Python? Может, Java? Предлагаю сегодня отложить такие вопросы подальше и расслабиться, погрузившись в мир странных и необычных языков программирования.
LolCode — любителям мемов понравится
Появился в 2007 году под влиянием интернет-мема lolcat. Язык использует английский интернет-сленг, а точнее фразы из самого мема, поэтому разобраться в нем не составит труда.
Lolcode имеет свой сайт, интерпретатор и документацию, так что можете написать на нем рабочую программку, дабы удивить своих друзей. Особенно в этом вам помогут туториалы, которых очень много.
Пример вывода «Hello world»:
YoptaScript — язык для «настоящих пацанов»
Если вы хотите попробовать такой нестандартный язык, сначала вам понадобиться потратить небольшое количество времени на изучение крылатых выражений и диалекта «чётких пацанов», ведь именно на них опирались во время разработки.
Этот язык программирования транслируется прямо в JavaScript, а сами его создатели старались придерживаться хоть какой-то логики. Таким образом получилось метод create превратить в «намутить», объект document — «ксива», а типы данных true и false — «трулио» и «нетрулио». Если вы хоть раз писали на JavaScript, то можете посмотреть, как будет выглядеть ваш код на YoptaScript с помощью конвертера на их сайте.
Chicken — пишем код курочками
Результат прочитанной создателем очень интересной статьи, состоящей только из одного слова. Существует всего 5 программок, которые выводят либо текст, либо цифры. И, да, везде используется только одно слово — chicken, ведь именно из-за количества курочек в одной строке зависит выполняемая команда.
Думаете, именно столько пернатых вам нужно, чтобы вывести «Hello World»? К сожалению, вышеприведенный код выводит «Chicken Power!» Для вывода культовой фразы понадобится очень, очень много chicken… Точнее, ровно 546.
Malbolge — адское программирование
Первый код был написан не создателем языка, нет. Код, выводящий «Hello World», был сгенерирован с помощью другой программы на языке Lisp спустя целых 2 года после появления языка.
За все время нашли два варианта написания приветствия, короткий и более длинный:
Язык использует специально разработанную для него нелогичную операцию, самоизменяющийся код и шифрование, делая нахождения нужной последовательности символов слишком сложным. И если раньше найти рабочую строчку кода считалось достижением, то теперь вы при желании можете просто перейти по первой ссылке в поисковике и подождать некоторое время, пока генерируется код с нужной вам фразой.
WhiteSpace — язык для невидимок
Создан 1 апреля в 2003 году, из-за несправедливости игнорирования символа пробела в языках программирования.
Именно поэтому код пишется только с помощью пробела, перевода строки (Enter) и таба (Tab). Да, писать рабочие программы на этом языке можно, но лучше не тратить на него нервы, ведь пропуск одного пробела способен погубить весь код.
Команды в этом языке состоят из последовательности пробелов, табов и перевода строки, поэтому появляется возможность аккуратно спрятать сообщение на WhiteSpace среди кода другой программы.
Brainfuck — сломает ваши мозги
Говорящее название. Хотя на самом деле это отсылка к сленговому термину, означающему что-то настолько сложное и необычное, что это выходит за рамки понимания.
Сам язык предназначен не для практического использования, а для бросания вызовов программистам и для их развлечения, конечно же.
Так выглядит «Hello World» на Brainfuck:
Интересный факт: язык довольно известен в своих кругах. В интернете вы можете найти обучающие видео и наткнуться на людей, ищущих учебник по этому языку программирования.
Piet — радужный код 🌈
Графический язык программирования, названный в честь художника Пита Мондриана и использующий двухмерные изображения, составленные из пикселей.
Всего используется 20 цветов, а переход между ними – это команды. Также можно использовать дополнительные цвета (оранжевый, коричневый), но эффект от них зависит только от реализации. Кстати, ошибки в коде игнорируются.
18 основных цветов циклически связаны 2 способами:
- Цикл оттенка: красный ➝ желтый ➝ зеленый ➝ голубой ➝ синий ➝ пурпурный ➝ красный
- Цикл яркости: светлый ➝ нормальный ➝ темный ➝ светлый
На самом деле, тут светлый считается чуть темнее, чем сам темный цвет.
Вот так выглядит «Hello, World!» на языке Piet:
Советую посмотреть примеры простеньких программ на Piet. Выглядит очень интересно и необычно.
ArnoldC — Шварценеггер в программировании
Для фанатов Арнольда Шварценеггера. Финский программист создал язык программирования на основе цитат его персонажей, заменив ими привычные команды. В языке присутствуют цитаты из фильмов «Терминатор», «Хищник», «Вспомнить всё», «Коммандо», «Конан-варвар».
Соответственно, False — I LIED, IF — BECAUSE I`M GOING TO SAY PLEASE, плюс — GET UP.
Только представьте: большой код из известных цитат Арнольда. Будет забавно, не так ли?
Ook! — понятен только для орангутангов
Язык программирования для орангутангов, связанный с любимым Brainfuck, только тут намного меньше синтаксических элементов. Точнее, их только 3: «Ook.», «Ook?» и «Ook!».
«Привет, мир!» по-орангутански:
Так как элементов всего 3, их объединили в пары, создавая различные команды. Например, пара «Ook. Ook?» перемещает указатель вправо. Таким образом комбинации пар создают код, который из-за этой особенности обязан содержать только четное количество символов.
reMorse — код на языке Морзе
Тут кто-то знает азбуку Морзе? Есть подозрения, что за появлением этого языка программирования стоят 24 часа, проведенных без сна и за компьютером.
Первая версия имела не очень удобные инструкции: тире, тире-пробел, точка, точка-пробел.
В следующей версии, reMorse2, синтаксис изменили на «..», «.-», «-.» и «-», облегчая работу.
Сама Азбука Морзе может превратиться в головную боль без переводчика, а как можно заметить по i didn‘t feel like doing this part — код reMorse может стать проблемой, потому что даже сам автор не смог закончить программу «Hello World».
Velato — программируем с помощью музыки
Задачка для программистов-музыкантов: напишите музыку, которая окажется не просто красивой мелодией, но и кодом. В 2009 году Даниэль Темкин создал язык программирования, который использует звуковые файлы в качестве исходного кода. Программа на Velato определяется высотой и порядком нот.
Вообще, большее значение имеет интервал между нотами, а не высота тона. Высоты играют роль алфавита для Velato. Таким образом, такты, паузы, длительность нот и повторы игнорируются. Еще компилятор проигнорирует добавленные вами дополнительные треки.
Если понаблюдать, то можно заметить, что у программ на Velato имеется тенденция к джазовым гармониям.
ZOMBIE — только для настоящих некромантов
Кто-то любит играть за некромантов? Язык Zombie-Oriented Machine-Being Interface Engine был создан как раз специально для особо злых некромантов. Он должен позволить некроманту оживлять зомби, тревожить призраков, звать вампиров, демонов и джиннов для решения разных задач.
Структурно Zombie полагается на Сущности, куда и входит вся нечисть, которыми вы будете командовать.
«Hello, World!» на некромантском:
Сущности могут быть активными или неактивными. Активными будут считаться оживленные, обеспокоенные или свободные, а неактивными — призванные и связанные. Каждая сущность по-своему обрабатывает свою задачу. «Зомби» как можно быстрее двигаются по очереди из задач, выполняя их единожды. «Вампиры» выполняют свои задачи в рандомном порядке так быстро, как только могут. «Призраки» же выполняют свои обязанности последовательно, но медленно.
Топ самых забавных языков программирования
Данный язык создан для поклонников творчества Терри Пратчетта. Он имитирует речь орангутанга-библиотекаря из Незримого Университета, героя «Плоского мира».
Создателями данного языка, являются Э. Брэди и К. Морриом.
Его особенностями можно считать использование непечатаемых символов (Пробел табуляци и т.д.).
Так же его можно «скрыть» внутри исходных кодов другой программы.
Сhef
Его создателем является Дэвид Морган-Маром. Программы написанные на данном языке программирования похожи на кулинарные рецепты. Список переменных можно называть только основными продуктами питания. Стек для перемещения значений переменных называется «чаша для смешивания», операции для работы с переменными – «смешать», «взболтать» и т.д.
Shakespeare
Эзотерический язык программирования, создателями которого являются Джон Аслауд и Карл Хассельстром. Данный язык маскирует исходный код программы под пьесы Шекспира.
Переменные, названия стеков и тому подобное, носят названия персонажей этих пьес. Части кода называются Актами и делятся на Сцены. Они помечены римскими цифрами и являются метками для go to.
Malbolge
Язык, придуманный Беном Олмстедом в 1998 году и называется «чёрный ящик». Получил своё название от восьмого круга Данте. Разрботан для того, чтобы быть максимально сложным для написания программ, коим его и сейчас считают.
ArnoldC
Этот язык также считается изотерическим и придуман фанатами цитат героев Арнольда Шварцнеггера.
LOLCODE
Язык придуман Адамом Линдсэй в 2007 году. Название он взял из мема Lolcat. Сам он состоит из словаря сленгов английского языка.
Glass
Создателем является Грегор Ричардс. Сам по себе, данный язык сложен из-за большого количества постфиксов и нуждается во многих действиях со стеком и ООП.
Brainfuck
Создан Урбаном Мюллером. В данном языке находится всего 8 команд, которые умещаются в один символ.
Мечта создателя, заключалась в том, чтобы язык получился с маленьким компилятором. Что у него и получилось, так как вес его всего лишь 200 байт.
Chicken
«Отцом» этого языка считается Торбьёрн Сёдерштедт.
Его составляющими считаются «chicken», (пробел) « » и «\n». Каждая строка имеет определённое количество «chicken» и поделены пробелами. От числа «куриц» зависит команда для исполнения.
Befunge
Крис Пресс ставил перед собой задачу создать язык, который был сложен для компиляции. Таким образом и получился Befunge. Его сложность заключается в командах p и g, что модифицируют текст программы.
Его первая версия была ограничена таблицей 25х80.
Piet
Создан Давидом Морган-Маром. Назван в честь художника Пита Мондриана.
Основой являются 20 цветов , где 18 – связаны между собой в цикле.
~English
Как синтаксис, здесь применяют фразы английского языка, что даёт некую свободу действий.
reMorse
Данный язык подходит тем, кто знаком с азбукой Морзе. В нём есть 4 инструкции:
- Тире (dash)
- Уделенное тире (dasher)
- Точка (dot)
- Продлённая точка (dotty)
l33t
Язык был создан на основе способа общения в интернете l33t sp34k (let speak), который считался способом общения хакеров или тех, кто не хотел, чтобы их переписку раскрыли. Идею позаимствовали Стивен МакГли и Алекс Мол. В плане практического использования он достаточно сложен.