Ещё 6 языков программирования не на английском: загадочная Азия и нечто совершенно иное
Хотите программировать иероглифами, читать листинг справа налево или вечерами обсуждать свой код с бабушкой Сарой из Одессы? Вам сюда :)


OlyaSnow для Skillbox Media
В прошлой статье мы рассказали о программировании на европейских языках: латинском модуле для Perl, эпатажном 1С и других экзотических творениях разработчиков Старого Света.
Теперь пришло время отправиться на Восток. Здесь всё гораздо практичнее — многие языки созданы для решения реальных задач или даже как политическое высказывание в глобальной дискуссии о судьбах человечества.
Ивритская Mama
Mama — учебный язык программирования для разработки игр и 3D-анимации с собственной IDE. Он поддерживает английский, иврит и идиш, а работает только под Windows.
В первых версиях языка дефолтная IDE умела лишь подсвечивать синтаксис, компилировать и отлаживать код, выводить результат исполнения программы. А начиная с версии 1.5 её интегрировали с открытой Alice IDE, которая сильна в 3D-анимации. Поэтому теперь среда платная (здесь вы должны тихонько хихикнуть — ох уж эти национальные стереотипы), но есть и свободный редактор, в котором можно писать простые программы.

Вот так выглядит код для создания графического окна на иврите:
מחלקה תכנית_ציור יורש חלון
תגובות ללחיצה על העכבר #
מתודה תקנית: תגובה לאירוע לחיצה על מקש העכבר># (x, y)מתודה עכבר_נלחץ
צב.מקום(x, y)
מתודה תקנית: תגובה לאירוע גרירת העכבר ># (x, y)מתודה עכבר_נגרר
צב.אל(x, y)
הגדר ת=תכנית_ציור() ># יצירת עצם מהמחלקה של התכנית — גורם ליצירת חלון ולתחילת תגובה לאירועי העכבר
А вот так — на идише:
קלאס צייכענונג_אפ ינכעראץ פענצטער
שעפן מויז געשעענישן#
מעטאד מויז_געדריקט(אקס, ווי) >#נארמאל מויז געדריקט אופן
טשערעפאכע.שטעלע(אקס, ווי) #טשערעפאכע רעפריזענץ דעם איצטיקן פעדער ארט
מעטאד מויז_דראגד(אקס, ווי) נארמאל מויז דראגד אופן
טשערעפאכע.צו(אקס, ווי) #ציען שורה פון א פאזיציע צו די געגעבן איין
דעפינירן אפ=צייכענונג_אפ() #אנהייבן די אפלאקיישאן — שאפן ניו אפלאקיישאן כייפעץ
Арабский Qalb
Пишется название языка так: قلب, а читается как Qalb, Qlb и Alb. С его помощью можно написать программу на арабском.
Qalb разработал в 2012 году учёный и художник Рамси Нассер из технологического центра Eyebeam в Нью-Йорке. Этот язык — ответ на засилье английского в программировании. Вот что говорит об этом сам Рамси:
«Qalb — язык программирования, который исследует роль человеческой культуры в разработке. Он полностью написан на арабском — это призвано подчеркнуть культурные предубеждения в области Computer Science и подвергнуть пересмотру наши представления о программировании.
Основа современных инструментов программирования — ASCII, в котором есть только латинские символы и который изначально создавали на английском языке. В результате программирование плотно привязано к английской письменной культуре. А такая привязка по умолчанию даёт фору людям, которые выросли в этой культуре, читают и пишут на английском».
Вот так изящно и красиво выглядит код «Hello, World!»:
( قول "مرحبا يا عالم" )
Узнать больше о Qalb можно на сайте Нассера и в его аккаунте на Git.
P. S. Вы только подумайте — ведь это, пожалуй, самый крутой перформанс всех времён и народов! Это вам не пафосная Йоко Оно или какой-нибудь современный художник, прибивающий к мостовой свои гениталии или лающий на посетителей выставки. Рамси положил годы, чтобы создать настоящее произведение искусства и символ борьбы против языкового шовинизма в программировании! Разве это не фантастически прекрасный пример современного искусства?
Индийская Hindawi Programming System
Система программирования Hindawi (HPS) — набор языков программирования с открытым исходным кодом на хинди. Причём это не какие-то новые языки, а версии BASIC, C, C++, Assembler, Java, переведённые на хинди, гуджаратский и бенгали.
HPS придумали, чтобы обучать программированию индийцев, которые не владеют английским. В своё время система получила награды и разные гранты от правительства — правда, сейчас официальный сайт проекта недоступен, а домен выставлен на продажу. Но это не проблема — в сети ещё остались ресурсы о ведическом программировании. Например, толковый раздел на sourceforge, где можно скачать дистрибутив языка.
Вот как выглядит индийская Java (теперь вы видели всё):
<शैली कृत्रिम>
खुला श्रेणी परीक्षण
अणु
खुला जड़ व्योम मुख्य(माला_श्रेणी तर्क[])
अणु
प्रणाली.बाहर.म_लिखो_न("मेरा भारत महान");
पूर्ण
पूर्ण
Китайский Easy Programming Language (EPL)
EPL — китайский объектно-ориентированный язык программирования со своей средой разработки. Он поддерживает две версии китайского — упрощённый и традиционный, а также английский и японский языки. У самого EPL три форка: Yi language, Feiyang и Yilegu — каждый из них идёт в комплекте со своими инструментами и IDE. Преимущество EPL — кроссплатформенность: он работает и на Windows, и на Linux. Синтаксис списан с Visual Basic.
У EPL есть интересные фишки, которые делают его конкурентоспособным в Поднебесной:
- Определения программ, объявления переменных и констант, системные вызовы API заполняются в формах, поэтому запоминать синтаксические конструкции не нужно.
- В сообществе доступно множество свободных модулей, поэтому разработка на EPL идёт довольно быстро.
- В языке много локализованных функций, актуальных для Китая: лунный календарь, обработка китайского произношения и китайских символов.
Но есть и недостатки: код не получится поправить в стороннем редакторе — работать можно только в фирменной IDE, а компиляция — платная. К тому же стандартная библиотека довольно редко обновляется.
Конечно же, большинство китайских программистов используют обычные языки программирования: Java, C++, PHP, Python и другие. Но на EPL всё-таки пишут настоящие программы — например, считается, что именно на нём написано множество китайских хакерских инструментов.
Хотя это можно объяснить и недоработками самого языка: антивирусы частенько ругаются на любое ПО, написанное на EPL. Разработчики пытались это исправить, но пока не преуспели.
Так выглядит вывод «Hello, World!»:
调试输出("Hello, world!")
А так — рабочее окно программиста в официальной IDE:

У EPL есть и свой сайт — но он, конечно же, на китайском.
Японский Dolittle
Dolittle — японский язык программирования, который разработали в Осакском университете электросвязи в далёком 1952 году. Название языка — отсылка к персонажу книг Хью Лофтинга, доктору Дулиттлу.
Dolittle напоминает наш Робик: он олдскульный и его тоже создавали для обучения студентов. Бонусом к японскому идут корейская и английская версии. Синтаксис языка основан на японском порядке слов (Subject — Object — Verb) — очень неестественном для английского.
Вот так выглядит программа для перемещения двух объектов:
か め 太 = タ ー ト ル! 作 る。
カ メ = タ ー ト ル! 作 る。
時 計 = タ イ マ ー! 作 る 0,1 秒 間隔 500 回 回 数。 時 計! か め 太! 10 く 行。
左 = ボ タ ン! ”左” 作 る。 左 : 動作 = 「か め 太! 回 り」。
右 = ボ タ ン! ”右” 作 る。 右 : 動作 = 「か め 太! 10 右 回 り」。
Погрузиться в язык можно на официальном сайте.
Клингонский Var’aq
Var’aq — эзотерический язык программирования. И на нём вполне могли бы программировать клингонцы из вселенной сериала «Звёздный путь».
В отличие от большинства киношных и книжных языков, у клингонского детально проработаны грамматика, синтаксис и лексика. Есть даже вполне реальный Институт клингонского языка — он публикует переводы литературных произведений на клингонский и издаёт научный журнал. На клингонском говорят несколько сотен человек, а придумал его лингвист Марк Окранд — по заказу Paramount Pictures.
«А если у клингонского столько пользователей, почему бы не подарить им свой язык программирования?» — решили Брайен Коннорс и Крис Пресси в 2000 году. Сказано — сделано. Теперь у нас есть Var’aq, и на нём можно программировать.
Язык основан на PostScript и использует Lisp для структур данных. Все ключевые слова, операторы и даже цифры пишутся на клингонском, поэтому, если вы не входите в число той золотой сотни нейтив-спикеров, кодить у вас вряд ли получится. Хотя тот же Python изучают не только носители английского — так почему бы и не попробовать?
Вот так выглядит вывод чисел Фибоначчи на Var’aq:
0 lImoH A cher (* сохраните первые два числа как A и B *)
1 lI'moH B Cher
A cha 'B cha' (* выведите первые два числа *)
18 (* повторить 18 раз *)
AB boq (* сложите сумму A и B *)
latlh (* дублировать результат *)
ча '(* напечатайте новое число *)
B "A" cher (* магазин B в A *)
"B" cher (* сохранить новый номер в B *)
} vangqa '(* конец повторения *)
К сожалению, официальный сайт языка и ссылки на сопроводительную документацию не работают. Но вы можете изучить спецификацию в других источниках.