Это то, что меня всегда интересовало, и я не могу найти ни одного упоминания об этом в Интернете. Когда магазин, скажем, из Японии, пишет код, смогу ли я прочитать его на английском? Или у таких языков, как 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" и " еще "на родном языке?
РЕДАКТИРОВАТЬ - да, это серьезно. Я не знал, имеют ли разные локализации языка разные ключевые слова. или есть ли вообще разные локализации.
источник
Ответы:
Если я хорошо понял, вопрос на самом деле таков: «Каждый ли программист в мире знает достаточно английского языка, чтобы использовать те же зарезервированные слова, что и я?»
Что ж ... Здесь не английский язык, а зарезервированные слова языка программирования. Я имею в виду, что когда я начал около 10 лет назад, я не знал английского языка, но все же мог программировать простые вещи, изучая язык программирования, даже когда я не знал, что они означают (на английском). На самом деле это помогло мне выучить английский.
Например. Я знаю, что для выполнения "итераций" (конечно же, итераций) мне пришлось написать:
Для меня «за», «;» а «++» - простые иностранные слова или символы. Позже я узнал, что «for» означало «para», а «while» означало «mientras» и т. Д., Но в то же время мне не нужно было знать английский, но в моем случае мне нужно было знать «C».
Конечно, когда мне нужно было узнать больше, мне нужно было выучить английский, потому что документация написана на этом языке.
Итак, ответ таков: нет, я не знаю, есть ли на моем родном языке и т. Д. Я вижу их на английском, но они не значили для меня ничего другого, что, в свою очередь, значили для языка программирования.
Это похоже на оператор switch в bash: case .. esac. Что такое "esac" ... для меня конец оператора switch в bash.
Я думаю, это то, что мы называем абстракцией
источник
В языке Java некоторые методы должны быть названы (по крайней мере частично) с использованием английского языка из-за соглашения JavaBeans.
Это соглашение требует, чтобы свойство X было установлено с помощью пары методов getX () и setX (). Здесь, во французской Канаде, где некоторые разработчики обязаны писать код на французском языке, это приводит к следующей пародии:
источник
У меня проблемы с поиском ссылок, но мне вспоминаются три истории.
Хакер Lisp защищает бессмысленные функции, такие как «cdr» и «car», сравнивая их с программированием на вашем неродном языке: http://people.csail.mit.edu/gregs/ll1-discuss-archive-html/msg01171. html
Когда Юкихиро Мацумото («Мац») начал разрабатывать Ruby, он использовал английские ключевые слова, хотя всю документацию писал на японском! . Пару лет не было документации по Ruby на английском языке, и очень мало американцев использовали этот язык. Но теперь это язык мирового уровня, и тот факт, что он родился в Японии, представляет только исторический интерес. Если бы язык использовал ключевые слова в хирагане, ему было бы гораздо труднее завоевать популярность.
Однажды я прочитал эссе - может быть, кто-то еще сможет его найти, Google сегодня не поможет - в котором говорилось, что перевод ключевых слов был ошибочным, потому что слова на самом деле не английские - это жаргон. Мало того, что do (используя приведенные выше примеры) para и pour не имеют точного значения, которое имеет for в английском языке, для непрограммистов фраза «for loop» является треп. Даже американцам нужно узнать новое значение. Так что перевод поверхностного значения слов на другой язык больше похоже на каламбур, чем на самом деле.
источник
Раньше я действительно не слишком много думал о программировании на японском языке, но начнем с примера кода вопроса.
Использование только языковых операторов на японском языке с переменными на английском языке:
источник
Как уже отмечали многие люди, для большинства языков программирования вам просто нужно выучить несколько ключевых слов, поэтому не имеет большого значения, на английском ли они (или на другом языке, если на то пошло). Это просто символ, который ассоциируется у вас с какой-то конструкцией. Например, в VB у вас есть «THEN», которое на многих языках C-стиля будет «{», и это не имеет большого значения в удобочитаемости (ну, по крайней мере, так я это вижу, будучи неанглийским носитель языка).
Но где вещи иногда могут быть непростыми и где выбор (естественного) языка имеет значение, так это в именовании идентификаторов. Если имена переменных, функций, классов и т. Д. Не имеют для вас значимого имени из-за языкового барьера, выполнение даже простейшего кода может быть довольно сложной задачей.
Я помню, как кто-то однажды дал мне небольшой фрагмент ActionScript, взятый из какого-то блога. Имена были на немецком языке, и, поскольку я не говорю ни слова на этом языке, материал можно было бы назвать var_123, var_562 или func_333 (и, вероятно, мне было бы легче запомнить имена или, по крайней мере, иметь шанс написать их правильно без копирования и вставки). Поскольку это был короткий автономный фрагмент, я использовал онлайн-переводчик, чтобы дать этим переменным и функциям значимые имена на моем родном языке (испанском), и после этого все стало ясно. Дело в том, что код был на самом деле простым, но я смог разобраться в нем без особых (ненужных) дополнительных усилий только тогда, когда преодолел языковой барьер.
С тех пор я перешел на использование английского языка для именования идентификаторов. Нравится вам это или нет, но это «койне» для программирования, инженерии и вообще технических вещей. Большинство API написаны на английском языке, как и большая часть документации (и, вероятно, лучшие ресурсы, которые вы можете найти, также есть на английском языке). В качестве приятного момента он сохраняет ваш код более согласованным с кодом, с которым вы, вероятно, будете взаимодействовать, и я думаю, что он имеет тенденцию быть более компактным и лаконичным, чем другие языки, такие как испанский (что в противном случае было бы моим естественным выбором).
Конечно, если вы не понимаете хотя бы часть английского, проблема остается той же, так что это не идеальное решение. Но, учитывая количество разработчиков из разных стран, велика вероятность, что общим языком для их общения (с помощью кода и, конечно, других средств) будет английский. Итак, выбор английского языка, пожалуй, лучший вариант, хотя и не идеальное решение этой проблемы.
источник
В языке программирования определены ключевые слова и стандартные имена классов, и лучше всего давать пользовательским типам, переменным и функциям также английские имена (я могу сказать, что это не родной язык ;-).
Так что да, если все в порядке, вы сможете прочитать код.
Однако такие языки, как Java и Perl, позволяют использовать полный набор Unicode для идентификаторов, поэтому, если кто-то напишет имена своих классов на кандзи, у вас, скорее всего, возникнут проблемы.
Обновление: для Perl есть модуль шутки который позволяет писать Perl на латыни. Но на самом деле это просто шутка. Никто серьезно не пользуется такими вещами.
Второе обновление: идея локализованных языков программирования не так уж и смешна. Макроязык Excel локализован, но, к счастью, он хранится в файле на одном каноническом языке (английском), поэтому локализация - это просто слой поверх обычных вещей. Такие вещи имеют смысл только для небольших «программ», для «настоящих» программ становится трудно поддерживать.
источник
На самом деле имеют некоторую Non-английский на основе языков программирования (Википедия)
Я норвежец, но всегда использовал английский для всего кода, кроме вывода (игнорируя какой-то глупый школьный код). На самом деле я обычно пишу все на английском, а потом перевожу на свой родной язык, используя gettext (или что-то еще).
источник
Я британец, и проблема, с которой мы часто сталкиваемся, - это противоречие между американским и британским правописанием. Это часто происходит с терминами, связанными с программированием, такими как Initialise () или Initialize (), Analyze () или Analyze () и т. Д. Это может (имеет) привести к проблемам при попытке переопределения методов, а иногда их трудно обнаружить.
Поскольку фреймворк (в нашем случае C #) был разработан американцами, мы обнаружили, что лучше всего быть последовательным и использовать американское написание. Мы даже применяем цвет.
В наших командах разработчиков есть представители разных национальностей, и большинство небританцев естественно склонны к американскому написанию.
источник
AppleScript когда-то был доступен на французском и японском диалектах. Не знаю, почему его отозвали.
источник
Переходя на следующий уровень, как насчет возможности замены символов?
Увидев такие языки, как Brainf ** k и Whitespace я подумал о создании такого языка: он был бы идентичен C, за исключением того, что вы используете закрывающие фигурные скобки для открытия, открывающие фигурные скобки для закрытия, меняете значения + и -, * и / ,; и:,> и <и т. д.
Концепция - не что иное, как уловка измененного компилятора C. Но, как и в случае с другими ключевыми словами, это заставляет вас переосмыслить некоторые базовые предположения, если вы никогда раньше не думали о таких вещах. Пример:
источник
Я работаю во французской команде, разрабатывающей программную систему на C #. Несмотря на то, что ключевые слова языка программирования якобы являются английскими, я полагаю, что вам будет очень трудно читать код, поскольку все имена функций, переменные, комментарии к коду, таблицы и столбцы базы данных, технические спецификации, протоколы и т. Д. Находятся в Французский, включая эти милые символы с диакритическими знаками ç, é, è, ù и т. Д. Я даже не уверен, будет ли система работать где-либо еще из-за ошибок локализации, таких как использование запятой как десятичного разделителя по умолчанию.
В остальном WinDev является популярной платформой программирования во Франции, и ее язык программирования WLanguage имеет ключевые слова на французском или английском языках, см. И пример здесь: текст ссылки
источник
Единственный язык, на котором я видел локализацию, - это Excel с его макросами. Если вы попытаетесь суммировать столбец с помощью итальянской версии Office, вам придется писать,
SOMMA(A1:A10)
а не СУММ. Это позор.Кстати, просто потому, что это весело, вот как должен выглядеть ваш код с итальянскими ключевыми словами:
источник
Я видел VBA, переведенный на испанские команды. это одна из самых уродливых вещей, которые когда-либо видели. мне было бы стыдно иметь что-то подобное на моем компьютере.
PD: Мне кажется, что испанский язык намного лучше английского; но перевод НЕПРАВИЛЬНЫЙ
источник
Что ж, как указывали другие, ключевые слова и системные вызовы, вероятно, останутся на английском языке.
Однако понимание ключевых слов языка - это лишь небольшая часть понимания кода. Имена переменных, имена функций и комментарии могут быть на родном языке автора.
Изменить : Я просто вспомнил свою молодость, когда я вошел в таблицы сопоставления моего встроенного BASIC TRS-80, чтобы переключить ключевые слова на французский. Я мог изменить все ключевые слова, но не мог увеличить ни одно из них. Сделано для забавных программ.
источник
Не смейся над этим. Несколько лет назад Microsoft анонсировала G # (немецкий Sharp) - C # с немецкими ключевыми словами и API. Конечно, это была первоапрельская шутка, но весь сайт об этом выглядел так реально и профессионально (и находился на microsoft.com). Страшно.
На работе мы используем две системы полевых шин, обе разработаны в немецкоязычных странах, в которых используется пугающая смесь немецкого и английского языков в качестве идентификаторов, включая некоторых прекрасных ложных друзей. Это беспорядок.
Нет, можно использовать ключевые слова и идентификаторы на английском языке. Хотя некоторые могут поспорить, что это должен быть Цвет или Цвет :)
источник
В нескольких проектах VBA, над которыми я работал (да, в самом начале моей карьеры), нам приходилось определять версию office, которая была установлена на машине пользователя, и соответствующим образом изменять формулы, используемые в speradsheets.
Поскольку я программирую на португальском языке, "SUM" нужно будет перевести на "SOMA" и так далее и так далее. Я просто не могу себе представить, какой работы потребуется, чтобы сделать это на нескольких языках. Кто-нибудь еще страдал с этой проблемой?
источник
На некоторых языках есть переведенные ключевые слова. Например, формулы Excel. Если вы запишите расчеты в электронной таблице, они будут на вашем языке.
К счастью, это не обычная практика, и даже не говорящие по-английски, как я, слава Богу, что есть стандартный язык для ключевых слов:
А где остановиться? Вы можете представить себе букву С на древнегреческом?
Ключевые слова должны оставаться на одном языке, ну, это началось с английского, пусть так и останется. Это могло быть хуже (азиатский язык?). И поэтому мы должны писать методы и комментарии на английском языке. Хорошо, нам еще предстоит поработать, но, по крайней мере, международная кодовая база остается согласованной.
Однако есть один случай, когда использование названий методов и комментариев на родном языке может быть хорошей практикой: в стране третьего мира. Я собираюсь через несколько месяцев в Сенегал, чтобы управлять проектом Django. У Сенегала огромный уровень аналфавитизации, и поэтому уже здорово, что они тратят энергию на улучшение своих знаний в области программирования. Французский является здесь родным языком, поэтому было бы неэффективно заставлять их одновременно изучать компьютерные технологии и новый язык.
Кстати, это будет ваш код с французскими ключевыми словами:
Не то чтобы перевод ключевых слов не имел ничего общего с переводом строк. Конечно, на нашем языке есть «привет, там». Европейские кодировщики даже склонны использовать I18N гораздо чаще, чем американские, чтобы их услуги могли охватить более широкую аудиторию.
источник
Вообще говоря, большинство программистов адаптируются к английской форме. Я научился программировать, когда мне было 7 лет, и я говорил только на иврите (справа налево) и не знал английского, что сделало это весьма увлекательным опытом.
Проблема, с которой вы обычно сталкиваетесь, связана с документацией, именами переменных и функций. Я видел свою долю переменных на других языках, использующих английский алфавит.
Единственный язык, с которым я был переведен, был старый добрый логотип (до сих пор потрясающий).
источник
Когда я был ребенком, мы ездили во Францию, и в музее, в котором мы ходили, я помню, как нашел дисплей, на котором показывали, как писать компьютерные программы. Это был своего рода БАЗОВЫЙ вариант, и я отчетливо помню, что он использовал POUR вместо FOR и так далее. Мне было 7 лет, и я только что выучил БЕЙСИК, и мне казалось совершенно естественным, что у французов будет свой диалект вроде этого !!
Наверное , я видел LSE ?
источник
Язык сценариев Filemaker локализован. Скрипты (и данные!) Хранятся в ужасном "вроде каноническом" виде.
Итак, если вы напишете сценарий в американской версии, а затем откроете его во французской версии, все ключевые слова и имена встроенных функций будут на французском языке. Но почему он не запускается ?! Ага! Во французской версии в качестве десятичной точки используется ",", поэтому во избежание двусмысленности используется ";" для разделения аргументов функций - там, где в американской версии используется "." и "," соответственно. Это преобразование вы должны сделать сами.
Итак, вы работаете через невероятно плохой интерфейс редактирования сценариев (вы не можете писать сценарии в виде текстовых файлов), чтобы исправить все эти вещи. Бежит! Большой! Все результаты неверны! о нет! Ага! Дата 7 января 2004 года, которую вы ввели в американской версии, интерпретируется как 1 июля 2004 года - очевидно, даты не только отображаются, но и сохраняются в порядке, зависящем от локали. Я шучу ? Нет.
[Примечание: Filemaker 8 и 9 может быть нормальным - я когда-либо работал только с 3-7.]
источник
Ваш вопрос является интересным в отношении Perl, потому что его синтаксис разработан с учетом (английского) естественного языка. Интересно, усложняет ли это задачу для не говорящих по-английски ...
Конечно, Perl и Perlers отказываются играть по обычным правилам. Безумный ученый Дамиан Конвей написал модуль Lingua :: Romana :: Perligata, который использует черную магию исходных фильтров, чтобы вы могли писать Perl на латыни!
источник
Здесь, в Австралии, нам все еще нужно писать цвет как цвет . Однако меня действительно раздражает, когда другие (австралийские) разработчики, работающие над австралийским проектом, решают, что имена внутренних переменных нужно писать по-американски.
источник
ИМХО было бы бессмысленно менять синтаксис языка . Это просто убило бы любую портативность.
Единственное исключение - образовательные языки, такие как LOGO. Они были разработаны для облегчения обучения, поэтому переносимость не является проблемой.
источник
Я читал много кода, но проблема всегда в именах переменных / методов и комментариях. Если они комментируют свой код на своем собственном языке, используя языковые специальные символы, такие как японский или кириллица, у нас проблемы! но ключевые слова, я думаю, останутся на английском языке как есть.
источник
на итальянском
Чтобы подтвердить опасения некоторых предыдущих постеров, я видел код Fortran с макросом, который переводит все ключевые слова с английского на французский. Разрешите мне не продолжать это.
Мне также пришлось работать с кодом, одновременно содержащим идентификаторы на итальянском, немецком, английском и французском языках, не только потому, что он был разработан во многих разных местах, но и потому, что главный разработчик считал это забавным и помог ему не дублировать имена идентификаторов ( конечно, с обычными 2000 строками ....)
источник
Я думаю, WordBasic был локализован. WordBasic использовался для написания макросов в Word до использования VBA.
Если я правильно помню, только WordBasic, написанный в английской версии, будет работать во всей локализованной версии. Если бы вы написали голландскую версию, вы могли бы выполнить ее только на голландском Word.
источник