Код
#статьи

8 языков программирования не на английском: галопом по Европам

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

Анастасия Телесницкая для Skillbox Media

Шок-контент: только 45% из 8500 известных языков программирования используют английские слова для обозначения различных действий. А вот оставшиеся 55% — уже не англоязычные.

Их создают с разными задачами:

  • Языки для обучения — чтобы школьникам и студентам легче было понять принципы программирования. Таких — большинство.
  • Эзотерические языки программирования — когда создатели решают покуражиться и разработать настоящую мозголомку.
  • Языки, которые решают узкую задачу, могут быть созданы под конкретную модель компьютера или использоваться внутри одной популярной программы для бухгалтеров. Ну, вы поняли :)
  • Последняя задача звучит как «Китай» — в Поднебесной и правда используют китайские языки программирования для практических задач. А судя по темпу, с которым население Китая увеличивается, наши внуки вполне могут перейти на программирование с иероглифами :)

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

Русские идут: 1С, Робик, Рапира

Большую часть кириллических языков придумали ещё во времена СССР — и они канули в Лету вместе с пятилетками и перестройкой.

Сто китов мне в глотку: ненавистный 1С

1С в представлении не нуждается, да что там — именно он вдохновил нас написать статью. Правда, в языке 1С можно использовать и английские ключевые слова. По синтаксису он напоминает «русский Pascal», только менее строгий и без некоторых конструкций. При этом синтаксис языка довольно простой: например, вот так выглядит классика — «Hello, World!»:

Сообщить(«Привет, мир!»);

Собственно, готово. Только зачем это бухгалтерам — непонятно :)

В профессиональном сообществе 1С-программистов и сам язык не очень-то и жалуют. Даже JavaScript на фоне нашенского Enfant Terrible выглядит благородным доном. Ругают 1С за слабую производительность и отсутствие классов — кстати, никакого наследования, инкапсуляции и полиморфизма вы там тоже не найдёте. Зато в экосистеме 1С есть своя объектная модель базы данных, хранилище значений и язык запросов.

Изображение: кадр из фильма «Бойцовский клуб»

Несмотря на хейт и насмешки, 1С популярен — российский бизнес плотно подсел на продукты компании, а значит, 1С-программисты без работы не останутся.

Русская «черепашка»: Робик

Язык Робик разработал Геннадий Звенигородский в 1975 году. Писали его под родные винтажные «агаты» — в помощь школьникам. Фишка Робика — концепция исполнителей. Это как «черепашка» в Лого, только у Робика таких «черепашек» было несколько, причём каждая со своим «характером» — набором команд.

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

Изучить язык по архивной документации можно тут.

Защищайтесь, сэр: Рапира

Рапира — ещё один учебный язык программирования made in USSR начала восьмидесятых годов. Рапира помогала старшеклассникам и студентам-первокурсникам пересесть с Робика на нормальные языки. Они писали на ней калькуляторы, алгоритмы поиска, сортировки файлов, простые игры и алгоритмы решения математических задач.

«Hello, World!» на Рапире выглядит вот так:

ПРОЦ СТАРТ();
    ВЫВОД: "ЗДРАВСТВУЙ, МИР!";
КНЦ;

Интересно, что у Рапиры были версии не только на русском, но и на английском, эстонском, грузинском. «Пролетарии всех стран, соединяйтесь!» — да и только. Это был настоящий призрак цифрового коммунизма — правда, побродить по Европе ему так и не удалось.

Документация сохранилась в веб-архиве и на сайте новосибирца Ершова.

Исландский Fjölnir: Рейкьявик-Рейкьявик

Fjölnir (читается как «Фьёльнир») — это язык программирования на исландском. Его используют для обработки списков (как семейство Лиспов) и модульного программирования. Отличительная черта языка — взаимосвязи, благодаря которым имена при импорте не перечисляются «внутри» каждого модуля, а задаются «снаружи» — как выражения над модулями.

Вот так выглядит промозглый исландский «Hello, World!»:

;; Hello world in Fjölnir "hello" < main
{
   main ->
   stef(;)
   stofn
       skrifastreng("Hello, world!"),
   stofnlok
}
*"GRUNNUR"
;

Fjölnir придумал профессор информатики Исландского университета Снорри Агнарссон ещё в восьмидесятые. И он был довольно популярен среди местных программистов. Если вам вдруг попадётся файл с расширением fjo или sma — знайте, это Fjölnir.

В сети есть целая книга с описанием языка.

Испанский Lexico: Hasta la vista, baby

Ещё один учебный язык. Lexico — объектно-ориентированный и работает на платформе .NET от Microsoft. Придумали Lexico в Laboratorios Riosur.net E U ещё в 1985 году. Цель ставили простую: надо было облегчить жизнь благородных идальго — студентов и преподавателей ООП. Интересно, что Lexico постоянно развивался, вплоть до 2010-х: новые спецификации языка выходили в 1992, 2002 и 2009 годах. Синтаксически он напоминает С# и поставляется с компилятором и простой «фирменной» IDE.

На Lexico удобно писать простые алгоритмы, логические схемы и структуры. Все объекты основаны на двух классах — количестве и характере, а вместо оператора присваивания используется ключевое слово copie.

Lexico работает только на платформе от Microsoft, поэтому пользователи Linux и других ОС в пролёте. Именно в этом главный недостаток языка и причина его невысокой популярности в реальной разработке. А вы думали, всё дело в неанглийских словах? Да ладно вам, какой серьёзный девелопер не мечтает писать страстные и кровавые программы на испанском! Да ведь их можно петь под гитару вместо серенад. Послушайте, как звучит: «Привадос! Эль обхэкто валорес ун карактер!» Ах, ну что за прекрасная музыка — мы уже на всё согласные!

Вот и пример кода на Lexico — создание графического окна:

clase Form Test derivada_de system.windows.forms.form
{
    privados:
        el objeto valor es un caracter //private поле типа string
    mensajeS:
        FormTest
        {
            copie «FormTest» en valor
            copie valor en FormTest.text
        }
}

Спецификацию языка и подробности можно посмотреть тут.

Немецкий Teuton: немец свиньёй идёт

Teuton — даже не язык в строгом смысле слова. Это немецкая реализация CEDSimply — специальной оболочки, которая позволяет создавать локализации Python. Чтобы добавить новый язык, надо составить таблицу соответствия лексики Python. Вот немец Кай Шлюер и не поленился — сделал такую таблицу. Получилась весёлая программистская шутка.

Сам автор объясняет появление немецкого Python так:

«Хотя на немецком раньше не было языков программирования, об этом мечтал, пожалуй, каждый захмелевший студент, изрядно хряпнувший пшеничного на Октоберфесте или в других злачных местах. У Teuton нет никаких особых свойств — он просто немецкий. Идею я позаимствовал у Энди Дента, который рассказал в блоге о своём космополитическом языке CEDSimply».

Эстетствующий Шлюер не просто составил банальную таблицу — нет, он ещё и включил в Teuton две формы предлога in (in и im), чтобы они грамматически правильно подстраивались под падежи и артикли немецкого языка. В общем, если вы германист, вам точно понравится.

Программирует ли на нём кто-то кроме его создателя — загадка. Но быть может, песни Rammstein и Lacrimosa — это листинги пока не известных нам программ на Teuton. Скормишь компилятору брутальную Mutter — а на выходе получишь что-нибудь доброе, лучистое и светлое, как знаменитая улыбка лейтенанта Дукалиса.

Латинский Lingua: Romana::Perligata: sic transit gloria mundi

Lingua: Romana: Perligata — модуль для Perl. Он позволяет писать Perl-программы на латыни. Создатели Lingua: Romana: Perligata всерьёз заявляют, что в английском слабая лексическая структура. То ли дело древние языки — в них и лексическая структура гораздо богаче, и на строгий порядок слов они полагаются меньше.

У латинского варианта Perl есть ряд фишек. Например, в латыни для обозначения прямых цитат не используются символы. Их заменяет глагол inquit («сказал»). Поэтому в Perligata символьная строка создаётся не кавычками, а вызовом отглагольного существительного inquementum («результат высказывания»).

Вместо классического перлового

print STDOUT 'Enter next word:'

программист на Lingua: Romana: Perligata напишет так:

Enter tum next tum word inquementum tum biguttam egresso scribe.'

Похожим способом обозначаются математические операторы, значения и переменные. Пример — таблица соответствия операторов равенства и неравенства:

PerligataMeaningPerl
aequalitam"equality (of...)"==
aequalitas"equalities (of...)"eq
praestantiam"precedence (of...)"<
praestantias"precedences (of...)"lt
comparitiam"comparison (of...)"<=>
comparitias"comparisons (of...)"cmp

А вот как на латыни реализован код перебора значений числа i:

per nextum in unam tum XI conscribementis fac sic
   vestibulo perlegementum da varo.
   morde varo.
   seqis cumula varum.
cis
 
per nextum in unam tum XI conscribementis fac sic
   seqis decumulamenta da varo.
   varum privamentum fodementum da aresulto.
   varum tum III elevamentum tum V multiplicamentum da bresulto.
   aresultum tum bresultum addementum da resulto.
  
   si CD tum resultum non praestantiam fac sic
       dictum sic f(%d) = %.2f cis tum varum tum resultum egresso describe.
       novumversum egresso scribe.   
   cis 
   si CD tum resultum praestantiam fac sic       
       dictum sic f(%d) = MAGNA NIMIS! cis tum varum egresso describe.       
       novumversum egresso scribe.           
   cis
cis

В сети есть подробное описание синтаксиса Lingua: Romana: Perligata.

Французский GOTO++: же не манж па сис жур

У этого языка программирования франко-английский синтаксис. И да, это эзотерический язык — на нём программируют забавы ради. Однако GOTO++ — не классический esolang, а weirdlang, то есть язык, в котором странным является только синтаксис.

GOTO++ поддерживает процедурную и объектно-ориентированную парадигмы. Авторы описывают его как «язык, с которым вам будет нелегко» (в оригинале это звучит как «le langage qui se laisse pas faire»). Например, комментарии пишутся после ключевого слова GOTO, а чтобы сгруппировать математические операции, используют расположенные в обратном порядке фигурные скобки (}{). Символ языка — зелёный бородавочник с гневными красными глазами. Они намекают на его «дикий нрав».

Документация написана исключительно на языке Гюго и Бодлера, который авторы считают самым красивым в мире. Неудивительно, что на официальном сайте англоязычных программистов встречает дисклеймер: «Жаль, но вам придётся выучить французский».

Вот как выглядит «Hello, World!» на GOTO++ (сказать по правде, мы тоже мало что поняли):

GOTO Le premier "Hello, world!"
§100
GOTOPRINTDUTEXTE (); * `s '*` r' * `e '*` v' * `i '*` n' * `u '*`' * `o '*` l' * `l '*` e' * `h '
§2989
GOTOPRINTDUTEXTE (); * `d '*` l' * `r '*` o' * `w '*`' * `o '*` l' * `l '*` e' * `h '
GOTOGOTO ()% 2989? 50% 100? 40 

Прочесть о нём больше можно тут.

Вывод

Тут должна быть мораль или какие-то итоги — но их не будет. Капитанить в стиле «английский язык победил в программировании» как-то не очень, а других выводов и нет :) А вот обещание дадим — во второй части вас будут ждать азиатские языки программирования и привет из мира Star Trek.

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


Изучайте IT на практике — бесплатно

Курсы за 2990 0 р.

Я не знаю, с чего начать
Научитесь: Профессия Python-разработчик Узнать больше
Понравилась статья?
Да

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

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