Тем немногим, кто не причастен никаким боком к программированию, и упоминание оного в названии может отвратить от дальнейшего чтения, обещаю, что ничего занудно-специального, во что нужно вникать в тексте нет, но зато прямо сейчас есть повод зачесть небольшую статью, убирающую неприятие к этому слову: fornit.ru/1156
Однополярность мира возникает, когда одна из геополитик оказывается в монопольном положении по отношению к другим геополитикам, и тогда монополист начинает делать все под себя и свои интересы, и ему просто невыгодно и некогда отвлекаться на интересы других.
Пресловутая однополярность США проистекает из многих компонентов, не только из особой роли доллара. Например, геополитическое использование английского языка – как наиболее общепринятого в международных отношениях.
Престиж университетов в США во многом определил особую роль в использовании английского языка, как это раньше было в отношении латинского языка из-за огромной территории и влияния древнего Рима. И эта роль утверждена Генеральной Ассамблеей ООН, Союзом Безопасности Европы, ЮНЕСКО, НАТО, Европейским Союзом и организацией стран-экспортеров нефти (ОПЕК), определивших английский – как основной язык ведения переговоров.
И вот, ученые просто должны знать английский – как основу научной не только международной научной коммуникации.
И вот, программисты просто должны знать английский, иначе их будут третировать тимлиды или даже они не пройдут собеседование, где любая училка английского будет выглядеть более достойной в глазах менеджера по персоналу, ничего не понимающего в программировании.
Вот самые очевидные примеры языковой дискриминации.
Латиноговорящим странам не нужно переключать раскладку клавиатуры, она у них только одна, без забот о всех вторичных по отношению к английскому языку нациях.
Введение юникода (универсальный кодовый стандарт, учитывающий все языки) для программирования вылилась в то, что латиноговорящие используют все тот же трафик 1 байт на символ, а остальные – 2 байта, т.е. громоздкость их текстов в интернете - в два раза больше. И заботы на поддержание этого уникода латиноговорящим не очень нужны (про толерантность и дискриминацию молчат).
Это провело к тому, что в таком распространенном языке для веб-приложений как PHP, старые добрые функции обработки строк не позволено было трогать всяким вторичным по языку участникам сообщества PHP, и те сделали свои дублирующие функции, хотя поддержку уникода можно было реализовать и на имеющихся. Англичанам эти функции вообще не нужны, как и раскладки в клавиатуре, а вот всему остальному миру без них не обойтись.
Функции поддержки старой доброй кириллицы настолько запущены, что тем, у кого сайты были написаны в старые добрые времена разных кодировок, возникает множество проблем, которые решаются не системно, а как у кого получится, без комфортного информирования в мануалах (например, изуверская практика в AJAX передаче данных, ах да, пользуйтесь неуклюжим jQuery, который все больше оттесняется новомодными фреймворками :). Это настолько печально, что я считаю, что разные языковые кодировки были выполнены лучше, надежнее и эффективнее, чем то, что получилось в результате внедрения уникода. И они не делали из текста в два раза большего кракозябристого монстра.
Нетолерантный синтаксис в языках программирования разрешает использование только английских символов, что ничем не оправдано (почему бы американцам не начать вставать на колено перед другими народами на стадионах еще и по поводу языковой дискриминации??). Попытка протеста со стороны разработчиков языка создания бухгалтерских программ 1С был осмеян вандалами во множестве статей, живописующих “отвратительные” переменные и функции на кириллице, хотя они, в принципе, ничем не более отвратительны названий на английском. Кстати, еще лояльными к русскому являются языки программирования Робик и Рапира. И не только: строгий до чопорности, современный язык Го (golang) позволяет имена переменных писать на русском и нормально компилирует программу. Но живое существо на этом языке я написал (fornit.ru/bot2) на всякий случай исключительно латиницей, правда с очень пространными комментариями на русском.
В едином языке для использования символов есть резон, но неминуемо встает вопрос о выборе всеобщего языка разработки, а это – путь к поддержанию геополитической монополии, как это есть в случае доллара, что порождает дискриминационные преимущества и монопольное влияние.
Но потребность в общем средстве языковой коммуникации без изначальных преимуществ какого-то языка, в частности в программировании, нарастает.
И такая потребность породила уже немало перспективных решений. Не на пустом месте, конечно. Так, “визуальные языки” программирования используют графические представлениях функций и их параметров. А подписи и комментарии там могут быть на любом любимом для программиста языке.
Сегодня это направление развилось в новое качество в реализации сред разработки. таких как Shader nodes и geometry nodes в Блендере, а в области разработки игр – Blueprint в Unreal Engine.
Рабочая область среды разработки в Blueprint выглядит вот как:
Это прямо не решает вопрос работы со строками на разных языках, но уже делает саму среду программирования адаптивной к носителю любого языка.
Проблема естественного (родного для пользователя) языка на компьютере называется NLP (да, аббревиатура – ихняя, от англ. Natural language processing :) и это направление развивается, приближая закат однополярности в использовании языка и преодоления языковой дискриминации.