Недавно мимо меня пролетела новость о том, что кто-то сделал русскоязычную версию ЯваСкрипта для учебных целей. Никакой особой реакции это не вызвало.
Да, мой ник "Muxa" возник тогда, когда нельзя было называть папку кириллическим именем "Михаил". Да, моя команда червяков носила имена MAHbKA, CAHbKA , TAHbKA, BAHbKA и т. д. Да, я до сих пор стараюсь выкладывать в веб только файлы имеющие в названии [a-z0-9._-] - что бы не было проблем с кодировками. Но если вы спросите меня, что из всего этого надо делать вам, то я скажу только про имена файлов, а в остальном не вижу для вас никаких причин не использовать кириллицу. Более того, кириллица давно и прочно обосновалась в именах функций.
Не верите? Щас покажу. Тыц на ссылку.

0. Роль английского языка в программировании
Единственная значимая роль английского языка в программировании не имеет никакого отношения к английскому языку.
Дело в том, что многие принимают за английский язык ограниченное количество слов используемое в качестве имён функций: if. else, while, for. Но это не английские слова, знание которых позволит вам программировать — это условные обозначения имеющие написание, напоминающее некоторые английские слова.
Полагаю, не надо говорить о том, что в английском языке нет слова var, которым часто объявляют переменные, а есть variable. Это самое var, всего лишь созвучие, отсылающее к variable.
Знание перевода «if» как «если» , а «while» как «пока» не несёт информации о синтаксисе конкретного языка программирования.
Умение сопоставить остатки англоязычных слов в имени функции не даёт понимания того, какие переменные и в каком порядке она принимает и что даёт на выход, а знание назначения функции не позволяет сказать как именно оно пишется в конкретном языке программирования.
Англоязычные имена функций и переменных это всего лишь мнемотехника, упрощающая процесс придумывания уникальных названий функций и позволяющая англоговорящему программисту легче запоминать имена функций через ассоциации со словами в известном ему языке. Это позволяет ему смотреть на листинг программы и замечать, что вместо log() стоит read(), но не позволит отличить логарифм от записи в лог. Потому что понимание кода программы, это не чтение текста на английском языке, а узнавание заранее заученных спецслов.
Реальная же роль английского языка состоит не в самом английском языке, а в его алфавите, целиком помещённом в первую половину ASCII таблицы. Ту самую первую половину, которая, исходя из технических традиций современной техники, отвалится в последний момент. Языки помещённый в юникод могут не поддерживаться, сменные кодировки второй половины ASCII таблицы могут перепутаться, но компьютер сможет продолжить работу. А вот если в системе поломаются символы с 0 по 127, то дело совсем плохо.
То есть, использование «латиницы» (а не английского языка) обеспечивает переносимость и однозначность считываемости файла с кодом программы на разных исправных компьютерах. Иначе может приключится бНОПНЯ и прочие кракозябры, что не позволит интерпретатору или компилятору опознать где какая функция и выполнить программу.
Ну, да, есть ещё одна проблема — если использовать юникод и писать кириллические версии функций и имён переменных, то это несколько увеличит размер файлов с исходным кодом программы. Скажем прямо, по нынешним временам, это не такая уж большая проблема.
1. Кириллица в именах функций
Так где же обещанная кириллица, которая уже есть в именах функций?
Щас будет. Но это именно кирилилца, а не русский язык. Точно так же как латиница, а не английский язык.
И, нет, конечно же, речь не про 1С и не про языки программирования упомянутые @bolk в обсуждении этой новости.
Всё гораздо веселее.
Вот список функций русифицированных в ГуглДоках
Вот функции в LibreOffice
Excel у меня нет, но вот список с веб-сайта Майкрософта
1.1 Update 2025-11-07 02-53
По многочисленным просьбам в комментариях, добавлю ещё один пример, который по числу пользующихся может перекрыть всех пользователей высокоуровневых языков программирования.

Каждая языковая версия Википедии и прочих Википроектов имеет шаблоны на этих языках.
Да, это не программирование (если не лезть совсем глубоко в функции парсера), но это интерпретируемый код со спецсловами. В контексте обсуждения "программирование на русском языке", это то же самое что ЕСЛИ вместо IF.
***
Да, кириллические функции давно и прочно обосновалась во многие продуктах.
Просто варясь в узкой социальной группе людей выучивших спецслова из популярных языков программирования, не все это заметили.
---
Михаил Елисейкин
2025-11-07
Комментарии (46)

aamonster
06.11.2025 22:51Но это же ужасно. Каждый раз, пользуясь экселем, я вынужден думать, как они переименовали стандартные функции.

muxa_ru Автор
06.11.2025 22:51По мне так вообще капец, но это реальность, в которой мы уже давно живём. Причём, реальность и закономерная и неизбежная.
Полагаю, что есть люди, которые кириллическими функциями в локализованных версиях пользуются гораздо эффективнее чем я в нелокализованной.

dzmitry_li
06.11.2025 22:51Какое счастье, что LibreOffice позволяет выключить локализацию имён функций.
Интернет подсказывает, что Excel тоже это позволяет. Правда упоминается только версия 2025 года. Жаль проверить не могу - вынуждено пользуюсь более старой версией Excel, английской версией (но засада осталась - чч.ММ.ГГГГ всё равно по-русски - и это в англоязычной Windows, но русской локалью)

bighorik
06.11.2025 22:51Да, кириллические функции давно и прочно обосновалась во многие продуктах.
В каких многих? Вы ж в качестве примера привели электронные таблицы, которые друг друга чуть больше чем полностью копируют.

muxa_ru Автор
06.11.2025 22:51Например, ещё есть поиск по Windows, по сути это кириллические параметры в функции поиска

Вы ж в качестве примера привели электронные таблицы, которые друг друга чуть больше чем полностью копируют.
А можно так же сказать про высокоуровневые языки программирования? Они же тоже все на одно лицо.

aikuaiven
06.11.2025 22:51Я прошу прощения, но какое отношение формулы Excel имеют программированию? Или это только вступление к статье?

muxa_ru Автор
06.11.2025 22:51Если посмотреть обсуждения темы "программирование на русском языке", то видно, что речь там идёт об использовании набранных руками спецслов (ИМЁН переменных и функций на русском языке) на русском языке. О том, например, чтобы писать сум() , а не sum()

kryvichh
06.11.2025 22:51В русском Excel -- не сум(), а сумм(). Хорошо хоть в белорусской локализации они оставили функции без перевода, и параметры разделяются "," а не ";".

Kreatifchk
06.11.2025 22:51В java можно поля русскими названиями именовать.

ermouth
06.11.2025 22:51А ещё в JS, C#, Python, Swift, PHP и пр, и не только кириллицей. Иногда для читаемости удобнее переменную назвать, например,
Δφ, а не delta_phi.

sergio_nsk
06.11.2025 22:51Да, наверно, везде можно. C++, например
void привет_мир(); int main() { привет_мир(); }Автор вышел из 20-летней комы.

dyadyaSerezha
06.11.2025 22:51Не говоря очевидного, что приведенные примеры это лишь некое подобие программирования, а точнее, всего лишь автоматизация в продуктах, расчитанных для массового использования непрограммистами, спрошу главное: не раскрыта тема команды червяков. Что вы с ними делали? Откапывали и складывали в баночку из-под леденцов с землёй перед рыбалкой? Или где? Очень за них волнуюсь.

muxa_ru Автор
06.11.2025 22:51не раскрыта тема команды червяков. Что вы с ними делали? Откапывали и складывали в баночку из-под леденцов с землёй перед рыбалкой? Или где? Очень за них волнуюсь.
Я делал с ними то же самое, что делали все остальные адекватные и психически здоровые люди - заставлял воевать с другими червяками.

dyadyaSerezha
06.11.2025 22:51Странно, никогда о таком не слышал (возможно, я психически нездоровый или вообще маньяк?). Но тогда возникают другие вопросы. Сколько из них откосили от ЧВК и ЧВО (Червивая...)? Сколько дожили до пенсии? Как там их детки, выбрали гражданскую жизнь или пошли по стопам отцов? Поддерживаете ли вы с ними связь? Как вообще настроения в червивом обществе?

Tiriet
06.11.2025 22:51Это была очень популярная даже в некотором роде многопользовательская компьютерная игра конца 90х-начала2000х годов. По популярности уступала, пожалуй, только саперу и батлсити.

Tiriet
06.11.2025 22:51Я вас умоляю. Си был придуман как третья итерация языка для некоего подобия программирования для всего лишь автоматизации для массового использования не программистами. Настоящее программирование должно быть в машинных кодах, причем- сразу в числовых, без этих вот удобных мнемонических сокращений типа mulpd и ld.

dyadyaSerezha
06.11.2025 22:51Не надо воды про итерации, рекурсии и прочие динамические функции. Что же до машинных кодов, про них я написал то же самое с полгода назад.

KonstantinTokar
06.11.2025 22:51Так статья то о чём? О том что в таблицах можно СУММ писать? Кто то этого не замечал?

randomsimplenumber
06.11.2025 22:51А потом тебе в руки попадает таблица с непривычными функциями. И ты такой: 'упсь, я не умею в ексель..'

T700
06.11.2025 22:51Язык математики, понятен во всем мире. Люди могут не знать языка, но язык математики ясен всем кто знает. Также с языками программирования. На английском, всем понятно.

DumpManager
06.11.2025 22:51Англиский в синтаксисе - это де-факто стандарт. Пытаться придумывать велосипеды глупо(например в python можно использовать кириллицу в названиях, можно его пересобрать, заменив if на если и т.д., но 1. Программист из страны N ничего не поймет 2. 99.9% либ написаны именно на английском, так что все равно придётся использовать богомерзкий язык гниющего запада)

HardWrMan
06.11.2025 22:51Программирование на русском давно уже изобретено и уже лет 20 точно как обширно применяется в РФ и даже за её пределами. Как можно было забыть это упомянуть?



iamkisly
06.11.2025 22:51А ведь как-то так видят код программы англоязычные.. и им норм

Gromilo
06.11.2025 22:51Всю жизнь смеялся над 1с, а потом понадобилось прочитать некоторое количество функций для портирования. И знаете что? У меня не возникло вообще никаких сложностей со чтением кода, всё понятно. И тут я уверовал, что родной язык реально снижает порог входа в программированием.
И никаких проблем с корявым переводом терминов на английский и двойным переводом (когда термин перевели на английский, а потом перевели обратно немного по другому). Правда есть проблемы с переводом терминов на русский, звучит непривычно.

HardWrMan
06.11.2025 22:51Он не всегда таким был. Зумеры его знают только на русском, а я помню ангельский. Вплоть до v7.6 он был только на ангельском, v7.7 позволяла уже в русский и даже миксовать языки в одном документе. А вот v8.x+ уже вроде чисто русская была. И как я тогда (22+ года назад) понял, перевод VB от MS был санкционирован самой MS, тогда сама MS распространяла кассовый АРМ от 1С в других странах. Хотя, быть может это всё плод больных фантазий деда, который забыл выпить таблетки...

aimoroz
06.11.2025 22:51Я вот тоже предпочитаю, чтобы математические формулы и код писались латиницей. Так гораздо легче их отличить от обычного текста.

The_Answer
06.11.2025 22:51Попробуйте поработать в проэктах которые тянут зависимости из 7+ языков чтоб хоть как то покрыть логику. А теперь то же самое но каждый язык использует локальный синтаксис, почему бы и нет.

olku
06.11.2025 22:51Немецкий Camel Case более выразителен - RindFleischEtikettierungsUeberwachungsAufgabenUebertragungsGesetz

Einherjar
06.11.2025 22:51Единственная значимая роль английского языка в программировании не имеет никакого отношения к английскому языку.
а в остальном не вижу для вас никаких причин не использовать кириллицу
Пока ваш проект пишете только вы причин может и нет, а если он разрабатывается международной командой или вообще опенсорс, то кириллица там мягко скажем сильно мешать будет, ее не то что не поймут, даже подредактировать не смогут потому что раскладки нет.
Английский это де-факто стандарт международного общения, он понятен и русскому и индийцу и китайцу. Плюс в нем довольно короткие слова, в отличие от того же русского где придется либо все сокращать либо писать портянки текста размером с "войну и мир" как в примерах выше, в обоих случаях страдает читаемость.
Используя любой другой язык создаются искуственные ограничения на ровном месте.
Какая то странная тенденция сейчас превращать незнание языка и нежелание его учить в повод для гордости.

randomsimplenumber
06.11.2025 22:51Какая то странная тенденция сейчас превращать незнание языка и нежелание его учить в повод для гордости.
Твой позорный недуг мы в подвиг определим (ц)

blik13
06.11.2025 22:51Но это не английские слова, знание которых позволит вам программировать — это условные обозначения имеющие написание, напоминающее некоторые английские слова.
Да, по сути нет никакой разницы будут там английские слова, русские или китайские иероглифы. Это просто условный знак, за которым уже стоит какая-то логика. Код можно писать как угодно. Но только пока вам не нужно договариваться с другими об этих самых условных знаках. И вот как только договариваться нужно, то становится крайне важным иметь стандартизированные условные знаки чтобы каждый смотрящий в код видел одно и то же и понимал код одинаково.
С тем же джава скриптом на русском: ну вот учил студент это добро, тратил время, пришел потом на работу и надо учить заново. Конечно, там не так много нужно будет переучиваться, но нужно будет. Так а зачем тогда впустую было тратить время в ВУЗе? Что бы очередной дОцент написал пару "научных" статей по педагогике и получил акт внедрения в учебный процесс? Кому-то было скучно жить, а куча народу просто потеряла время.

randomsimplenumber
06.11.2025 22:51Что бы очередной дОцент написал пару "научных" статей по педагогике и получил акт внедрения в учебный процесс?
Результат ничто, процесс все. А если повезет, можно и грант какой то откусить.

ruomserg
06.11.2025 22:51Резко против:
Английский язык для коротких идентификаторов гораздо удобнее. Длина употребительных слов меньше, нет меняющихся окончаний по падежам и родам. На русском языке получается, или длинно (см пример 1С), или вырвиглаз - читать противно.
Международные команды! Английский - стандарт де-факто в ИТ. Вы можете не понимать индуса с его прононсом, или француза - но логику программы на С/Java вы восстановите, если они используют английские идентификаторы.
Выход за базовый набор ASCII. С развитием Unicode это вроде как меньшее из зол - однако, кто знает когда и на каком устройстве с какими шрифтами придется читать текст...

aimoroz
06.11.2025 22:51Но не все слова из предметной области имеют перевод, и еще меньшее количество - однозначный перевод. Соответственно и идентификаторы при этом превращаются в аналог "varXXX".


MountainGoat
У вас статья не опубликовалась – только вступление.
muxa_ru Автор
В анонимной вкладке я вижу всё, вплоть до подписи.