"初めてのJavaScript 第3版 ES2015以降の最新ウェブ開発" . "示例代碼" : 譯者對採用日語命名的緣由在此闡述 "初めてのJavaScript 第3版 ES2015以降の最新ウェブ開発" (2016年12月): 翻訳の過程で、一部の例を日本語の識別子(変數名や関數名など)を使って ...
初めてのJavaScript 第3版 -- ES2015以降の最新ウェブ開発. 示例代碼:
class Person {
constructor(name) {
this.name = name;
this.id = Person.nextId++;
}
}
Person.nextId = 0;
const 一郎 = new Person("一郎"), /* id 0 */
次郎 = new Person("次郎"), /* id 1 */
三郎 = new Person("三郎"), /* id 2 */
四郎 = new Person("四郎"); /* id 3 */
const arr = [一郎, 次郎, 三郎, 四郎];
/* 1. IDを使って直接比較 */
console.log(arr.find(p => p.id === 三郎.id)); // Person { name: '三郎', id: 2 }
/* 2. thisを利用。thisを定數「三郎」に指定 */
console.log(arr.find(function(p) {return p.id === this.id}, 三郎));
// Person { name: '三郎', id: 2 }
/* アロー関數ではthisは「語彙的に(lexically)」に束縛される(6章參照) */
console.log(arr.find(p => p.id === this.id, 三郎)); // undefined
譯者對採用日語命名的緣由在此闡述初めてのJavaScript 第3版 -- ES2015以降の最新ウェブ開発(2016年12月):
翻訳の過程で、一部の例を日本語の識別子(変數名や関數名など)を使って書いてみましたが、「日本語で関數名や変數名を考えるのはとても楽だなあ」と感じました。英語を仕事で毎日使っている私でもそうなのですから、普通の方ならなおさらでしょう。コメントと識別子の區別がつきにくいなど、慣れないと少し読みにくい印象はありますが、特に書く際の負擔はだいぶ減るように感じます。また、たとえば単數形のbookで、値をひとつ記憶する変數、複數形のbooksで配列を表すといった手法が日本語では使えないなど、日本語獨特の工夫が必要になる場面があるかもしれません(一部の例では「本」と「本_配列」のようにしてみましたが)。これからは、日本國內をターゲットにした開発では徐々に日本語識別子が使われることになるのでしょう。英語の本を読むよりも、日本語にていねいに翻訳された本を読むほうが理解がずっと早いのと同じです。
倚靠線上翻譯, 大致意思如下, 如有出入請指教:
- 日語命名函數/變數對常人更易理解, 即使譯者在日常工作中使用英語仍是如此
- 雖然使用日語命名導致註釋和實際代碼行有些難以區分(日文註釋+英文代碼會比較顯眼), 但譯者編寫時更容易 <--這裡不大確定含義
- 有時單複數難以在日語中表達, 此時還是沿用英文命名 -- 中文命名也有類似情況, 之前的探討: 中文命名的特定問題, 相關風格及規範 · Issue #45 · program-in-chinese/overview, 在代碼中進行中文命名(類/變數/方法等)的優勢
- 最後提到(粗體部分): 對面嚮日本國內的軟體開發, 將會逐漸普及使用日語命名. 閱讀使用日語命名的編程書籍會比英文原版更容易理解. -- 聽起來似乎是有某些日本的業內推動力量, 值得深入發掘一下.
補譯者 武舎 広幸 Hiroyuki Takeba 簡歷(機翻):
出生於長野縣上田市。他在東京工業大學,科學技術研究生院,國際基督教大學,山梨大學研究生院,俄亥俄州立大學研究生院,卡內基梅隆大學機器翻譯中心等完成博士課程。
作為Merlin Arms Co.,Ltd。(http://www.marlin-arms.co.jp)的代表董事,他從事與電腦和自然科學,軟體開發(翻譯軟體等),軟體項目管理,線上翻譯課程(http://www.dhc-online.com)相關的翻譯和寫作。和字典網站(http://www.dictjuggler.net)
另外, 看來日語命名在日本開發者中也是有阻力的, 日本語識別子(変數名や関數名)を好まれない方がいらっしゃるようですので
- "似乎有些人不喜歡日語標識符(變數名和函數名)"(在初めてのJavaScript 第3版 -- ES2015以降の最新ウェブ開発). 確實在Amazon上有一星抱怨日語命名的, 但感覺並沒什麼說服力.
無論如何, 日本編程書籍出版商在推廣母語命名上先行一步了.
期待中文示例代碼的編程書籍早日面世.
源討論帖在: 索引: 用中文代碼作示例的編程教程 · Issue #5 · program-in-chinese/overview
2018-11補:
譯者發消息, 重印(第四次印刷)已經確定.
另外, 經告知之前有一本"我的第一本編程書"日文編程書的中譯本中使用了中文命名的示例代碼, 但因為偏演算法, 個人感覺母語命名的優勢不是特別明顯.
2019-2-16補:
發現2003年的日文論壇提到, 2003年出版的"MYSQL徹底活用(翔泳社-初版)"一書中(貌似MySQL徹底活用―SQL言語+サーバアプリケーション+管理者編 データベースの本), 使用了日文命名的示例代碼:
CREATE TABLE 社員 (
社員番號 INT NOT NULL,
氏名 CHAR(20) NOT NULL,
性別 ENUM(`男`,`女`) NOT NULL,
部署コード INT NOT NULL,
入社年度 year NOT NULL,
MAIL CHAR(40) NOT NULL,
INDEX (社員番號),
INDEX (氏名)
);