Що таке програмування на японській мові? [зачинено]


28

Чи написаний код японською мовою? Чи є назви англійською мовою? Як щодо препроцесора С? Це все ще англійською? Чи є коментарі японською?

Приклади теж було б непогано.


7
Як і програмування на іспанській / португальській / будь-яку іншу, код завжди повинен писатися англійською мовою.

1
@ M28 Це дещо інакше, коли вам доведеться використовувати іноземний алфавіт. Спробуйте написати простий додаток зі світовим привіт, використовуючи грецький алфавіт для всіх ключових слів.
biziclop

3
@ M28: Просто з цікавості: чи існують мови програмування, призначені для символів поза латинським алфавітом? І якщо компілятори дозволяють використовувати кодування, крім ASCII, я думаю, навіть Java може бути написана з усіма символами японською мовою, за винятком мовних ключових слів ...
FrustratedWithFormsDesigner

2
@Frustrated: [Whitespace] ( en.wikipedia.org/wiki/Whitespace_(programming_language) приходить на думку.
Josh K

3
@ Розчаровані: Вікіпедія знає все.

Відповіді:


21

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

Щодо деяких жахливих кодів, які я бачив, я пам’ятаю, що бачив Java і (я вважаю) код VB, які фактично використовували кандзі або катакана для імен змінних.

Що вбік, код має тенденцію виглядати так

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

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

    }

    ...
}

Щодо препроцесора С, то поняття не маю.


Препроцесор може використовуватися для перекладу мовних ключових слів на інші мови.
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 або іншому відповідному кодуванні. Однак не було навіть коментарів японською мовою C, окрім випадків, коли ви використовували компілятор, який підтримував Shift-JIS або Unicode. Строкові літерали в C майже завжди уникали за допомогою методу кодування буквально, якщо у вас не було формату файлу зовнішніх ресурсів, з яким можна працювати, як у Visual Studio.

На практиці багато програм, написаних японськими командами, які не очікують необхідності обслуговування за межами Японії, написані з коментарями або javadoc / docstrings / тощо. японською. Моя дружина, як правило, пише код японською англійською мовою, використовуючи терміни, які не обов'язково відповідають моєму використанню чи розумінню англійської мови ("реєстрація" на "пост" або "історія", реєстраційна дата для дати публікації) та випадкові коментарі японською чи янглійською мовами.

Більшість програм, що мають навколо себе міжнародне співтовариство, що походять з Японії, використовують певну форму англійської конвенції про іменування. Дивіться, наприклад, вихідний код Маца для рубіну.


Що робити, якщо проект не знає, чи збираються випустити джерело за межами Японії? Як відеоігра, розроблена в Японії. Вони іноді не знають, чи захоче англійський видавець випустити гру, скажімо, у США.
Зенон

@ Zeno - це інтернаціоналізація символьних рядків, яку побачить користувач. Це важливо зробити, навіть якщо код є і для англомовних. Імена коментарів та змінних та внутрішня мова насправді не співвідносяться, якщо код не буде випущений як API.
G__

Насправді, часто відеоігри, опубліковані за межами Японії, включатимуть більше функцій, тому код також безпосередньо змінюється. Як і Final Fantasy VII, у американській версії були нові боси (Ruby WEAPON), але не в японській.
Зенон

Чи залежать ці нові функції від мови? У чому відмінність від того, щоб просто продати інший набір функцій у Токіо, ніж у Нагої?
G__

Як і в США, люди іноді роблять припущення, що їхній додаток ніколи не буде використовуватися за межами своєї країни, і що іноді призводить до зміни коду, необхідного для випуску на інші ринки. Але коментарі рідко потрібно переписувати для процесів локалізації, якщо використовуються сучасні підходи до інтернаціоналізації, оскільки локалізатори зазвичай не торкаються коду.
JasonTrue
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.