1. 程式人生 > >首次發現在例程中使用日語命名的程式設計書籍 2018-10-18

首次發現在例程中使用日語命名的程式設計書籍 2018-10-18

2018-10-18-javascript_tutorial_日語程式碼
初めての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で配列を表すといった手法が日本語では使えないなど、日本語獨特の工夫が必要になる場面があるかもしれません(一部の例では「本」と「本_配列」のようにしてみましたが)。これからは、日本國內をターゲットにした開発では徐々に日本語識別子が使われることになるのでしょう

。英語の本を読むよりも、日本語にていねいに翻訳された本を読むほうが理解がずっと早いのと同じです。

倚靠線上翻譯, 大致意思如下, 如有出入請指教:

  1. 日語命名函式/變數對常人更易理解, 即使譯者在日常工作中使用英語仍是如此
  2. 雖然使用日語命名導致註釋和實際程式碼行有些難以區分(日文註釋+英文程式碼會比較顯眼), 但譯者編寫時更容易 <–這裡不大確定含義
  3. 有時單複數難以在日語中表達, 此時還是沿用英文命名 – 中文命名也有類似情況, 之前的探討: 中文命名的特定問題, 相關風格及規範 · Issue #45 · program-in-chinese/overview, 在程式碼中進行中文命名(類/變數/方法等)的優勢
  4. 最後提到(粗體部分): 對面向日本國內的軟體開發, 將會逐漸普及使用日語命名. 閱讀使用日語命名的程式設計書籍會比英文原版更容易理解. – 聽起來似乎是有某些日本的業內推動力量, 值得深入發掘一下.

補譯者 武舎 広幸 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補:

譯者發訊息, 重印(第四次印刷)已經確定.

另外, 經告知之前有一本"我的第一本程式設計書"日文程式設計書的中譯本中使用了中文命名的示例程式碼, 但因為偏演算法, 個人感覺母語命名的優勢不是特別明顯.