Вопрос

Это то, что меня всегда интересовало, и я не могу найти никаких упоминаний об этом нигде в Интернете.Когда магазин, скажем, из Японии, напишет код, смогу ли я прочитать его на английском?Или у таких языков, как C, PHP, у чего угодно, есть переводы на японский, которые они пишут?

Наверное, я спрашиваю о том, достаточно ли каждый программист в мире знает английский, чтобы использовать точно такие же зарезервированные слова, как и я?

Будет ли этот код:

If (i < size){
    switch
        case 1:
            print "hi there"
        default:
            print "no, thank you"
} else {
    print "yes, thank you"
}

отобразите точно так же, как я вижу это прямо сейчас на английском, или какой-нибудь другой человек, не говорящий по-английски, увидит слова "if", "switch", "case", "default", "print" и "else" на своем родном языке?

РЕДАКТИРОВАТЬ - да, это серьезно.Я не знал, содержат ли разные локализации языка разные ключевые слова.или существуют ли вообще разные локализации.

Это было полезно?

Решение

Если я правильно понял, вопрос на самом деле таков:"неужели каждый программист в мире достаточно знает английский, чтобы использовать точно такие же зарезервированные слова, как я?"

Что ж..Английский здесь не является предметом обсуждения, но зарезервированные слова языка программирования.Я имею в виду, когда я начинал около 10 лет назад, я не имел ни малейшего представления об английском, и все же я мог программировать простые вещи, изучая язык программирования, даже когда я не знал, что они означают (на английском).На самом деле это помогло мне выучить английский.

Например.Я знаю, что для выполнения "итерации" (итерации, конечно) мне пришлось написать:

 for( i = 0 ; i < 100 ; i++ ) {}

Для меня "за", ";" и "++" - это простые иностранные слова или символы.Позже я узнаю, что "for" означало "пара", а "while" - "миентры" и т.д.но в то же время мне не нужно было знать английский, но в моем случае все, что мне было нужно, - это знать букву "С".

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

Итак, ответ таков:Нет, я не вижу, если, пока, для и т.д.на моем родном языке.Я вижу их на английском, но они не значат для меня ничего другого, что, в свою очередь, означают для языка программирования.

Это похоже на оператор switch в bash:кейс ..esac.Что такое "esac"?..для меня это конец инструкции switch в bash.

Я думаю, это то, что мы называем "абстракцией".

Другие советы

У меня возникли проблемы с поиском ссылок, но я вспомнил три истории.

Лисп-хакер защищает бессмысленные функции вроде "cdr" и "car", сравнивая их с программированием на вашем неродном языке:http://people.csail.mit.edu/gregs/ll1-discuss-archive-html/msg01171.html

Когда Юкихиро Мацумото ("Matz") начал разрабатывать Ruby, он использовал английские ключевые слова несмотря на то, что он писал всю документацию на японском!.В течение пары лет не было документации на английском языке для Ruby, и очень немногие американцы использовали этот язык.Но сейчас это язык мирового класса, и тот факт, что он родился в Японии, представляет лишь исторический интерес.Если бы язык использовал ключевые слова в хирагане, ему было бы гораздо труднее завоевать популярность.

Однажды я прочитал эссе - может быть, кто-нибудь другой сможет его найти, Google сегодня не поможет, - в котором говорилось, что перевод ключевых слов был ошибочным, потому что слова на самом деле не английские - это жаргон.Не только делать (чтобы использовать приведенные выше примеры) para и pour не совсем имеют точное значение , что для имеет в английском языке, для непрограммистов фраза "for loop" является болтовней.Даже американцам приходится усваивать новый смысл.Таким образом, перевод поверхностного значения слов на другой язык больше похож на межъязыковой каламбур, чем на то, чтобы действительно быть полезным.

В языке Java некоторые методы должны быть названы (по крайней мере частично) с использованием английского языка из-за соглашения JavaBeans.

Это соглашение требует, чтобы свойство X было установлено с помощью пары методов getX() и setX().Здесь, во франкоязычной Канаде, где некоторые разработчики обязаны писать код на французском языке, это приводит к следующей пародии:

interface Foo {

  Color getCouleur();

  void setCouleur(Color couleur);
}

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

Использование только языковых инструкций на японском языке с переменными на английском:

// In Japanese, it makes more sense to put the keywords/modifiers as
// postfix expressions rather than prefix expressions.
(i < size)か {
     (l[i])は {
     1だ:
         「もしもし。」を書く;
     省略時値:
         「いいえ、いいですよ。」を書く;
     }
} ない {
     「はい、ありがとうございます。」を書く;
}

Как уже указывали многие люди, в большинстве языков программирования вам просто нужно выучить несколько ключевых слов, поэтому не так уж важно, написаны ли они на английском (или другом языке, отличном от вашего, если уж на то пошло).Это просто символ, который вы ассоциируете с какой-то конструкцией.Например, в VB у вас есть "THEN", который на многих языках в стиле C был бы "{", и это не имеет большого значения в удобочитаемости (ну, по крайней мере, так я это вижу, будучи не носителем английского языка).

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

Я помню, кто-то однажды дал мне короткий фрагмент Actionscript, взятый из какого-то блога.Названия были на немецком, и поскольку я не говорю ни слова на этом языке, материал мог бы также называться var_123, var_562 или func_333 (и, вероятно, мне было бы легче запомнить названия или, по крайней мере, иметь шанс правильно написать их без копирования и вставки).Поскольку это был короткий, самодостаточный фрагмент, я использовал онлайн-переводчик, чтобы дать этим переменным и функциям осмысленные названия на моем родном языке (испанском), и после этого все стало ясно.Дело в том, что код был на самом деле простым, но я смог извлечь из него смысл без особых (ненужных) дополнительных усилий только тогда, когда преодолел языковой барьер.

С тех пор я перешел на использование английского языка для обозначения идентификаторов.Нравится вам это или нет, но это "койне" для программирования, инжиниринга и вообще технических вещей.Большинство API написано на английском языке, как и большая часть документации (и, вероятно, лучшие ресурсы, которые вы можете найти, также на английском).Кроме того, это делает ваш код более согласованным с кодом, с которым вы, вероятно, будете взаимодействовать, и я думаю, что он имеет тенденцию быть более компактным и лаконичным, чем другие языки, такие как испанский (который в противном случае был бы моим естественным выбором).

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

Язык программирования определяет ключевые слова и стандартные имена классов, и лучше всего давать определяемым пользователем типам, переменным и функциям также английские названия (как неродной язык, я могу сказать ;-).

Так что да, если все будет в порядке, вы сможете прочитать код.

Однако такие языки, как Java и Perl, допускают полный набор юникодов для идентификаторов, поэтому, если кто-то напишет имена своих классов кандзи, у вас, скорее всего, возникнет проблема.

Обновить:Для Perl существует модуль шуток это позволяет вам писать Perl на латинице.Но на самом деле это всего лишь шутка.Никто не использует подобные вещи всерьез.

Второе Обновление:Идея локализованных языков программирования не так уж нелепа.Макроязык Excel локализован, но, к счастью, он хранится в файле на одном каноническом языке (английском), так что локализация - это всего лишь слой поверх обычной вещи.Такие вещи имеют смысл только для небольших "программ", для "реальных" программ их становится трудно поддерживать.

На самом деле там являются некоторые Языки программирования, не основанные на английском языке (Википедия)

Я норвежец, но я всегда использовал английский для всего кода, кроме выходных данных (игнорируя какой-то глупый код из школы).Вообще-то я обычно пишу все по-английски, а потом перевести переведи это на мой родной язык, используя gettext (или что-то в этом роде).

Я британец, и проблема, с которой мы часто сталкиваемся, - это столкновение американской и британской орфографии.Это часто происходит с терминами, связанными с программированием, такими как Initialise() или Инициализировать(), Анализировать () или Analyze() и т.д.Это может (имеет) привести к проблемам при попытке переопределения методов, и иногда его трудно обнаружить.

Поскольку фреймворк (в нашем случае C #) был разработан американцами, мы обнаружили, что лучше всего быть последовательными и использовать американское написание.Мы даже перенимаем Цвет.

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

Когда-то AppleScript был доступен на французском и японском диалектах.Я не знаю, почему оно было отозвано.

Переходя к следующему уровню, как насчет возможности замены символов?

После просмотра таких языков, как Брейнфелк и Пробел Я думал о создании такого языка, как этот:это было бы идентично C, за исключением того, что вы используете закрывающие фигурные скобки для открытия, открывающие фигурные скобки для закрытия, меняете местами значения + и -, * и /, ;и :, > и <, и т.д.

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

int foo)int i, char c( }
    int six = 2 / 3:
    int two = six + 4:
    if )i > 0( }
        printf)"i is negative"(:
    {
{

Я работаю во французской команде, разрабатывающей программную систему на C #.Несмотря на то, что ключевые слова языка программирования якобы являются английскими, я полагаю, что вам было бы очень трудно прочитать код, поскольку все имена функций, переменные, комментарии к коду, таблицы и столбцы базы данных, технические спецификации, протоколы и так далее написаны по-французски, включая эти милые символы с ударением ç, é, è, ù и т.д.Я даже не уверен, будет ли система вообще работать в другом месте из-за ошибок локализации, таких как использование запятой в качестве десятичного разделителя по умолчанию.

В остальном WinDev - популярная платформа программирования во Франции, а ее язык программирования WLanguage содержит ключевые слова либо на французском, либо на английском языках, смотрите и пример здесь : текст ссылки

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

ПД:мне кажется, что испанский язык гораздо приятнее английского;но перевод - это НЕПРАВИЛЬНО

Что ж, как отмечали другие, ключевые слова и системные вызовы, скорее всего, останутся на английском.

Однако понимание ключевых слов языка - это лишь малая часть понимания кода.Имена переменных, функций и комментарии могут быть написаны на родном языке автора.

Редактировать:Я просто вспомнил свою юность, когда я зашел в таблицы сопоставления моего встроенного в TRS-80 BASIC, чтобы переключить ключевые слова на французский.Я мог бы изменить все ключевые слова, но не смог бы увеличить ни одно из них.Создан для забавных программ.

Не смейся над этим.Несколько лет назад Microsoft анонсировала G # (немецкий Sharp) - C # с немецкими ключевыми словами и API.Конечно, это была первоапрельская шутка, но весь сайт об этом выглядел таким реальным и профессиональным (и был включен microsoft.com).Пугающий.

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

Нет, с английскими ключевыми словами и идентификаторами все в порядке.Хотя некоторые могут поспорить, должен ли он быть Цветным :)

В нескольких проектах на VBA, над которыми я работал (да, в самом начале моей карьеры), нам приходилось определять версию office, которая была установлена на компьютере пользователя, и соответствующим образом изменять формулы, используемые в speradsheets.

Поскольку я программирую на португальском, "СУММА" должна быть переведена в "СОМА" и так далее, и тому подобное.Я просто не могу представить себе необходимую работу, чтобы это произошло на нескольких языках.Кто-нибудь еще сталкивался с этой проблемой?

Единственный язык Я видел локализованный is Excel с его макросами.Если вы попытаетесь суммировать столбец, используя итальянскую версию Office, вам придется написать SOMMA(A1:A10) и не СУММИРОВАТЬ.Это позор.

Кстати, просто потому, что это весело, вот как должен выглядеть ваш код с итальянскими ключевыми словами:

se (i < size){
    commuta
        caso 1:
            stampa "hi there"
        normalmente:
            stampa "no, thank you"
} altrimenti {
    stampa "yes, thank you"
}

Есть несколько языков, на которые переведены ключевые слова.Формулы Excel, например.Если вы запишете какие-то вычисления в электронную таблицу, это будет сделано на вашем языке.

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

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

И где остановиться ?Можете ли вы представить букву " С " в древнегреческом ?

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

Однако существует один случай, когда использование названий методов и комментариев на родном языке может быть хорошей практикой :в стране третьего мира.Через несколько месяцев я собираюсь в Сенегал, чтобы управлять проектом Django.В Сенегале высокий уровень аналфабетизации, и поэтому уже здорово, что они вкладывают энергию в совершенствование своих знаний в области программирования.Французский здесь является родным языком, поэтому было бы неэффективно заставлять их изучать компьютерные технологии И новый язык одновременно.

Кстати, это был бы ваш код с французскими ключевыми словами :

Si (i < taille) {
    cas par cas :
        cas 1:
            afficher "salut"
        défaut:
            afficher "non merci"
} sinon {
    afficher "oui, merci"
}

Не то чтобы перевод ключевых слов не имел ничего общего с переводом строк.Конечно, у нас есть "привет", переведенное на наш язык.Европейские программисты даже склонны использовать I18N гораздо чаще, чем американские, чтобы их сервис мог охватить более широкую аудиторию.

Вообще говоря, большинство программистов адаптируются к английской форме.Я научился программировать, когда мне было 7 лет, и говорил только на иврите (который пишется справа налево) и без английского, что делало это занятие довольно увлекательным.

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

Единственный знакомый мне язык, который действительно был переведен, - это старый добрый Логотип (все еще удивительный по сей день).

Когда я был ребенком, мы ездили во Францию, и в музее, который мы посетили, я помню, нашел экспозицию, на которой было показано, как писать компьютерные программы.Язык был каким-то БАЗОВЫМ вариантом, и я отчетливо помню, что в нем использовалось POUR вместо FOR и так далее.Мне было 7 лет, и я только что выучил БАЗОВЫЙ язык, и мне казалось совершенно естественным, что у французов есть свой собственный диалект, подобный этому!!

Я предполагаю, что это могло быть LSE что я видел?

Скриптовый язык Filemaker локализован.Скрипты (и данные!) хранятся в ужасной "своего рода канонической" форме.

Итак, если вы напишете скрипт в американской версии, а затем откроете его во французской версии, все ключевые слова и названия встроенных функций будут на французском.Но почему он не запускается?!Ага!Французская версия использует "," в качестве десятичной точки и, следовательно, во избежание двусмысленности использует ";" для разделения аргументов функции - там, где американская версия использует "." и "," соответственно.Это преобразование вы должны сделать сами.

Итак, вы работаете через невероятно плохой интерфейс редактирования сценариев (вы не можете писать сценарии в виде текстовых файлов), чтобы исправить все эти вещи.Он бежит!Отлично!Все результаты неверны!О нет!Ага!Дата 7 января 2004 года, введенная вами в американской версии, интерпретируется как 1 июля 2004 года - очевидно, даты не только отображаются, но сохраненный в порядке, зависящем от локали. Я что, шучу?Нет.

[Примечание:Filemaker 8 и 9 могут быть вменяемыми - я когда-либо работал только с 3-7.]

Ваш вопрос интересен в отношении Perl, потому что его синтаксис разработан так, чтобы соответствовать (английскому) естественному языку.Интересно, не усложняет ли это задачу для не говорящих по-английски?..

Конечно, Perl и Perlers отказываются играть по общепринятым правилам.Безумный ученый Дэмиан Конвей написал Лингва::Романа::Перлигата модуль, который использует черную магию фильтров исходного кода, чтобы позволить вам писать Perl на латинице!

Здесь, в Австралии, нам все еще нужно произносить по буквам цвет Нравится Цвет.Однако меня раздражает, когда другие (австралийские) разработчики, работающие над австралийским проектом, решают, что имена внутренних переменных должны писаться по-американски.

Имхо, было бы бессмысленно использовать какой-либо язык синтаксис.Это просто убило бы любую мобильность.

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

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

по - итальянски

se (i < dimensione){
    scegli
        caso 1:
            stampa "ciao"
        mancante:
            stampa "no, grazie"
} altrimenti {
    stampa "sì, grazie"
}

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

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

Я думаю, WordBasic был локализован.WordBasic использовался для записи макросов for в Word до использования VBA.

Если я правильно помню, только WordBasic, написанный в английской версии, будет выполняться во всех локализованных версиях.Если бы вы написали голландскую версию, вы могли бы выполнить ее только на голландском Word.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top