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

简介: 第一次发现在例程中使用日语命名的编程教程, 为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

相关文章
|
1月前
|
人工智能 小程序
寻找 2300 名编程青铜一起写代码,学会就送包!
邀请你一起进入通义灵码 AI 编程 PlayGround,这里可以是你的游乐园, 也可以是你的操练场,通过本次活动学会使用通义灵码的前 2300 名新用户,都将获得限量灵码帆布包一个。快开始尝试并享受编程的乐趣吧!
|
7月前
LabVIEW编更改研华数字板卡中DIO方向 例程与相关资料
LabVIEW编更改研华数字板卡中DIO方向 例程与相关资料
35 2
|
7月前
|
搜索推荐 IDE 数据库连接
创建你的第一个Visual Basic程序:步步为营
【4月更文挑战第27天】探索Visual Basic编程,从安装Visual Studio开始,创建首个&quot;HelloWorldApp&quot;。在Form Designer中布局界面,添加Label和Button,设置属性。编写代码实现Button点击显示问候语。运行并调试程序,逐步学习更多控件和VB.NET高级概念,提升编程技能。享受编程旅程,创造无限可能!
54 0
|
7月前
|
Windows
火山中文编程 -- 第一个windows程序
火山中文编程 -- 第一个windows程序
36 0
软件工程——程序编码(程序编码总原则、5个好程序标准、源程序文档化)
当工程规模很大时,而又没有完全合适的语言,可编一个专用的语言
|
搜索推荐
学习总结(文件命名、计算机快捷键、快速阅读、二八定律)
学习总结(文件命名、计算机快捷键、快速阅读、二八定律)
113 0
|
Linux C++ iOS开发
小秘技:怎样用python来获取各种DOS命令显示的内容?注意不是返回值哦!
小秘技:怎样用python来获取各种DOS命令显示的内容?注意不是返回值哦!
145 0
QT QTranslator 中英文翻译linguist语言家 翻译过程
QT QTranslator 中英文翻译linguist语言家 翻译过程
QT QTranslator 中英文翻译linguist语言家 翻译过程
|
存储 编译器 文件存储
C++语言中多文件组合方式之经典
C++语言中多文件组合方式之经典
236 0
|
缓存 Windows
Windows程序设计——WNDCLASS结构参数及其用法
Windows程序设计——WNDCLASS结构参数及其用法
395 0