Топ самых забавных языков программирования — необычные и странные языки программирования и факты о них
Статьи
Топ самых забавных языков программирования
bg

Топ самых забавных языков программирования

Мы не сомневаемся, что вы за свою жизнь успели узнать о множестве языков программирования: как минимум об Assembler, Pascal, С++, C# (как до-диез, только си-шарп), Java, Python, Ruby, Haskell. Все они имеют преданных фанатов и яростных противников. Разные языки могут затачиваться под определенные цели или быть более универсальными, однако в большинстве своем они используются умными бородатыми (и не очень) разработчиками для решения профессиональных задач.


Но когда программистам наскучивают серьезные языки программирования, они начинают разрабатывать новые, только не самые обычные, а эзотерические. Их создают для исследования возможностей разработки, в качестве произведения искусства, или, как чаще всего и случается, ради забавы. При этом многие из этих странных языков программирования потенциально ничуть не хуже классических, то есть теоретически их можно использовать и в настоящих проектах.

Эзотерические языки часто пародируют «серьезные», а тексты программ на них понятны лишь посвященным. В то время как разработчики реально используемых языков стараются сделать синтаксис максимально понятным, а сам процесс написания кода — удобным, создатели эзотерических языков обычно ставят перед собой противоположные задачи.

Ook!

68_1.png

Целое семейство эзотерических языков выглядит так, будто основывается на принципе английского философа Уильяма Оккама: «Не следует множить сущее без необходимости». Они отрицают какой-либо дополнительный синтаксис, а их разработчики часто гонятся за уменьшением размера компилятора.

Несмотря на внешнюю примитивность, такие языки могут иметь бесконечный набор ячеек и тьюринговскую полноту, и, следовательно, по потенциальным возможностям не уступать «настоящим», подобным C, Pascal или Java. Например, для поклонников Терри Пратчетта существует «Ook!». Этот необычный язык программирования имитирует речь одного из героев «Плоского мира» — орангутанга-библиотекаря из Незримого Университета.

Пример кода для вывода сообщения «Hello, world!»:


Whitespase

68_2.png

Whitespace (англ. пробел) — эзотерический язык программирования, созданный Э. Брэди и К. Моррисом. Существенным его отличием является то, что для управляющих конструкций используются только непечатаемые символы, а именно: пробел, перевод строки и табуляция. Интересным следствием этого факта является то, что текст программы на языке Whitespace можно «скрыть» внутри исходных кодов другой программы. Кстати язык был выпущен 1 апреля 2003 года, и многие восприняли его как шутку на День смеха.

Пример кода для вывода сообщения «Hello, world!» (с подсветкой спецсимволов):


Языки с литературным синтаксисом

Если вам все-таки кажется очень неудобным читать цитаты высших приматов, разбираться в закорючках или читать невидимые знаки, есть варианты с довольно user-friendly синтаксисом.

Chef

68_3.png

Chef — эзотерический язык программирования, разработанный Дэвидом Морган-Маром, программы на котором сходны с кулинарными рецептами. Каждая программа в языке состоит из названия, списка переменных и их значений, списка инструкций. Переменные могут быть названы только названиями основных продуктов питания. Стек, в которые помещаются значения переменных, называется англ. mixing bowl («чаша для смешивания»), а операции для манипуляции с переменными — mix («смешать»), stir («взболтать») и так далее. Язык идеально подходит для домохозяек и для Джеймса Бонда.

Пример кода для вывода сообщения «Hello, world!»:

Hello World Souffle.


Ingredients.

72 g haricot beans

101 eggs

108 g lard

111 cups oil

32 zucchinis

119 ml water

114 g red salmon

100 g dijon mustard

33 potatoes


Method.

Put potatoes into the mixing bowl.

Put dijon mustard into the mixing bowl.

Put lard into the mixing bowl.

Put red salmon into the mixing bowl.

Put oil into the mixing bowl.

Put water into the mixing bowl.

Put zucchinis into the mixing bowl.

Put oil into the mixing bowl.

Put lard into the mixing bowl.

Put lard into the mixing bowl.

Put eggs into the mixing bowl.

Put haricot beans into the mixing bowl.

Liquefy contents of the mixing bowl.

Pour contents of the mixing bowl into the baking dish.


Serves 1.

Shakespeare

68_4.png

Если же вы не готовите, ходите есть в рестораны и предпочитаете духовную пищу, найдется вариант и для вас. Shakespeare — эзотерический язык программирования, разработанный Джоном Аслаудом и Карлом Хассельстромом. Язык Shakespeare призван замаскировать исходный код программы под пьесы Уильяма Шекспира.

Список персонажей в начале программы служит для объявления количества стеков, носящих имена, например, «Ромео» и «Джульетта». Эти герои общаются друг с другом — тем самым совершая операции ввода-вывода, могут задавать вопросы (аналог условного оператора). Части исходного кода на Shakespeare называются Актами (Act), которые разбиваются на Сцены (Scene). Каждые Акт и Сцена пронумерованы римскими цифрами и служат метками для GOTO.

Прежде чем персонажи смогут участвовать, они должны сначала выйти на сцену. Чтобы поместить персонажа на сцену, его необходимо вызвать командой Enter. Одновременно на сцене могут находиться только два персонажа. Иначе не ясно, с кем ведется общение. Чтобы персонаж покинул сцену, необходимо обратиться к нему командой Exit. Если акт заканчивается, или необходимо просто прогнать нескольких персонажей, то необходимо использовать команду Exeunt. В результате получается и пьеса, и программа.

Пример кода для вывода сообщения «Hello, world!»:

Romeo, a young man with a remarkable patience.

Juliet, a likewise young woman of remarkable grace.

Ophelia, a remarkable woman much in dispute with Hamlet.

Prince Hamlet, the flatterer of Andersen Insulting A/S.


Act I: Hamlet's insults and flattery.

Scene I: The insulting of Romeo.

[Enter Hamlet and Romeo]

Hamlet:

You lying stupid fatherless big smelly half-witted coward! You are as

stupid as the difference between a handsome rich brave hero and thyself!

Speak your mind!

You are as brave as the sum of your fat little stuffed misused dusty

old rotten codpiece and a beautiful fair warm peaceful sunny summer's

day. You are as healthy as the difference between the sum of the

sweetest reddest rose and my father and yourself! Speak your mind!

You are as cowardly as the sum of yourself and the difference

between a big mighty proud kingdom and a horse. Speak your mind.

Speak your mind!

[Exit Romeo]

Scene II: The praising of Juliet.

[Enter Juliet]

Hamlet:

Thou art as sweet as the sum of the sum of Romeo and his horse and his

black cat! Speak thy mind!

[Exit Juliet]

Scene III: The praising of Ophelia.

[Enter Ophelia]

Hamlet:

Thou art as lovely as the product of a large rural town and my amazing

bottomless embroidered purse. Speak thy mind!

Thou art as loving as the product of the bluest clearest sweetest sky

and the sum of a squirrel and a white horse. Thou art as beautiful as

the difference between Juliet and thyself. Speak thy mind!

[Exeunt Ophelia and Hamlet]


Act II: Behind Hamlet's back.

Scene I: Romeo and Juliet's conversation.

[Enter Romeo and Juliet]

Romeo:

Speak your mind. You are as worried as the sum of yourself and the

difference between my small smooth hamster and my nose. Speak your

mind!

Juliet:

Speak YOUR mind! You are as bad as Hamlet! You are as small as the

difference between the square of the difference between my little pony

and your big hairy hound and the cube of your sorry little

codpiece. Speak your mind!

[Exit Romeo]

Scene II: Juliet and Ophelia's conversation.

[Enter Ophelia]

Juliet:

Thou art as good as the quotient between Romeo and the sum of a small

furry animal and a leech. Speak your mind!

Ophelia:

Thou art as disgusting as the quotient between Romeo and twice the

difference between a mistletoe and an oozing infected blister! Speak

your mind!

[Exeunt]

ArnoldC

68_5.png

Любителей кино порадует язык программирования ArnoldC, составленный из цитат героев Арнольда Шварцнеггера. Не будем углубляться в подробности.

Пример кода для вывода сообщения «Hello, world!»:


Malbolge (язык-«черный ящик»)

68_6.png

Malbolge — эзотерический язык программирования, придуманный Беном Олмстедом в 1998 году. Язык разработан с целью быть максимально сложным для написания программ, каким его и принято считать. Получил свое название от Malebolge, восьмого круга ада Данте. Язык настолько сложен, что просто так написать на нем программу может разве что Чак Норрис, дважды досчитав до бесконечности. Код первой программы, выводящей «HEllO WORld», сгенерировала другая программа на языке Lisp, использовавшая поиск в множестве всех возможных программ, через два года после появления самого языка Malbolge.

Пример кода для вывода сообщения «Hello, world!»:


Эзотерические языки программирования – это интересно и забавно, но для их разработки и вообще для решения реальных кодинговых задач нужно хорошо разбираться в других, «настоящих», языках. Развивайтесь, а потом уже придет время и немного пошалить.

Теги

Получите карьерную поддержку

Если вы не знаете, с чего начать карьеру, зашли в тупик или считаете, что совершили какие-то ошибки, спросите совета у специалистов. Заполните заявку и консультанты Changellenge >> окажут вам помощь. Это отличный шанс вместе экспертом проработать проблемные вопросы и составить карьерный план.

Смотрите также