Какой язык программирования выбрать? Какой самый оплачиваемый? А какой самый актуальный? Который из них лучше? 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:
Язык использует всего 8 команд («>», «<», «-», «+», «[», «]», «.», «,»), последовательность которых определяет, что именно будет делать программа.
Интересный факт: язык довольно известен в своих кругах. В интернете вы можете найти обучающие видео и наткнуться на людей, ищущих учебник по этому языку программирования.
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 определяется высотой и порядком нот.
Сыграйте «Hello world!»:
Вообще, большее значение имеет интервал между нотами, а не высота тона. Высоты играют роль алфавита для Velato. Таким образом, такты, паузы, длительность нот и повторы игнорируются. Еще компилятор проигнорирует добавленные вами дополнительные треки.
Если понаблюдать, то можно заметить, что у программ на Velato имеется тенденция к джазовым гармониям.
ZOMBIE — только для настоящих некромантов
Кто-то любит играть за некромантов? Язык Zombie-Oriented Machine-Being Interface Engine был создан как раз специально для особо злых некромантов. Он должен позволить некроманту оживлять зомби, тревожить призраков, звать вампиров, демонов и джиннов для решения разных задач.
Структурно Zombie полагается на Сущности, куда и входит вся нечисть, которыми вы будете командовать.
«Hello, World!» на некромантском:
Сущности могут быть активными или неактивными. Активными будут считаться оживленные, обеспокоенные или свободные, а неактивными — призванные и связанные. Каждая сущность по-своему обрабатывает свою задачу. «Зомби» как можно быстрее двигаются по очереди из задач, выполняя их единожды. «Вампиры» выполняют свои задачи в рандомном порядке так быстро, как только могут. «Призраки» же выполняют свои обязанности последовательно, но медленно.