Что такое программирование на японском языке? [закрыто]

28

Код написан на японском языке? Имена файлов на английском? Как насчет препроцессора C? Это все еще на английском? Есть комментарии на японском?

Примеры тоже подойдут.

Zeno
источник
7
Так же, как программирование на испанском / португальском / чем угодно, код всегда должен быть написан на английском языке.
1
@ M28 Немного по-другому, когда приходится использовать иностранный алфавит. Попробуйте написать простое приложение "Привет, мир", используя греческий алфавит для всех ключевых слов.
biziclop
3
@ M28: просто из любопытства: есть ли языки программирования, которые были разработаны для символов вне латинского алфавита? И если компиляторы допускают кодировки, отличные от ASCII, я предполагаю, что даже Java может быть написана со всеми символами на японском языке, кроме ключевых слов языка ...
FrustratedWithFormsDesigner
2
@Frustrated: [Пробелы] ( en.wikipedia.org/wiki/Whitespace_(programming_language) приходит на ум.
Джош К
3
@ Разочарованный: Википедия знает все.

Ответы:

21

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

Что касается некоторого ужасного кода, который я видел, я помню, как видел Java и (я полагаю) код VB, который фактически использовал кандзи или катакану для имен переменных.

Кроме того, код выглядит следующим образом

/**
 * これはクラスのコメント
 */
public class FooClass implements Fooable {

    /**
     * オブジェクトのインスタンスを作成する
     */
    public FooClass() {

    }

    ...
}

Что касается препроцессора C, я понятия не имею.

Илия
источник
Препроцессор может быть использован для перевода языковых ключевых слов на другие языки.
FrustratedWithFormsDesigner
4
Так является ли "Foo" настоящим английским словом, таким как "BankClass", или оно латинизировано?
Зено
2
Мол, они позвонят FooClass BankClassили GinkouKurasu?
Panzercrisis
1
Я знаю, но в реальном мире они были бы более склонны использовать Bankили Ginkou?
Panzercrisis
3
@Panzercrisis, это зависит от прихотей и политики разработчика или команды. Как я уже упоминал в своем ответе, код моей жены имеет тенденцию использовать английские слова в объявлениях, но она могла бы использовать слова иначе, чем я обычно их интерпретировал бы. Я не думаю, что есть какой-то шаблон, который доминирует. Но я бы поспорил, что разработчик, который знаком только с японским словом для концепции, будет использовать это, а не прибегать к словарю.
JasonTrue
9

На практике большинство языков программирования, которые активно используются за пределами США, используют ключевые слова, которые похожи на английский, но важно понимать, что по большей части те из нас, кто пишет код как носители английского языка, на самом деле не пишут также на «английском». ,

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

Кроме того, некоторые старые реализации языков, которые переводят код в токены (не истинная компиляция), могут выплевывать тот же код в редакторе, используя, скажем, немецкий эквивалент; Мой первый опыт работы с VBA в Microsoft Office был таким, когда я учился в Германии.

Многие английские языки программирования, включая C #, Java и другие, теперь разрешают имена переменных и имена методов на японском языке, если исходный код кодируется в UTF-8 или другой подходящей кодировке. Однако нередко было даже комментировать на японском языке в Си, если только вы не использовали компилятор, поддерживающий Shift-JIS или Unicode. Строковые литералы в C почти всегда экранировались с использованием метода литерального кодирования, если только у вас не было формата внешнего ресурса для работы, как в Visual Studio.

На практике многие программы, написанные японскими командами, которые не ожидают обслуживания за пределами Японии, пишутся с комментариями или javadoc / docstrings / etc. на японском. Моя жена обычно пишет код с японским языком, используя термины, которые не обязательно соответствуют моему собственному использованию или пониманию английского языка («regist» для «post» или «story», regist_date для даты публикации) и иногда комментарии на японском или Janglish.

Большинство программ, которые имеют международное сообщество вокруг, которые происходят из Японии, используют некоторую форму соглашения об именах на английском языке. Смотрите, например, исходный код Matz для ruby.

JasonTrue
источник
Что если проект не знает, собираются ли они выпустить источник за пределами Японии? Как видеоигра, разработанная в Японии. Иногда они не знают, захочет ли английский издатель выпустить игру в США.
Зено
@Zeno - это интернационализирующие строки символов, которые увидит пользователь. Это важно сделать, даже если код написан для англоязычных пользователей. Комментарии, имена переменных и внутренний язык на самом деле не коррелируются, если только код не будет выпущен как API.
G__
В действительности, часто видеоигры, публикуемые за пределами Японии, содержат больше функций, поэтому код также изменяется напрямую. Как и в Final Fantasy VII, в американскую версию вошли новые боссы (Ruby WEAPON), но не японская.
Зено
Эти новые функции зависят от языка? Какая разница по сравнению с просто маркетингом другого набора функций в Токио, чем в Нагое?
G__
Как и в США, люди иногда предполагают, что их приложение никогда не будет использоваться за пределами их страны, и это иногда приводит к необходимости внесения изменений в код для выпуска на другие рынки. Но комментарии редко нуждаются в переписывании для процессов локализации, если используются современные подходы к интернационализации, потому что код, как правило, не затрагивается локализаторами.
JasonTrue