"是先有了 Unicode 支持再有了中文、日文编程的需求"?

2018-12-22 16:07:36 +08:00
 xuanwu

出自这条回复: https://www.v2ex.com/t/518915#r_6628068

现在觉得也许这种看法的不在少数. 为此, 节选十一年前Python3 选择支持非 ASCII 码标识符的缘由:

Rationale(依据)一节开篇明义, 指出用母语命名标识符对代码清晰度和可维护性的提高.

Python code is written by many people in the world who are not familiar with the English language, or even well-acquainted with the Latin writing system. Such developers often desire to define classes and functions with names in their native languages, rather than having to come up with an (often incorrect) English translation of the concept they want to name. By using identifiers in their native language, code clarity and maintainability of the code among speakers of that language improves.

下面列出了一些质疑和回应. 其中:

People claim that they will not be able to use a library if to do so they have to use characters they cannot type on their keyboards. However, it is the choice of the designer of the library to decide on various constraints for using the library: people may not be able to use the library because they cannot get physical access to the source code (because it is not published), or because licensing prohibits usage, or because the documentation is in a language they cannot understand. A developer wishing to make a library widely available needs to make a number of explicit choices (such as publication, licensing, language of documentation, and language of identifiers). It should always be the choice of the author to make these decisions - not the choice of the language designers.

不用翻译吧

5908 次点击
所在节点    程序员
57 条回复
xuanwu
2018-12-23 11:08:12 +08:00
@cyspy 是这里? https://github.com/pkukielka/scala-umad/blob/ef34e23ae64a53284cd36b6f38dbb4e4d9ad4ce0/corpus/scala-library/src/scala/collection/immutable/LazyList.scala#L187
这样截取两行出来, 本身就很难理解吧? 如果要中文化, 需要细究这个类的功能.
cyspy
2018-12-23 13:07:22 +08:00
@xuanwu scala 标准库里最常用的类的定义而已,一个类,有类型参数,有参数,继承类,混入特质,再好理解不过了。
xuanwu
2018-12-23 14:01:37 +08:00
@cyspy 大概看了一下, 也许你的重点是 lazy 的对应中文?
不少术语的确没有很一致或通用的翻译. 之前组里也试图进行总结 API 中常用的术语: https://github.com/program-in-chinese/overview/issues/85
相对来说, 数量上说毕竟这些术语相对其他行业的术语还是少数(比如其他帖子提到的游戏 /法律 /会计等等领域的实践). 通过更多中文命名实践, 这些常用的 API 术语应该会有一个普遍接受的释义.
KasuganoSoras
2018-12-23 14:52:17 +08:00
@xuanwu PHP 你想改中文,除非自己把 PHP 内置的各种函数自己重新实现一遍,要么就改解释器源码
前者的工作量可以累死你,后者虽然简单,但是如果别人不用你的解释器,那么他们就无法使用中文编写出来的代码。
所以是不现实的,因为你不可能要所有人把代码都改为中文。除非你真有那闲心把几百上千个 PHP 内置函数全部自己实现一遍。
还有个问题,写成中文以后,编辑器的高亮就没了,白花花的一片看着不头皮发麻?
KasuganoSoras
2018-12-23 14:56:40 +08:00
PHP 中文我也不是没试过,甚至连 Emoji 都支持,但是仅限于自己的变量、类和方法,你想改内置函数几乎不可能,PHP 也没有原生支持覆盖函数的功能,有也需要手动开启 Zend Debug,并不是所有人都会开启这个功能。
https://www.v2ex.com/t/516858
xuanwu
2018-12-23 15:11:32 +08:00
@KasuganoSoras 个人觉得自定义的标识符是业务语义最富集的部分, 也是代码可读性提高效果最明显的部分.
组内现在有位在尝试汉化 TypeScript 3 关键词+核心库(通过改编译器源码). 工作量确实很大, 但他之前已经在 TS 2 下实现了.
KeepCoding
2018-12-23 15:12:20 +08:00
典型的以为自己能搞出什么大事,妄想着做奠基人
xuanwu
2018-12-23 15:31:52 +08:00
@KeepCoding 我不可能成为奠基人, 因为早在十几年前就有在 Java 进行中文命名的开发者实践, 还有那个广为传播的 6 年前用中文命名进行 C#开发的公司. 更不用说, 易语言早已成为中文编程的标杆, 短期内也没有看到能够超越它的中文编程语言项目.
KasuganoSoras
2018-12-23 15:34:59 +08:00
@xuanwu 你见过多少用易语言写出来的大项目
反正我是没见过,顶多就一些外挂辅助什么的用易语言写的比较多
shyangs
2018-12-23 15:50:34 +08:00
易语言门槛这么低, Rust 门槛这么高, 但 LZ 有生之年就会看到: 门槛高的 Rust 会成功, 易语言会继续边缘凉凉
cyspy
2018-12-23 15:51:13 +08:00
@xuanwu 用词是小事,歧义也先不谈,这玩意换成汉字的话,你真的不考虑一下程序员的视力卫生?
ljpCN
2018-12-23 15:58:43 +08:00
求楼主出一套完整的,中文编程最佳实践,比如就用 Python
krixaar
2018-12-23 16:13:45 +08:00
@ljpCN 问过了,大致意思是,“我知道有 zhpy/zhpy3 这个东西,但是我没时间,如果你有时间做,欢迎和我讨论”
leeg810312
2018-12-23 16:26:13 +08:00
有开拓精神是好事,不过打破行业格局的行动,不可能靠这样传销般的宣传来推动。易语言是中文编程的典型,不过哪个公司用了易语言做了产品销量很好,还是做了什么热门的互联网服务,那么多年发展都没有达到工业级水准。打破格局的事必须为行业带来实际的好处,中文编程不仅是保留字、变量名、API 用中文这么简单,想要布道请做点有成效的行动
JCZ2MkKb5S8ZX9pq
2018-12-23 16:47:21 +08:00
@krixaar 就是民科,概念屌得一逼,你叫他出东西他跟你谈理念。
[为什么民科很少拿计算机科学开涮? - 知乎]( https://www.zhihu.com/question/66951195)
xuanwu
2018-12-23 16:57:05 +08:00
@ljpCN 中文命名的实践在中文编程知乎专栏有不少. 最近有几位其他作者编写的实用工具教程, 用的 Python.

@JCZ2MkKb5S8ZX9pq 呵呵, 这个帖子根本不是我的"概念". 你如果看过顶楼的内容, 应该知道这是 Python 社区(十一年前)的经验总结.

@shyangs 易语言的未来我不清楚, 但它的历史地位就在那里.
krixaar
2018-12-23 17:09:55 +08:00
@JCZ2MkKb5S8ZX9pq 民科好歹还有“科”,这种级别是宗教……我们就是一群“让你们的神出来跟我说句话我就信”的那种异教徒而已。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/520017

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX