Код
#статьи

Ещё 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 '(* конец повторения *)

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

Чтобы войти в программирование, рекомендуем начать с более востребованных и практичных языков — на английском. Например, Java или Python. Подходящий курс можно выбрать в разделе «Программирование» на сайте Skillbox.

Нейросети для работы и творчества!
Хотите разобраться, как их использовать? Смотрите конференцию: четыре топ-эксперта, кейсы и практика. Онлайн, бесплатно. Кликните для подробностей.
Смотреть программу
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована