Интересно / Кто программирует на клингонском?

эзотерические языки программист программирование приколы шутка необычные эзотерические языки Brainfuck esoteric programming star trek track klingon fun programmers joke code кодер ботаникДля тех, кто знаком с программированием не понаслышке, не станет новостью то, что создать собственный язык программирования может кто угодно. Ведь, по сути, это всего лишь набор высокоуровневых формальных правил передачи инструкций машине. Огромное количество пользователей и сообществ стремятся создать язык программирования, в чем-то превосходящий существующие, разработать его «под себя» или просто придумать что-то новое для развлечения или самореализации.
Со времен создания первых программируемых вычислительных машин человечество изобрело более 8500 языков программирования, и теперь их количество сравнимо с количеством естественных языков на планете. При этом языки программирования ежегодно пополняют свой состав, в то время как количество живых естественных языков с развитием коммуникаций уменьшается примерно на один язык в две недели.
Стоит отметить, что большинство языков программирования появились в англоговорящих странах (2400 языков разработаны в США, 600 — в Великобритании, 160 — в Канаде, 75 — в Австралии), и неудивительно, что большинство языков программирования использует английскую лексику.
Однако этим не исчерпывается все разнообразие языков управления вычислительными машинами. Существует множество языков программирования, не основанных на английском языке или вообще не основанных на каком-либо естественном языке — вот о них мы сегодня и поговорим.


Языки, не основанные на естественных языках

Многие из языков программирования, не основанных на привычной для человека лексике, являются эзотерическими, созданными для развлечения, и представляют собой образец компьютерного юмора. При этом иногда преследуются определенные цели, например, придумать такой язык, компилятор для которого имел бы минимальный размер.
К языкам программирования, которые не используют ключевые слова на естественных языках, можно отнести таких колоритных представителей, как:
  • «Brainfuck», 8-командный минималистический язык программирования с исходным кодом из 8 символов без какого-либо дополнительного форматирования;
  • «FALSE» с синтаксисом, больше похожим на шифровку;
  • «Whitespace», чей исходный код строится из пробелов;
  • «var’aq», основанный на клингонском языке из сериала Star Trek;
  • «Планкалкюль», первый в мире высокоуровневый язык программирования, созданный в 1945 году.
Список можно продолжать долго. Чтобы проникнуться всем колоритом этих представителей, достаточно взглянуть, как выглядит программа «Hello World» в Brainfuck Developer:
эзотерические языки программист программирование приколы шутка необычные эзотерические языки Brainfuck esoteric programming star trek track klingon fun programmers joke code кодер ботаник
Программа “Hello World” на языке Brainfuck

Локализованные языки и языки, не основанные на английском

Стандарт языка «Алгол-68» был опубликован в 1968 году на нескольких языках и был одобрен Международной федерацией по обработке информации. Алгол-68 разрабатывался в 1964-68 годах и обладал очень сложным синтаксисом и богатством возможностей. В нем была заложена «многоязычность» — возможность использования различных таблиц трансляции, что позволяет для каждого естественного языка определить свой набор ключевых слов.
В результате программисты получают возможность при написании программы пользоваться своим родным языком

Сейчас существует немало языков программирования, ключевые слова в которых локализованы для нескольких языков, например:
  • 4th Dimension. Существуют локализации для английского, немецкого, французского, японского, корейского, персидского языков и иврита;
  • язык макросов MS Word и MS Excel —локализован для большого количества естественных языков.
Существует достаточно много языков программирования, основанных на русском. Сразу вспоминается «КуМир», с которого многие начинали свое знакомство с программированием. В СССР был известен такой язык программирования, как «Рапира», локализованный также и на молдавский.
Стандартная небольшая программа на «Рапире», с элементами взаимодействия с GUI (см. ниже оператор ОКНОДАЙ ) выглядит так:
эзотерические языки программист программирование приколы шутка необычные эзотерические языки Brainfuck esoteric programming star trek track klingon fun programmers joke code кодер ботаник
Пример кода на «Рапире»

Кроме «1С:Предприятие», можно еще перечислить с десяток языков, основанных на русском, но они в основном либо носят учебный характер, либо имеют крайне узкую направленность.
Языки программирования, основанные на европейских языках, не впечатляют своим разнообразием. Возможно, это связано с тем, что европейцы в основной своей массе хорошо владеют английским, а для некоторых он же является и родным языком общения.
Чаще других встречаются французские и немецкие локализации:
  • Fjölnir. Основан на исландском языке, базируется на представлении программ как деревьев, взаимосвязи модулей не определяются перечислением импортируемых имён внутри каждого модуля, а задаются «снаружи» как выражения над модулями в целом.
  • GOTO++. Основан на французском языке. Вот что гласят первые строчки документации к GOTO++, которые вряд ли добавят оптимизма англоговорящим разработчикам: «Внимание: руководство не было переведено с французского. Очень жаль, но вам придется изучить французский язык. Но не переживайте, французский — очень красивый язык, я его использую и одобряю».
  • Lexico. Испанский объектно-ориентированный язык, предназначенный для изучения .NET.
  • LSE. Французский язык программирования, некая смесь BASIC и PASCAL.
  • SAKO. Польский язык программирования, представляющий из себя, по большому счету, локализованную версию FORTRAN.
  • Superlogo. Голландская разработка, основанная на языке Logo, который в свою очередь был придуман в 1967 году для обучения детей дошкольного и младшего школьного возраста азам программирования.
Впечатляет разнообразие и колорит языков программирования, основанных на восточных языках.
эзотерические языки программист программирование приколы шутка необычные эзотерические языки Brainfuck esoteric programming star trek track klingon fun programmers joke code кодер ботаник
Если европейские языки в той или иной степени схожи с английским хотя бы использованием латинского алфавита, то восточные языки программирования используют иероглифы и письмо справа налево:
  • Aheui. Этот язык программирования основан на стековом эзотерическом языке программирования Befunge и использует Хангыль — фонематическое письмо корейского языка.
  • AMMORIA. Первый открытый объектно-ориентированный арабский язык программирования.
  • Geem. Арабский язык программирования, основанный на C++.
  • Nadeshiko. Этот язык программирования основан на японских иероглифах.
  • Hindi Programming Language. Язык программирования для .NET, основанный на хинди (см. рис. внизу ).

эзотерические языки программист программирование приколы шутка необычные эзотерические языки Brainfuck esoteric programming star trek track klingon fun programmers joke code кодер ботаник
Пример программы на HPL

Отдельно можно выделить китайские языки программирования: Chinese BASIC (локализованный BASIC), Easy Programming Language, ChinesePython (тот же Python, но использующий китайскую лексику), Mama. Последний представитель, кроме всего прочего, поддерживает и другие естественные языки, кроме китайского. Этот язык призван помочь китайским студентам быстрее освоить программирование, позволяя писать первые программы на своем родном языке.
Вот как выглядит, например, код на ChinesePython:
эзотерические языки программист программирование приколы шутка необычные эзотерические языки Brainfuck esoteric programming star trek track klingon fun programmers joke code кодер ботаник
Образец кода на языке ChinesePython

Перечисленными представителями, конечно, не ограничивается все разнообразие языков программирования, формализованных с помощью иностранных ключевых слов. Стоит отметить, что большинство из них не являются инновационными разработками, а лишь основаны на существующих популярных языках программирования или являются их локализованными версиями.
Многие из них довольно причудливы, и созданы лишь ради забавы

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

Полиглотические программы

Последний вариант: одновременная комбинациях из самых разных групп языков. Это отличное упражнение, даже для вполне зрелых программистов. Итак, полиглотический код — это код, который является одновременно синтаксически-корректным и функционально-эквивалентным сразу на нескольких языках программирования. Наверное, проще понять это на примере.
Самый известный пример этого для меня — штатная заставка на популярном сервисе технических вопросов-и-ответов Stack Overflow: страница не найдена, ошибка 404.
эзотерические языки программист программирование приколы шутка необычные эзотерические языки Brainfuck esoteric programming star trek track klingon fun programmers joke code кодер ботаник
Здесь мы имеем дело с классическим полиглотическим кодом, который распечатывает только одну строчку: «Ошибка 404», но делает это совершенно равнозначно в исполняемых средах следующих языков: Python, Perl, Ruby, C, Brainfuck и Befunge.

Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями. Для этого воспользуйтесь предлагаемыми ниже кнопками:



Блог: http://romanlovetext.blogspot.com/