Существует огромное количество самых разных языков программирования, их насчитывается несколько тысяч. Какие‑то — идеальны для работы, другие же созданы just for fun. К слову, есть ЯП, представленные программистами из неанглоязычных стран, в них операторы, функции и т. п. — все на родном для автора языке. Кроме того, некоторые страны стремятся развивать свои собственные IT‑индустрии, и использование местного языка в программировании может быть способом поддержать эту инициативу. Мы выбрали самые интересные на наш взгляд non‑English языки программирования.

Рапира (СССР)

Рапира был создан в СССР в конце 1970-х годов и отличался рядом особенностей. Русский язык обеспечивал удобство в обучении программированию для советских студентов и специалистов.  ЯП был ориентирован на использование в научных и технических расчетах, а также в промышленности. Язык обладал хорошими возможностями для выполнения сложных математических и инженерных вычислений. Например, он мог поддерживать работу с числами высокой точности и обеспечивать доступ к математическим библиотекам. 

Язык Рапира унаследовал многие особенности других «винтажных» языков — Поплан и Сетл. Так, например, в языке Рапира используются необъявляемые бестиповые переменные (переменная считается объявленной при первом использовании, тип переменной определяется типом присвоенного выражения, инициализированной переменной можно присваивать значения типов, отличающихся от первоначально присвоенного), поддерживаются высокоуровневые составные типы данных — кортежи и множества (последние являются частным случаем кортежа).

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

Lexico (Испания)


Lexico представляет собой язык программирования на испанском языке, разработанный для обучения программированию с упором на объектно-ориентированное программирование. Он был спроектирован в 1985 году и модифицирован, доработан в 1992, 2002 и 2009 годах лабораторией Riosur.net E.U. Lexico предоставляет студентам практические уроки, стимулирующие интерес к программированию и позволяющие начать работу с готовыми алгоритмами с первых шагов.

tarea
{
	los objetos valor1, valor2, resultado son cantidades //объявляем переменные типа integer
	entre valor1, valor2 //ожидание ввода данных в консоли
	copie valor1*valor2 en resultado

	es resultado > 15?
	si:
	{
    	muestre resultado, " > 15"
	}
	no:
	{
    	muestre resultado, " <= 15"
	}
}

Компилятор Lexico распространяется на платформе .NET от Microsoft и поддерживает функции, соответствующие международным стандартам для объектно-ориентированного программирования. Он позволяет практиковать основные концепции алгоритмов, структур данных и программирования, включая использование объектов, классов и наследования. Версия Lexico 3.0 может генерировать исполняемый код для платформы .NET и CF .NET (Compact Framework), что делает его полезным для создания программ для устройств на базе Windows Mobile, таких как PocketPC, PDA и SmartPhone.

Fjölnir (Исландия)

Fjölnir — это функциональный язык программирования, ориентированный на простоту, выразительность и производительность. Он был разработан исландским профессором информатики Снорри Агнарссоном в 1980-х годах. Fjölnir предоставляет богатый набор функциональных возможностей, таких как функции высших порядков, замыкания, рекурсия и неизменяемые структуры данных. Язык применяется для обработки списков, похожим на LISP, а также для модульного программирования.

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

«bottles» < main
{
	main ->
    	stef(;)
    	staðvær i,b
    	stofn
        	fyrir( i := 100; i > 1; i := i-1) lykkja
            	bottles(;i-1),
            	skrifastreng(;" on the wall, "),
            	bottles(;i-1),
            	skrifastreng(;",\ntake one down, pass it around, \n"),
            	bottles(;i-2),
            	skrifastreng(;" on the wall.\n"),
        	lykkjulok,
    	stofnlok
}
*
{
	bottles ->
    	stef(;n)
    	stofn
        	val n úr
        	kostur 0 þá
            	skrifastreng(;«no more bottles»),
        	kostur 1 þá
            	skrifastreng(;«1 bottle of beer»),
        	annars
            	skrifa(;n),
            	skrifastreng(;" bottles of beer"),
        	vallok
    	stofnlok
}
*
«GRUNNUR»
;

Nadesiko (Япония)

Nadesiko (или なでしこ) — это язык программирования, разработанный в Японии. Он базируется на BASIC и предназначен для облегчения изучения программирования для начинающих разработчиков — конечно же, японцев. В японском языке «nadesiko» означает «детскую игрушку» или «простой инструмент», что подчеркивает его простоту и доступность для новичков. Важной особенностью Nadesiko является его адаптация к японскому языку и культуре. Он использует японские ключевые слова и выражения, что делает его более доступным для пользователей, владеющих лишь японским языком.

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

Wenyan-lang (Китай)

Вэньянь‑лан — китайский язык программирования, созданный Янь Чжонг Куаном в 2018 году. Разработчик хотел создать ЯП, который был бы похож на древние китайские рукописи, поэтому его синтаксис и структура напоминают классические китайские литературные тексты. В этом особенность Вэньянь‑лан — использование китайских иероглифов вместо традиционных ключевых слов и синтаксиса программирования. Это делает его уникальным и интересным для изучения и экспериментов. Вэньянь‑лан является кросс‑платформенным языком, написанным на Java Script.

吾有一術。名之曰「埃氏篩」。欲行是術。必先得一數。曰「甲」。乃行是術曰。
    吾有一列。名之曰「掩」。為是「甲」遍。充「掩」以陽也。
    除「甲」以二。名之曰「甲半」。

    有數二。名之曰「戊」。恆為是。若「戊」不小於「甲半」者乃止也。
   	 有數二。名之曰「戌」。恆為是。若「戌」不小於「甲半」者乃止也。

   		 乘「戊」以「戌」。名之曰「合」
   		 若「合」不大於「甲」者。
   			 昔之「掩」之「合」者。今陰是矣。
   		 若非乃止也。
   	 加一以「戌」。昔之「戌」者。今其是矣云云。
    加一以「戊」。昔之「戊」者。今其是矣云云。

    吾有一列。名之曰「諸素」。
    昔之「戊」者。今二是矣。恆為是。若「戊」等於「掩」之長者乃止也。
   	 夫「掩」之「戊」。名之曰「素耶」。
   	 若「素耶」者充「諸素」以「戊」也。
    加一以「戊」。昔之「戊」者。今其是矣云云。
    乃得「諸素」。
是謂「埃氏篩」之術也。

施「埃氏篩」於一百。書之

Оценить красоту и рациональность языка оставляем тем, кто знает китайский и программирование одновременно.

Qalb (США)

Qalb был создан Рамзи Нассером (Ramsey Nasser) для облегчения программирования тем, у кого родной язык арабский. Qalb имеет схожие синтаксис и правила грамматики с языками Lisp и Scheme. Цель проекта заключается в устранении языкового барьера, с которым многие арабы лица сталкиваются при программировании на английском языке. 

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

Aheui (Южная Корея)

Aheui — ЯП с тотальной функциональностью, что означает, что каждая программа завершается за конечное время, вне зависимости от входных данных. Это обеспечивает детерминированность и предсказуемость работы программ. Основная идея Aheui заключается в том, что программа представляет собой двумерную таблицу (матрицу) из символов. Каждая ячейка этой таблицы содержит один из 11 символов, представляющих различные команды и операции.

밤밣따빠밣밟따뿌
빠맣파빨받밤뚜뭏
돋밬탕빠맣붏두붇
볻뫃박발뚷투뭏붖
뫃도뫃희멓뭏뭏붘
뫃봌토범더벌뿌뚜
뽑뽀멓멓더벓뻐뚠
뽀덩벐멓뻐덕더벅

Этот язык предлагает необычные концепции, такие как «cho» (переключение), «jung» (повторение) и «yu» (соединение), которые позволяют создавать сложные алгоритмы с использованием различных команд и операций. В связи с его необычностью и уникальностью, Aheui породил ряд развлекательных проектов, таких как игры и головоломки, основанные на использовании этого языка программирования.


Возможно, вы знакомы с другими, не менее интересными языками? Если так, расскажите о них в комментариях.

Комментарии (30)


  1. slivka_83
    08.04.2024 07:06
    +7

    а как же https://yopta.space/ :)


    1. Dartess
      08.04.2024 07:06
      +2

      А теперь ещё и ruptava, goptava и leptava


  1. Vad344
    08.04.2024 07:06
    +3

    Интересно, кто-нибудь сравнивал эффективность обучения программированию на этих национальных ЯП и, скажем на Бейсике, Питоне или Паскале?


    1. alan008
      08.04.2024 07:06
      +22

      Программисты 1С сравнивали и сказали, что всё нормально.


      1. Tatooine
        08.04.2024 07:06
        +3

        Кстати интересно почему Одиновой задницы в списке нет


        1. piuzziconezz
          08.04.2024 07:06
          +3

          И еще интересно, является ли 1С самым используемым в мире языком программирования на основе неанглийского?


          1. TimurTukaev
            08.04.2024 07:06
            +1

            Вряд ли. У китайцев и индусов есть локальные ЯПы на их языках достаточно популярные.


    1. sensei_developer
      08.04.2024 07:06
      +4

      Мне кажется разницы то и нет, главное же мышление, понимание ООП и прочего

      А на каком языке, дело десятое, синтаксис и базовые вещи можно условно за 1-2 недели изучить в неспешном темпе


      1. sanapad
        08.04.2024 07:06
        +1

        Так и в английском можно основные конструкции выучить за 2 недели. Но чтобы на нем заговорить по-нормальному - понадобится полгода практики хотя бы. С языками программирования также.


      1. avkorotkikh
        08.04.2024 07:06

        Глядя на языки представленные в статье, возникает сомнение в том что я могу за 1-2 недели их изучить в неспешном темпе, особенно те, где буквы не латинские. Кроме Рапиры естественно.


  1. CommanderTvis
    08.04.2024 07:06
    +2

    необъявляемые бестиповые переменные

    Очевидно некорректный термин. Если тип переменной определяется термом, который к ней был впервые присвоен, то это не значит, что переменную не объявили, равно как и то, что у неё нет типа.

    Правильно: переменные без объявляющего ключевого слова и с выводом типа.


    1. lgorSL
      08.04.2024 07:06
      +1

      инициализированной переменной можно присваивать значения типов, отличающихся от первоначально присвоенного

      Там дальше это написано, выглядит как динамическая типизация.


  1. webhamster
    08.04.2024 07:06

    Aheui не смогла отрисоваться в браузере.



  1. DaneSoul
    08.04.2024 07:06
    +2

    Учитывая современную популярность эмодзи (тоже ведь своеобразный язык), стоит тут упомянуть статью про языки программирования на них основанных.


  1. SemyonVyatskov
    08.04.2024 07:06

    Оценить красоту и рациональность языка оставляем тем, кто знает китайский и программирование одновременно.

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


    1. piuzziconezz
      08.04.2024 07:06

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


      1. S_gray
        08.04.2024 07:06

        Была как-то задачка для принтера Brother, с использованием их API, в процессе отладки неожиданно получил Exception с сообщением на китайском (иероглифами)... Но Гуглоперевод помог.


  1. medvedd
    08.04.2024 07:06
    +1

    Стоило бы упомянуть язык ЯРМО. На нем много было написано, фактически целый институт только на нем и писал (НФ ИТМиВТ).


  1. Raegdan
    08.04.2024 07:06

    Удивлен, что нет ЯП на хинди.


    1. vladislav_smirnov
      08.04.2024 07:06

      Там же английский государственный


    1. TimurTukaev
      08.04.2024 07:06

      Он есть. В подборку не вошел просто. Там прям несколько индийских языков в одном наборе.



  1. axe_chita
    08.04.2024 07:06
    +1

    На гитхабе существует репозиторий интерпретатора Рапира версии 1.0.1


  1. JQuery567
    08.04.2024 07:06

    https://pypi.org/project/zhpy/ интерпретатор языка python (2015 года) с китайскими иероглифами вместо ключевых английских слов, программируй-нехочу!


  1. victor-homyakov
    08.04.2024 07:06
    +1

    Аналитик. Когда учился в универе - там была библиотека программ на Аналитике для геодезических расчётов, переводили их на что-то более современное (не помню уже, на что именно).


  1. Panzerschrek
    08.04.2024 07:06

    Относительно свежий проект немецкого языка программирования.


  1. tabfor
    08.04.2024 07:06
    +1

    В советские времена в Вильнюсе выпускалась М5000, оснащённая ассемблером с русской мнемоникой и похожим на IBM360.


  1. SergioShpadi
    08.04.2024 07:06

    Для построения нового многополярного мира просто необходима деколонизация синтаксиса языков программирования. Чтобы вместо глобалистского «Hello world!» на экран выводилось суверенное «Привет, многополярный мир!»


  1. Miaskovskij
    08.04.2024 07:06

    Нужен яп на латыни

    Потом на нем сделать аналог systemd и вуаля-можно вызывать демонов на латыни