首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
华为云
V2EX  ›  程序员

首次发现示例代码用日语命名的 JavaScript 入门书籍. 何时会有中文命名的?

  •  2
     
  •   xuanwu · 27 天前 · 4902 次点击

    首次发现在例程中使用日语命名的编程书籍: https://zhuanlan.zhihu.com/p/47127716

    第 1 条附言  ·  27 天前
    刚做了一点调研, 似乎日本业界还没有广泛的日语命名标准, 但今年发布的初版小学编程教育大纲中的示例已经都是日语命名的了, 而且和其他核心学科相结合: https://zhuanlan.zhihu.com/p/47128031

    @leido 之前在 https://www.v2ex.com/t/480623#r_6048174 提到日本公司有日语命名标准, 不知有没有公开资料供参考? 多谢!
    93 回复  |  直到 2018-10-21 07:42:05 +08:00
        1
    BXIA   27 天前 via iPad
    苹果的官方 swift 入门教程还有用 emoji 的
        2
    xuanwu   27 天前
    @BXIA emoji 要是有明确语义也行啊. 母语命名的编程书是头一回看到.
        3
    loading   27 天前 via Android
    go 语言,你好世界。
        4
    loading   27 天前 via Android   ♥ 16
    如果是变量用了中文,估计会被骂死,这就是大家的观点,所以一直没出现中文的。

    别国出现了,就是,牛逼牛逼。
        5
    maemolee   27 天前   ♥ 1
    很期待中文的出现,这样子对非专业程序员的人来说要舒服很多。
        6
    wolfie   27 天前
    @loading
    这是入门书啊。
        7
    YuxiangLuo   27 天前 via Android
    go 的官方 guide 里面有中文 hello world
        8
    xxx749   27 天前 via Android   ♥ 1
    那以后团队开发是不是还得懂八国语言
        9
    xuanwu   27 天前
    @YuxiangLuo fmt.Println("Hello, 世界") 只是文本常量吧. 这里重点是变量 /方法 /类命名.
        10
    xuanwu   27 天前
    @maemolee 感觉同样重要的是在少儿教育中将编程和核心学科(英文以外的)结合起来. 这必须依靠母语命名, 而日本官方明显已经认识到了这点.
        11
    xy90321   27 天前 via iPhone   ♥ 1
    日本一贯就是这样的,所以与其用日本人自己都可能看不懂的罗马字来命名,还不如一步到位直接用日语假名或者汉字(如果语言支持的话)。

    至于英语命名,日本人虽然也有英语好的,但是我接触下来大部分 IT 业相馆的人那个英语那叫一个可怕… 甚至线上跑的 prd 版系统,其中的英语 error message 都布满了我国小学生都写不出的英语语法错误或者拼写错误。
        12
    murmur   27 天前   ♥ 2
    支持 utf-8 想怎么玩就怎么玩 成熟了中文变量名中文函数名反倒挺好
    起名真的是个头疼的问题
        13
    rocksolid   27 天前   ♥ 3
    不喜欢输入法切来切去,要么全母语,要么全英文
        14
    VDimos   27 天前 via Android
    这个看个人习惯吧
        15
    liuxey   27 天前
    要是内建函数和关键字也能中文或者日文了才好,这样切输入法切真英雄也。
        16
    7654   27 天前   ♥ 1
    会被很多人认为不够高大上,强力鄙视,会被喷死的
    自己一直用的英文,并一直拥有优越感
    突然有一天中文也可以码代码了,会很不平衡的
        17
    DOLLOR   27 天前
    就变量名母语而已,API、关键字还是英文字母;而国内某些人,是想着把整个编程语言都汉化,连一个字母都不容许出现的,还自夸中文编程省空间、歧义少,骗外行人。
        18
    houbaron   27 天前 via Android   ♥ 1
    @7654 早就可以了,甚至是 C++
        19
    annielong   27 天前
    切输入法确实麻烦,而且有些文字真心不好翻译,支持拼音加注释
        20
    BarZu   27 天前   ♥ 1
    我大中华易语言全程中文都没骄傲过,小日本这点技量还好意思拿出来晒
        21
    ctro15547   27 天前
    易语言了解一下?
        22
    Jbadorange   27 天前 via iPhone
    编写书籍还可以,标识符使用中文可以方便读者理解其作用。但自己真要这么这代码,切换输入法就能把人烦死。
        23
    azh7138m   27 天前 via Android
    第一次见以汉字命名的 Java 类 https://www.v2ex.com/t/480623

    这类帖子也不少了
        24
    passerbytiny   27 天前
    用母语命名不是不能,而是切换输入法太麻烦。另外,严格意义上说,以前也不是用英语命名的,而是基于英语、多数人任何的专用语言。比如,SomeObject,只会英语的人是不认识的。
        25
    x86   26 天前   ♥ 1
        26
    noaccounthere   26 天前
    羡慕英语为母语的国家的人, 写代码都不用切输入法,舒服
        27
    o0   26 天前 via iPhone
    要是用拼音也不错,比各种奇葩翻译出来的英文变量更容易辨认。
        28
    xxgirl2   26 天前
    好懂能用就行。有一次引用某个 C#类全是中文名,改个接口名就行了,人家代码整洁功能一目了然一点也不耽误事。
        29
    xuanwu   26 天前
    @liuxey
    @DOLLOR
    @azh7138m 中文命名的 API 才刚刚起步(那个中文接口的简繁转换库就是在下写的). 不可能因为现有的核心 API 都是英文, 就强求所有业务相关 API(特别是国人为主要用户的 API)都用英文.
        30
    lilydjwg   26 天前 via Android
    @loading go 语言用中文名称的话,是私有还是公有的呢?
        31
    lilydjwg   26 天前 via Android
    我以前尝试过中文名称,后来发现不方便交流就放弃了。
        32
    jydeng   26 天前
    切换输入法太累,这个不考虑嘛
        33
    xuanwu   26 天前
    @ctro15547
    @BarZu
    日语语法的编程语言也有不少. 之前粗浅分析过的"抚子"语言: https://zhuanlan.zhihu.com/p/30800689
    还有 Mind: https://www.scripts-lab.co.jp/mind/whatsmind.html
        34
    xuanwu   26 天前
    @rocksolid
    @liuxey
    @annielong
    @Jbadorange
    @passerbytiny
    @noaccounthere
    @jydeng
    日本同行解决输入法相关问题的姿势:

    ローマ字入力時の日本語識別子入力補完プラグインの 開発 http://jssst.or.jp/files/user/taikai/2017/FOSE/fose3-1.pdf
    开发了辅助插件以改进 IDE 对输入日语命名的支持.
        35
    misaka19000   26 天前   ♥ 1
    少见多怪,我 n 年前参与过一个日本的后端项目的开发,里面的 Java 变量都是用的假名来命名的
        36
    oyhw92   26 天前
    let while function 这些关键字还是英文的。个人觉得切换输入法太麻烦
    楼主可以开发一个 bable 插件 转换这些关键字和 中文符号 ;《( [
        37
    no1xsyzy   26 天前
    @xuanwu #33 说起来,日语这语法本身谓语是后缀的,解释器处理起来应该方便得多,基本上核心只要一个堆栈。
    话说自然语言有前缀语言吗?有自带语法树的语言吗?
        38
    si   26 天前
    易语言用中文都被喷死了,谁还敢写中文 /doge
        39
    xuanwu   26 天前
    @no1xsyzy 中文语法的编程语言的可行性可以另外探讨(各种带空格不带空格的实验性语言都见过).
    关键是现在>90%的商用软件都是英文语法的编程语言实现的, 而且新手入门首选的也是成熟主流的编程语言. 那么在这些商用项目和入门教程中使用母语命名无疑有巨大的短期效益. 长期来说也会加速母语语法的编程语言的实用化.
        40
    blless   26 天前 via Android
    看情况吧主要是中文代码不知道用什么 ide 或者记事本打开可能就全乱码了,我们全 utf8 项目有次用 git 代码合并,注释全???
        41
    3d3ec7a   26 天前
    告诉你们珍藏的技巧: 非英语名前面加个英语前缀(1~2 字符), 之后不用切换输入法, 敲前缀+代码补全就行.
        42
    xuanwu   26 天前
    @oyhw92 最近在做的是针对阅读英文源代码的辅助工具
    翻译源代码的在线翻译服务: https://www.v2ex.com/t/484895#reply20
    Chrome 插件实现 GitHub 代码翻译 v0.0.3: https://zhuanlan.zhihu.com/p/47071729

    目的之一就是展示中文代码可读性.
        43
    xuanwu   26 天前
    @misaka19000 请问有没有公开的日语命名的规范 /风格文档? 感觉他们会非常注意规范, 如果在公司范围实施的话.
        44
    xuanwu   26 天前
    @blless 这要么是 git 本身 bug, 要么是使用问题. 无论如何, 总不能因噎废食吧.
        45
    Narwhal   26 天前
    霓虹金直接写罗马音就可以了吧
        46
    elvodn   26 天前
    @lilydjwg #30 中文是私有的,估计 go2 会改为下划线和小写开头为私有
        47
    datou   26 天前
    切换输入法太麻烦了
        48
    xuanwu   26 天前
        49
    trait   26 天前
    支持 non-ascii 已经是现代语言的常规操作了,Rust 的相关 RFC 已经快要合并了
        50
    loading   26 天前 via Android
    @wolfie 你认为入门书就应该叫大家眼里的"旁门左道"?你是不是对入门书有什么误解?
        51
    JCZ2MkKb5S8ZX9pq   26 天前
    切换输入法和等宽对齐就能烦死。中文也就写写注释,偶尔拿来做字典的 key。
        52
    zsdroid   26 天前
    然并卵
    [ ]( )
        53
    passerbytiny   26 天前
    @xuanwu #34 大佬,你这全是日文,没翻译
        54
    xuanwu   26 天前
    @JCZ2MkKb5S8ZX9pq "等宽对齐"? 用的什么 IDE 会有这个问题? 个人在 VS code 下写 Python/JavaScript, 在 Eclipse 下写 Java, 从没碰到因为中文命名导致的对齐问题.

    再说一遍, IDE/输入法总是可以改进的, 参考日本同行的思路 #34

    @passerbytiny 摘要是英文. 顶楼的日文网页我就是靠在线翻译啃下来的. 要是有兴趣开发 IDE 辅助插件的话欢迎到组里讨论(详见个人简介)
        55
    xuanwu   26 天前
    @zsdroid 点在哪?
    "中文编程"gh 讨论组首页有链接, 出于验证 /演示目的, 在二十多种编程语言中用中文命名编写示例代码. 让人慨叹在商业编程语言支持 Unicode 命名十数年后, 中文命名至今仍处于边缘的现实.
        56
    likuku   26 天前   ♥ 1
    代码即文档吧,另外,听说前端用的 JS 里,不便写很多注释的。
        57
    datou   26 天前
    @xuanwu 中文拼音输入法比日文罗马字输入法复杂的多,我不认为在日文的罗马字替换能够比较好的运行在中文的拼音替换上

    毕竟汉语拼音是三十九个音(不算声调)匹配几万个汉字

    日语是五十个音匹配五十个平假名,五十个片假名外加两千多个当用汉字
        58
    niubee1   26 天前
    中国写这种书不赚钱, 按照 5%的版税收入算, 一本能挣个一万吧两万差不多了, 但是你出一本书写个几个月, 有这美国时间随便接个什么外快就挣得比这多了. 再说水平够不够又是另一回事, 差点火候写出来又要被人骂, 最可恨的是有人根本没买书, 看了网上下的不要钱的电子版也跑来骂.
        59
    xuanwu   26 天前
    @datou 中国大陆:现代汉语常用字表常用字部分:2,500 字
    通过那篇论文可以看到的是, IDE 和输入法都可以为了母语命名而改进. 这是无论日文中文都适用的.
        60
    passerbytiny   26 天前
    @xuanwu #54 Eclipse 下中文不但有对齐问题,还有显示问题。不过 Consolas 字体时,如果行开始处有英文字母( 4.9 版本之前有半角符号也行),则看不出来有问题。4.9 版本半角符号不管用了,导致我注释没法看了,切换成了微软雅黑字体,结果就是一个中文占两个英文的显示宽度。如果是代码中的中文,肯定是先写英文关键字后写中文变量名的,所以你可能看不出来问题。

    英文靠谷歌翻译看下来了,日文就懒得看了。我对 IDE 辅助插件不看好,至少中文方面不看好,因为要想编码时英文关键字跟中文命名无缝结合,语法、IDE 这里都不是问题,中文输入法和命名规范才是大问题。另外就算解决了前面所有的问题,国际化又成了问题了。
        61
    passerbytiny   26 天前
    以前小范围接触过对日开发,最大的感受就是,日本的开发环境,是真心封闭。中美欧的开发环境就算不同也是有一定相通性的,日本完全就是个独立开发环境。
        62
    msg7086   26 天前
    以前易语言玩烂了的敲拼音首字母自动匹配汉字功能现在被日本人抄去了?(手动狗头
        63
    xuanwu   26 天前
    @passerbytiny 命名规范一直在探讨: https://github.com/program-in-chinese/overview/issues/45
    国际化 -- 个人认为传统行业大多数项目都不存在这个问题, 即使要开放某些 API 给国外用户, 也只要在需要时封装已有中文接口即可. 无意强推所有情况都用中文命名, 只求具体项目具体分析.
        64
    no1xsyzy   26 天前
    @xuanwu #39 就是“黏合口头语言”方面的闭环啦。技术上和推广上是两个问题。
        65
    xuanwu   26 天前
    @niubee1 这本书也有很多反对声音. 刚看了 amazon jp 上有一些给一星的抱怨日语命名. 感觉这需要译者有足够信念才能实现. 而且关键出版社也要敢于吃螃蟹. 希望类似的中文书能在 3 年内出现吧.

    译者背景蛮强的:
    出生于长野县上田市。他在东京工业大学,科学技术研究生院,国际基督教大学,山梨大学研究生院,俄亥俄州立大学研究生院,卡内基梅隆大学机器翻译中心等完成博士课程。
    作为 Merlin Arms Co.,Ltd。( http://www.marlin-arms.co.jp )的代表董事,他从事与计算机和自然科学,软件开发(翻译软件等),软件项目管理,在线翻译课程( http://www.dhc-online.com )相关的翻译和写作。和字典网站( http://www.dictjuggler.net
        66
    passerbytiny   26 天前
    @xuanwu #63 我看了一下,上面说的一些方法,思路基本都是这样的:通过“类 /接口 /方法”、“们”、“某”、英文特殊字符等前后缀来区分类型或单复数。非常不赞成这种思路,某、们这些前后缀本身就不是传统汉语的语法规则,而是从英语中借鉴过来的,英文特殊字符就更明显了,这全部是中英文混排的思想,相当令人反感。

    我现在也想不到有什么好的方法来解决这些。我觉得从文言文的“之乎者也”来着手更有可能成功。现在的汉语语法真心不好用,我现在写注释,经常性感觉汉语不如英语说得明白。猜测这些语法是民国那一辈借鉴英语、日语生成的,所以简繁体估计都一样难用,是该考虑恢复文言文了。

    国际化这个是必须要考虑的,要不然就算开源,也没法国际化的合作开发的。
        67
    xuanwu   26 天前
    "某、们这些前后缀本身就不是传统汉语的语法规则,而是从英语中借鉴过来的" -- 借鉴英语? "们"在英语里是啥?

    "经常性感觉汉语不如英语说得明白" -- 举个例子吧. 太难以想象了.

    "国际化这个是必须要考虑的,要不然就算开源,也没法国际化的合作开发的。" -- 有多少项目需要国外程序员共同开发的? 在可见的将来, 闭源项目还会远远多于开源项目.
        68
    xuanwu   26 天前
        69
    Felldeadbird   26 天前
    切换输入法麻烦之外,主要是中文的符号 不是英式啊!有时候我输入法强制切换为 英式,某种情况他会自动回滚中式。好气
        70
    wolfie   26 天前
    @loading #50
    你这话驴唇不对马嘴的。

    很多入门书,特别是针对没有接触过外行的。
    穿插一些方言,降低学习难度,提高理解能力有什么不好?

    我从来没觉得入门书用方言怎么有问题,倒是你,是真的敏感啊。
        71
    chainchan   26 天前
    主要还是因为日本人的英文不行啊
        72
    JCZ2MkKb5S8ZX9pq   26 天前
    支持 lz。lz 可以在自己公司实践几个月,摸索一套成熟的解决方案出来,造福大众。
        73
    xuanwu   26 天前
    @chainchan 第二语言水平很难达到母语. 无论日本还是中国.
    更不用说总量来说, 英文是编程入门门槛的人数肯定是中国>日本.
        74
    passerbytiny   26 天前
    @xuanwu #67
    我,我们 —— I,we (my, our)
    你,你们 —— 这个到都是 you
    他 /她 /它,他们 —— he/she/it, they (his/her/its, their)。

    你(的)、我(的)、他 /她 /它(的)这三个人称,以前肯定不是这样用的,举例:吾、在下、本人、鄙人、家父、君尔等、令尊令堂。第三人称好像少点,可能是因为不需要谦称,直接用名字而不用代词,但对“伊”这个字的印象还是比较深。

    另外中文表示多个时,通常时放在前面(诸子、诸侯、诸夏、诸神、众人),而不是在后面放们。

    上面只是个人观点,没有做过系统研究,可能说错了。

    "经常性感觉汉语不如英语说得明白" 这个一时半会还举不出来例子,大多是发生在这样的场合:我先用中文写注释,翻译成英文的时候,发现注释写的不明确,要改一下,最后就发展成了直接写英文注释,再回翻成中文。

    就算是闭源项目,也是要国际合作的。举个例子,腾讯哪天抽风,准备收购外国游戏开发公司,并且与国内游戏开发公司融合开发新游戏,这个时候要是发现编码语言一个中文、一个英文,就相当尴尬了。
        75
    q397064399   26 天前
    编程 还是老老实实用英语,这种东西 国际惯例
        76
    seki   26 天前
    我就好奇用中文当变量切换输入法不累吗,现在偶尔要在代码里输入一些中文字符串我都觉得好麻烦
        77
    cpdyj0   26 天前
    切输入法是个麻烦事,另要是不需要考虑国际化的事,业务相关标识符用中文也未尝不可。
        78
    yst   26 天前
    我同意变量在特殊情况下可以使用中文,只要语言支持 Unicode 代码就没问题。但是编程语言本身变成中文的意义不大。因为程序语言和人类语言本身的语法是不相通的,最终的结果就是这行代码每个字都能看懂但是连起来就不知道什么意思了。所以在这方面做努力等于是在解决一个不存在的问题。我觉得还要等 NLP 发展成熟以后,才能真正能在中文编程上做出突破进展
        79
    loading   26 天前 via Android
    @wolfie 三岁定八十。我也不想多说,每个人观点都不同。

    btw:手机拼音输入法,回复又不能改……
        80
    boris1993   26 天前 via Android
    中英文来回切不嫌烦?
    我已经懒到回邮件,查 google 什么的能不切中文就不切,写代码要打两个字就切一下的话,我 TM 改行买烧饼去
        81
    xuanwu   26 天前 via Android
    @yst 中文命名普及之后 自然有发展中文语法编程语言的动力了
        82
    vimutt   26 天前
    @xy90321 #11 文化自信
        83
    xuanwu   26 天前
    @passerbytiny 如果要强调复数, 总有办法. 从实践中总结就是.

    "我先用中文写注释,翻译成英文的时候,发现注释写的不明确,要改一下" -- 这和写文章重读之后往往发现需要改进一个道理, 不觉得和中文英文有关. 如果觉得中文的表达性和准确性不如英文, 那是另一个话题.

    "举个例子,腾讯哪天抽风,准备收购外国游戏开发公司" -- 中国有 1 亿个公司, 有几个腾讯? 说到底, 大公司是相对更没有动力使用中文命名的. 本身招人就有优势, 更乐得看到初创公司被难以接手 /维护和大规模开发的不可读代码束缚住.
        84
    xuanwu   26 天前
    @boris1993 程序员>卖烧饼的??
    说正题. 真正"写"代码的时间在整个软件开发过程中占的比例会越来越小, 这是确定的趋势, 否则这么多轮子就白造了.
    中文命名普及之后, 程序员行业门槛更低是事实, 不过整体的对外竞争力会更高, 自研框架 /底层系统的能力会更强, 说的大一点就是造福下一代.
        85
    boris1993   26 天前 via Android
    @xuanwu #84 并没有将两个行业做对比,请不要想太多
    我只是说,如果真的必须要我写两个字就得换一下输入法,那我干脆不干了
        86
    xuanwu   26 天前
    @boris1993 说笑而已
    说起来在业余项目里写了这么些中文命名的代码, 已经不大觉得什么额外负担了. 输入法调成中文输入时使用英文标点, 然后 shift 切换(这个感觉和大写英文老要用的 Shift 没区别, 而且还不是组合键), 有时也直接回车输入英文.
    之前在把 Python 官方入门教程里的例程进行命名中文化时录了一些演示: https://zhuanlan.zhihu.com/p/38324987 献丑了.
        87
    xylophone21   25 天前
    为什么日文出现了就要出现中文的?
        88
    xuanwu   25 天前
    @xylophone21 因为中文是母语的人数是日文是母语人数的十倍
        89
    chuxiwen   25 天前 via iPad
    语言语法要是能兼容中文(全角)标点就完美了,这个可能是推广的最大阻力
        90
    xuanwu   25 天前
    @chuxiwen 请明示? 现在输入法多数支持中文输入时使用英文字符吧(个人用的搜狗), 虽然不是最理想的, 但好像也没有什么大问题?
        91
    chuxiwen   25 天前 via iPhone
    @xuanwu 我的输入法不会呀,好尴尬
        92
    icris   25 天前   ♥ 1
    @passerbytiny #74
    诸国众神是古话,我等尔曹我辈(わがはい)不也是古话,凭什么放前面就正统,放后面的都忽略?就算之前放前面现在放后面,也没看出跟英语有什么关系,你举这些例子没一个往后面加东西变复数的。
        93
    xuanwu   25 天前
    @niubee1 有不少译者并不是靠这个糊口, 我看到更多的是出于对某领域的兴趣和追求. 同样, 不觉得日本版的销量和版税会有多高(了解的请纠正)

    那位日本译者明显有对母语命名的倾向性. 顶楼链接里, 有他在 2016 年 12 月的译者注, 其中有:

    "これからは、日本国内をターゲットにした開発では徐々に日本語識別子が使われることになるのでしょう。"

    gg 翻译过来:

    "从现在开始,日语 ID 将逐渐用于针对日本的开发。"

    以他的资历, 明显是看到了很明确的日本国内市场 /政策导向. 在附言中的链接也间接证明了这点.
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2470 人在线   最高记录 3821   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 24ms · UTC 00:53 · PVG 08:53 · LAX 16:53 · JFK 19:53
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1