Xuan Wu
Xuan Wu
@program-in-chinese/all 现在issue里开始了对一般中文编程的针对性发言, 并且没有什么实质内容, 如https://github.com/dotnet/csharplang/issues/993#issuecomment-336363055 https://github.com/dotnet/csharplang/issues/993#issuecomment-336366449 诸位虽然对汉化关键词/类的意见不一定完全一致, 还望分享一下自身体验以作回应.
@farteryhr > 发声在这里发就好,不建议在那里吼,那儿已经没啥讨论环境了。 其实开始也犹豫, 但是还是想尽量添点技术性内容进去, 不然可能也不会有后面一些有点价值的讨论. 至少, 也表示一下还是有些实质性的工作. 没有特殊情况估计不会在那个issue继续了. > 多做,而且把一步做完整,不管这一步多小。 很同意! > 盯死一个语言的核心语法bnf,掏出antlr做一个完全对应中文版,中文parse ast生成对应语言代码,我觉得都是很好的成果。 已新建https://github.com/program-in-chinese/overview/issues/36 > 关键字完了就是库,这更是要耗时耗力做的,再怎么bb都没用。 你的意思是说汉化库依赖于关键词/语言汉化吗? 像[JUnit4](https://github.com/program-in-chinese/junit4_in_chinese)的接口汉化之后, 原始Java也就可以用. > 觉得可行的方法还是,尽快脑补确立一个标识符多语言标注语法 这个思路已新建https://github.com/program-in-chinese/overview/issues/32, 不妨在那继续讨论细节. > (这连楼层都不好引用xsk)你最新的回我的一帖 [这个](https://github.com/program-in-chinese/overview/issues/3#issuecomment-335042412)链接就是: 吗? 之前在顶楼索引里加了那个链接, 和你的回复. 在下愚钝, 想请教一下把单字作为token的好处. 另外, @TKT2016 在Z语言里也在尝试无空格语法. > 个人认为中文编程,若非走极简洁路线(J语言),不太有竞争力。 请指教一二. 猜想你指的"中文编程"是特指新创造中文编程语言. 有点难以想象中文编程如何走极简洁路线, 能举个例子吗? 另外的路线不太有竞争力的原因是...? > 关键字替换还是免了。 即使是单纯的关键字替换, 百花齐放也好吧. [从前尝试](https://github.com/program-in-chinese/overview/issues/2#issuecomment-321440280)过一点. > 然后多字符的标识符用一个特殊记号括起来,比如[...],`...`。 是吗? 好像没看到这部分. 这样不是和用空格类似吗? >...
不禁转发一下 @htwx 的[发言](https://github.com/dotnet/csharplang/issues/993#issuecomment-337260272): > 不好意思拼音我也不好,但是是从小学开始就学了,总算没白学,学了10年英文对我来说就白学了。其他方面你还不一定赶上我,57分的英语本人照样上大学,照样毕业,还不是在大学生烂大街的年代。单词基本不认识我照样编程。你可知道你眼中的这些程序员花了多少努力达到现在这个水平么这个我还真知道,自学这些年看遍了到处求爷爷告奶奶的问各种各样的简单到不能再简单的问题,为了1个错误鼓捣好几天解决不了。他们就没想想这是为什么,真的有这么难么?学过了就知道根本不是这样,如果没有语言障碍,99%的错误提示都能解决遇到的问题。可惜就是不认识。你说编程或计算机技术的本质是数学,没错,可更多的是业务是逻辑。一个程序涉及到几个核心算法,设计好了框架,剩下的基本就是搬砖工的水平,我看了C# 罗斯林的 全部代码 TS的全部代码还没发现我不能理解的算法,可能是让我设计我做不出来但是理解他是完全够用的,ts编译器10w行代码有7w以上是搬砖工的水平就可以胜任。如果百度,阿里,腾讯的程序是中文代码写的他们的开发成本瞬间下降1半,人工成本不会超过现在的1半。这里一定有人说什么用中文编程就不能应用尖端技术了,就封闭了就跟不上时代了,就与世界不能接轨了。实际上根本就没有关系,英文难道翻译不成中文么,只要1部分框架师级别的能跟上就行了。其他的都是搬砖的就可以了。时间长了中文编程的生态也就出来了,搬砖工也就可以成为框架师了。 关于业务逻辑的部分[非常同意](https://github.com/program-in-chinese/overview/commit/40fa319655468024e24cc581f6b5b2fb8909c2ea)
v2ex中最近的帖子: [代码里面有中文,大家觉得怎么样?](https://cn.v2ex.com/t/463788) 在回复中看到不少有中文命名经验和体会的~
[第一次见以汉字命名的 Java 类](https://www.v2ex.com/t/480623)是对组内项目[简繁转换库](https://github.com/program-in-chinese/zhconverter)的反馈. 回复中提到在业务相关部分使用中文命名的实践, 摘录如下: > 不支持中文命名,但是在业务性强的系统中,对于实体类和一些常量(仅限实体类、常量)还是推荐使用的,否则很多名词用英语很难表达清楚,关键是换个人来看这代码,看到统一串英文不一定能和中文环境下的名次对上号。 比如我们开发的一个系统中,有大量这样的名词: >1. 决定判决情况 >2. 判决情况 >3. 历次减刑情况 >4. 刑罚执行检查档案审查情况 ... 这些字段和其他系统是直接相关的(我们这个是辅助系统), 而且随着这个系统支持的业务范围不断的扩大,如果全都使用英文(缩写),维护起来简直就是灾难。
至今发现的最早中文命名实践之一(不确定之前帖过否):2009年的[我们在dotnet开发里中文变量及方法的命名规则](https://www.cnblogs.com/DotLee/archive/2009/09/19/1570069.html) >目前,我们在项目中使用中文变量,从3年前的权限管理, 到一年前的购物车管理,发展到了在类库(会员积分奖金规则)中使用。 体会到了中文变量对于项目维护的巨大方便。
https://github.com/program-in-chinese/overview/issues/180#issue-739542995 看精选评论区, 比较八年前的原帖下评论, 可喜可贺啊! 多谢 @liuxilu 告知.
下面是想到的. 还有哪些可能的方向呢? - 翻译经典教程, 将示例代码中文化 - 入门类: 如编程语言, 热门框架/库 - 进阶类: @jeffreybaoshenlee [提议](https://github.com/program-in-chinese/java_in_hours_chn/issues/2#issuecomment-340122476)用比较接近工程的示例编写, 最好贯穿一个教程 - 从0开始写XX: 操作系统, 编程语言(可以同时为中文语言的实现作实验), 输入法 在初期人力有限的情况下, 考虑从工作量小, 周期短, 受众广的方向做起.
现在的示例程序并不为了演示编程语言本身的特性, 而是对中文命名进行可行性验证. 原则上越简单的越好. 如果想要用中文代码演示编程语言本身特性, 欢迎写一些针对某一编程语言的入门教程.