Существуют ли какие-либо языки программирования, доступные и расширяемые более чем на одном естественном языке?
Например, английская версия с do..while
циклом, испанская версия с hacer..mientas
циклом, французская версия с a faire..pendant
и голландская версия с doe..terwijl
.
Единственный «язык программирования», о котором я могу думать, такого рода реализует, это Microsoft VBA.
Дополнительный вопрос: почему так мало языков программирования, которые бывают на нескольких языках?
multilingual
Мартейн Бургер
источник
источник
That's a reason why the languages are in English, not why there are no other languages, for example no "Java Indonesian" or "C++ Swahili"
- Потому что ваша индонезийская программа на Java поддерживается только индонезийскими программистами.String for;
в Java, так как это будет экспортированный символ в классе. И это было бы то, что я не мог бы назвать полеdoe
также, потому что это в голландской версии и наличиеpublic class Deer { String buck; String doe; }
не было быdoe
поле было доступно. Все ключевые слова являются зарезервированными словами в Java. Плохие вещи могут случиться с полями, которые конфликтуют с ключевыми словами в других языках.Ответы:
Имена функций в формулах Excel локализованы, где вы можете использовать либо английскую формулировку, либо местный эквивалент.
Это привело к бесчисленным случаям разрушения электронных таблиц при перемещении по регионам и языкам пользователей. Это также затрудняет поиск информации о функциональности, поскольку локальная документация локализована и не содержит английских названий вещей, и наоборот, запрос SO с вашими локальными именами для большинства читателей по сути не имеет смысла.
Ключевые слова следует рассматривать как непрозрачные прозвища, которые как бы совпадают со значением английских слов, используемых для их написания. Есть много не говорящих по-английски программистов, которые не знают, что означает половина их ключевых слов.
источник
В прошлом веке, особенно в 1960–1970-х годах, они были языками программирования не на английском языке. Во Франции у нас были PAF & LSE с французскими ключевыми словами. Вторая мировая война в Германии была Plankalküll К. Цузе. В Советском Союзе А. Ершов разработал несколько языков (например, рапира ) с русскими ключевыми словами. IIRC PAF (разработанный и реализованный моим покойным отцом, когда я был ребенком - в начале 1960-х годов) также можно было продавать по ключевым словам с английским (или русским, или немецким) языком. А в некоторых языках, например в APL , вообще не было ключевых слов. Другие языки ( PL / I ) не зарезервированыключевые слова. И вы можете переопределить ключевые слова с помощью методов препроцессора (например, сегодня, в C,
#define si if
и#define sinon else
для французских студентов ....; подобные трюки на основе макросов возможны в PL / I или даже в Common Lisp).Но ЭТОбыл в основном разработан в англоязычной стране (США). Таким образом, языки программирования и их реализации имели английскую спецификацию и документацию и английские ключевые слова. Следовательно, каждый разработчик должен иметь возможность читать технический английский, и нет никакой пользы для «локализации» языка программирования (и даже, делая это, усложняет использование другого программного обеспечения, как было сказано в другом месте). Текущее техническое и экономическое доминирование англоязычных стран требует, чтобы все инженеры сегодня читали английский (я уверен, что даже северокорейские, китайские или иранские инженеры-программисты могут читать документацию на английском языке и читать код с английскими ключевыми словами и идентификаторами) , Таким образом, больше нет достаточной добавленной стоимости, чтобы «локализовать» язык программирования (кроме, возможно, для обучения элементарному программированию старшеклассников).
Кроме того, в английском есть много коротких ключевых слов (сравните
sinon
по-французски сelse
английским илиmettre
по-французски сput
английским), поэтому есть небольшое преимущество в использовании ключевых слов на английском ....Возможно, через столетие Китай может стать доминирующей ИТ-страной, и некоторые китайские языки программирования могут процветать. Мы не знаем, что будет потом ....
PS. Доминирование английского языка не является специфическим для ИТ. Даже если Великобритания выйдет из Европейского союза ( сценарий Brexit) , де-факто официальным языком ЕС останется английский (который не будет языком каких-либо стран-членов ЕС), а проекты H2020 ICT будут написаны на английском языке.
источник
Есть очень веские причины, по которым профессиональные языки программирования не переводятся.
1) Усилие: было бы огромной задачей перевести современный язык. Возьмите Java - было бы небольшой задачей перевести 50 или около того ключевых слов, но вам также нужно будет перевести полную стандартную библиотеку, которая состоит из тысяч классов и методов и соответствующей документации.
2) Совместимость: даже если базовый язык и библиотека стандартов были переведены, вы все равно не сможете использовать сторонние библиотеки и код, который не был переведен. Сторонние библиотеки и код - основная часть того, что делает язык привлекательным и полезным. С переведенными версиями каждый язык должен был бы начать экосистему для каждого перевода с нуля. Всем будет хуже.
3) Программисты все равно должны знать английский. Многие стандарты, такие как HTTP, CSS, HTML, все равно используют английский язык для идентификаторов. Они не могут быть переведены, так как слова включены в стандарт.
Так как программистам все равно нужно знать английский, у них будут только недостатки и нет преимуществ при создании переведенных версий языков программирования.
Тем не менее, для языков, предназначенных для случайных программистов, в отличие от профессиональных программистов, может иметь смысл создавать переведенные версии. Это касается VBA, и я считаю, что AppleScript также существовал в переведенных версиях.
источник
Я не знаю ни одного другого языка, кроме, возможно, какой-нибудь действительно старой эзотерической версии BASIC, которая имела множество странных предпочтений, поэтому я остановлюсь на дополнительном вопросе: почему так мало переведенных языков программирования:
Я считаю, что это просто дополнительная сложность, в которой разработчики компиляторов и библиотек не видят особой необходимости. Вот несколько причин, которые способствуют на мой взгляд.
Лично мне бы понравилось, если бы мы могли работать с кодом более структурированным образом, в редакторе, который фактически понимал код как то, что он есть, операторы, инструкции и т. Д., Что позволило бы нам делать много интересных вещей. Возможно, даже поддержите автоматический перевод. Для тех, кто интересуется тем, о чем я болтаю, посмотрите на имидж браузера Smalltalk и рефакторинг и представьте, каким он может стать, если он получит больше тяги.
источник
Если у вас есть язык, который определяется в терминах «символических тегов» на одном уровне и «обозначений поверхностных тегов» на другом, с четко определенными отображениями между ними, это, безусловно, будет возможно.
Представьте себе язык , где у вас есть свой
if
,while
...do
,switch
и все другие ключевые слова , определенные ( так или иначе) в стандарте, вы можете отправить системные библиотеки в «токенизированном формате», с локальным кодом , написанным в не токенизированной форме. Тогда фактический компилятор работает на токенизированном слое и, возможно, все будет хорошо.Однако это еще не все. Вы все равно окажетесь в ситуациях, когда у вас есть библиотеки, полученные откуда-то, что не является «стандартной библиотекой», с именами функций. И у них не будет канонического отображения между языками, и потребуется либо перевод на местный язык для удобного использования, либо вы получите путаницу языков в исходном коде.
источник
Все приведенные ответы - отличные ответы, но я все равно дам свои два цента.
В начале вычислений техническое, культурное и экономическое доминирование США и Великобритании сделало логичным только то, что самые успешные языки были созданы с использованием английских слов.
Позже, когда программное обеспечение стало индустрией , оно также стало глобальным начинанием. Ни для кого не секрет, что программистов меньше, чем нужно, поэтому компании-разработчики программного обеспечения и специально определяющие отрасли компании, такие как IBM, начали нанимать программистов из всех частей света: России, Пакистана, Индии, Франции, Германии, Израиля и т. Д. в основном для программирования на уже существующих глобально успешных языках, которые уже были основаны на английском языке, а также создавались новые языки, и для этого разрозненного источника программистов уже существующий общий язык был лучше, чем любой другой язык.
Совсем недавно движение за открытый исходный код и свободное программное обеспечение сделало создание программного обеспечения еще более глобальным, чем раньше. Некоторые проекты открытого программного обеспечения, в том числе некоторые программные платформы, языки и платформы, являются огромными проектами, в которых участвуют сотни сотрудников.
На каком языке человек из Израиля будет сотрудничать с человеком из Шри-Ланки? Скорее всего, они не говорят и даже не читают родной язык друг друга. Так что английский приходит на помощь.
Нравится вам это или нет, но английский - это язык глобальных усилий . И не потому, что Америка толкает это, а потому, что мир тянет это.
Перефразируя Джея Уокера :
Смотрите видео "Английская мания" .
Нижняя граница:
Языки программирования, использующие разные языки, будут продолжать существовать и будут изобретаться (например, Scratch на основе графических маркеров), но, по крайней мере, в обозримом будущем их будет сравнительно немного.
источник
Английский также является языком «без акцента», и у вас нет странного символа, который нуждается в кодировке, отличной от ASCII. Я итальянец, и иногда я сталкиваюсь с ошибками кодирования, если я использую итальянскую раскладку клавиатуры или акцентированные символы, такие как àèéìòù. Более того, «else» переводится как «altrimenti», «in» - это «dentro» ... это было бы неприятно.
источник