首次发现在例程中使用日语命名的编程书籍

简介: 第一次发现在例程中使用日语命名的编程教程, 为Javascript入门. Found a programming book with sample programs naming identifiers in Japanese.

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补:

译者发消息, 重印(第四次印刷)已经确定.

另外, 经告知之前有一本"我的第一本编程书"日文编程书的中译本中使用了中文命名的示例代码, 但因为偏算法, 个人感觉母语命名的优势不是特别明显.

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 (氏名)
);

2018-10-18

相关文章
|
缓存 Windows
Windows程序设计——LoadImage参数及其用法
Windows程序设计——LoadImage参数及其用法
400 0
|
2月前
|
Windows
火山中文编程 -- 第一个windows程序
火山中文编程 -- 第一个windows程序
12 0
|
2月前
火山中文编程 -- 类、方法、参数
火山中文编程 -- 类、方法、参数
145 0
|
11月前
|
Linux C++ iOS开发
小秘技:怎样用python来获取各种DOS命令显示的内容?注意不是返回值哦!
小秘技:怎样用python来获取各种DOS命令显示的内容?注意不是返回值哦!
90 0
|
IDE 程序员 开发工具
世界上第一个程序员命名的编程语言是什么?
Ada曾是美国国防部指定的唯一一款可用于军用系统开发的语言,旨在整合美军事系统中运行着450多种不同的程序设计语言,她是迄今为止最复杂、最完备的软件工具。开发始于1975年,最早是针对嵌入式和实时系统设计的,1983年发布。其命名是为了纪念世界上第一位程序员阿达·洛芙莱斯。Ada具有许多现代软件的开发原理,而且将这些原理进行实现他可以改善软件系统的清晰性、可靠性、有效性、可维护性。
336 0
QT QTranslator 中英文翻译linguist语言家 翻译过程
QT QTranslator 中英文翻译linguist语言家 翻译过程
QT QTranslator 中英文翻译linguist语言家 翻译过程
|
Windows
Windows程序设计——CreatePen详细参数
Windows程序设计——CreatePen详细参数
110 0
|
C++
VS Code英汉词典进化效果演示: 翻译文件所有命名
实现VS code插件, 基于本地词典数据, 提供英汉翻译功能, 演示批量命名翻译功能. Demonstrate a new feature in vscode extension to translate English word or phrase to Chinese, by supporting translating all identifiers in a file.
929 0
|
程序员 Java
程序员面试时用中文命名写白板代码的好处
在程序员面试时的白板写代码这关用中文命名对双方的好处
671 0
|
Python
中文编程: 已经十多年了! 你知道Python3可以用中文命名变量吗?
Python3本身支持中文命名类/方法/变量 任何额外的库和工具都不需要, 不需要, 不需要! 重要的话三遍. Python3本身就可以正确运行下面的代码: 补一句, 不光是Python3支持中文命名哦, 以后一个一个语言讲过来, 九成九你用的编程语言也支持.
1595 0

热门文章

最新文章