想把简体转成繁体,找了下 util,ZHConverter,看了下源码还以为我的 ide 出问题了 😰
如图: http://note.youdao.com/noteshare?id=6c2b1a2f774a9818d7e9080ff7bb2b7d
1
dorothyREN 2018-08-17 11:01:22 +08:00
很灵性
|
2
inreality 2018-08-17 11:07:55 +08:00 1
易语言即视感
|
3
boris1993 2018-08-17 11:10:43 +08:00 via Android 1
怕不是易语言出身
|
4
agagega 2018-08-17 11:13:02 +08:00 via iPhone
灵性
|
5
molvqingtai 2018-08-17 11:13:06 +08:00 via Android
不错,这样注释都可以省了
|
6
LeeSeoung 2018-08-17 11:14:30 +08:00
应该是 E4J 开发的。
|
7
harde 2018-08-17 11:15:03 +08:00 1
讲真,我觉得很好啊。
|
8
fuxiuyin 2018-08-17 11:18:29 +08:00 via iPhone
按理说,只要编译器啥的支持,并没有什么问题呀,变量名啥的不就是为了方便别人理解吗,并不在乎多敲几下键盘,反正 ide 都有自动补全
|
9
tommy94 2018-08-17 11:21:59 +08:00
想起了知乎上一个专栏...
中文编程 https://zhuanlan.zhihu.com/c_140193266 |
10
murmur 2018-08-17 11:22:11 +08:00 1
毕竟这类的功能对的起这个信仰
|
11
hahastudio 2018-08-17 11:24:16 +08:00
看这个像是单字转换的?但难道不是应该按词转换么?
|
12
zjsxwc 2018-08-17 11:25:43 +08:00
抛开中文命名不说,代码写的有点烂
|
13
cedoo 2018-08-17 11:26:28 +08:00
英文 中文杂合, 好难受。
|
14
NicholasYX 2018-08-17 11:26:45 +08:00
牛逼 666
|
16
zhouyou457 2018-08-17 11:34:19 +08:00
中英文混杂...看得我想死..
|
17
yulitian888 2018-08-17 11:36:45 +08:00
看起来似乎还有短语替换功能???
|
18
misaka19000 2018-08-17 11:45:31 +08:00
中文写代码敲的不累么
|
19
rockyou12 2018-08-17 11:47:03 +08:00
说实话写有些业务的时候真的很想用中文命名,取名字就很难了,还要翻译……还要团队的人都能懂……
不是很多编译器对非英文字符支持差,变量、类用中文我也觉得不是很大问题 |
20
itqls 2018-08-17 12:06:35 +08:00 1
|
21
kaifeii 2018-08-17 12:09:03 +08:00 4
要是想这么弄,直接全用中文更好,最好语法语序也可以汉语话,可以用古语语法或者白话语法。这样可读性才能达到英文程序语言的水平。
今有甲,又有乙,合之得丙。//快哉 |
22
AllOfMe 2018-08-17 12:09:26 +08:00
很有艺术感啊
|
23
fly9i 2018-08-17 12:26:37 +08:00
输入法切换能烦死吧?
|
24
KeatingSmith 2018-08-17 12:33:17 +08:00
Java 8 就已经支持中文命名了呀。
|
25
likai 2018-08-17 12:36:13 +08:00 via Android
了解一下易语言作者新作品,火山
|
26
lk1ngaa7 2018-08-17 12:49:59 +08:00
function farmateQuestionInfo() 你怕不怕
|
27
KgM4gLtF0shViDH3 2018-08-17 12:53:20 +08:00
swift 完美支持中文和 emoji
|
28
zsdroid 2018-08-17 13:01:21 +08:00 2
|
29
Mogugugugu 2018-08-17 13:06:27 +08:00
字符串为 null 居然不是 字符串为空- -
|
30
bravecarrot 2018-08-17 13:29:27 +08:00
难道打汉字不是比打英文麻烦吗
|
31
xuanwu 2018-08-17 13:34:43 +08:00 12
多谢试用.
在下是这个库的作者. 源码在: https://github.com/program-in-chinese/zhconverter 也是"中文编程"github 讨论组( https://github.com/program-in-chinese ) 和知乎专栏 ( https://zhuanlan.zhihu.com/c_140193266) 的发起人 回一下上面的: 个人没有易语言实践经验. 只在探讨 IDE 对中文编程的支持时, 学习了一下它的官方文档: https://github.com/program-in-chinese/overview/issues/11 这个库的目标主要是尝试用中文命名 API, 的确像上面提到的, 库的功能本身也适合中文命名. 支持按词转换, 请参考测试用例: https://github.com/program-in-chinese/zhconverter/blob/master/test/com/github/nobodxbodon/zhconverter/%E7%AE%80%E7%B9%81%E8%BD%AC%E6%8D%A2%E6%B5%8B%E8%AF%95%E7%B1%BB.java 代码定有可改进之处, 欢迎提 issue/PR Java 应该在 8 之前就支持 Unicode 命名了 另外, 我们还汉化了 Junit4 接口: https://github.com/program-in-chinese/junit4_in_chinese |
32
passerbytiny 2018-08-17 13:36:20 +08:00 1
凡是底层 unicode 的,变量名、方法名这种名称性的东西,都可以用中文,以及任何 unicode 范围内的文字。
java 最晚 1.4 版本的时候,就支持中文变量名。但是编码规范第一条就是:不要用中文。 我现在 junit 方法名,当分支方法特别多,用英文方法名又长又不直观的时候,回用中文方法名。 |
33
shihunyewu 2018-08-17 13:37:44 +08:00
还可以
|
34
xuanwu 2018-08-17 13:41:26 +08:00
对了, 请用最新的 0.0.5 版, 改正了这个 bug: https://github.com/nobodxbodon/zhconverter/issues/5
|
35
Lighfer 2018-08-17 13:45:19 +08:00 4
不支持中文命名,但是在业务性强的系统中,对于实体类和一些常量(仅限实体类、常量)还是推荐使用的,否则很多名词用英语很难表达清楚,关键是换个人来看这代码,看到统一串英文不一定能和中文环境下的名次对上号。
比如我们开发的一个系统中,有大量这样的名词: 1. 决定判决情况 2. 判决情况 3. 历次减刑情况 4. 刑罚执行检查档案审查情况 ... 这些字段和其他系统是直接相关的(我们这个是辅助系统), 而且随着这个系统支持的业务范围不断的扩大,如果全都使用英文(缩写),维护起来简直就是灾难。 |
37
grewer 2018-08-17 13:52:53 +08:00
我还见过 cs, js, css 都是用中文的,其实都一样,但是打字是真的麻烦
|
38
learnshare 2018-08-17 13:55:14 +08:00
易语言还是挺好的,在英文普遍不好的环境下
|
39
li1215101 2018-08-17 14:02:24 +08:00
|
40
gnaggnoyil 2018-08-17 14:05:30 +08:00
所以简繁转换你们为什么不用 OpenCC...
|
41
easylee 2018-08-17 14:11:24 +08:00
代码里写中文没意义,那么多中文方法名、类名还没英文容易记住......
我觉得最重要的是社区环境,易语言好就好在他的社区环境是中文,手册也是中文。 前人遇见的问题后人再来检索方便许多,对外语不熟悉的人群没有语言障碍。 |
42
xuanwu 2018-08-17 14:26:13 +08:00
@zsdroid 多谢演示. 这是我们尝试过中文命名的编程语言列表: https://www.v2ex.com/t/476999#reply0
|
43
DixCouleur 2018-08-17 14:29:00 +08:00 via Android
认识个写 VN.NET ,愣是用出了易语言的感觉
|
44
anyele 2018-08-17 14:38:38 +08:00
怎么智能提示呢
|
45
zonyitoo 2018-08-17 14:44:54 +08:00
从代码质量可以看出来,坚持用中文编程的人的编码水平是什么样的
|
46
xuanwu 2018-08-17 14:47:46 +08:00
@anyele 类似, 先输入第一个汉字.
github 讨论组里有童鞋之前实现了输入法和 vscode 集成(JavaScript): https://github.com/program-in-chinese/overview/issues/11#issuecomment-320431936 更近的实现是针对中文版 Typescript 的输入法集成(也是 vscode): https://github.com/program-in-chinese/overview/issues/53#issuecomment-360483892 |
49
xuanwu 2018-08-17 15:01:51 +08:00
@samples 没事. 当时个人打算也是抛砖引玉. 期待更多更实用的中文 API 出现.
再说一声, 0.0.5 版还是有点改进的. 欢迎多提意见建议. |
53
xuanwu 2018-08-17 15:06:26 +08:00
|
54
samples OP @xuanwu 找到了这个最新版了,一开始引用的 maven,按 demo 怎么也找不到 ZHConverter 看了下源码才知道中文命名的
|
55
realpg 2018-08-17 15:09:16 +08:00
@Lighfer #35
又一个给司法开发过系统的啊 握爪 我曾经就纠结过一个重要统计字段怎么去命名: “已在非本监区但不是社会医院住院超过 7 天不超过 30 天的药品使用总金额” 后来这个变量被我命名为 var009 注释看文档第 XXX 页 |
57
s546360316 2018-08-17 15:16:46 +08:00
没毛病,这叫应对中国国情做出的改变,要想学习
|
58
imikay 2018-08-17 15:33:56 +08:00
可读性还挺好
|
59
Lighfer 2018-08-17 15:49:30 +08:00 1
@realpg 这种强业务性的东西,如果全用英文来表达的话,过段时间自己可能就看不懂了,更何况是以后维护换个人来看。所以还是需要具体问题具体分析,不推荐使用中文,但是必要的时候该用还是得用。
|
60
kaedea 2018-08-17 15:50:37 +08:00 via Android
长见识
|
61
ala2008 2018-08-17 16:43:44 +08:00
脑子转不过来。。
|
62
twotiger 2018-08-17 17:26:29 +08:00
我知道 python 和 javascript 都可以支持中文变量,原来 java 也可以啊,挺好玩的
|
63
metrxqin 2018-08-17 17:31:17 +08:00
“已在非本监区但不是社会医院住院超过 7 天不超过 30 天的药品使用总金额”,此时应该发明新的概念名词。
如果没有人发明 “电脑”这个名词,我们必须像这样描述“ CPU 执行运算,内存辅以贮藏数据的,通过各种外围设备完成人机交互的电子设备”。 |
65
vindurriel 2018-08-17 17:38:35 +08:00 via iPhone
const 和 enum 之类的比较适合 比如 八荣八耻 四个自信 啥的 翻译起来老费劲 比用拼音强 variable 就算了 有一种听外企白领讲洋泾浜的感觉
|
66
rockyou12 2018-08-17 17:41:03 +08:00
@metrxqin 想法很美,但实际业务这种玩意可能几十几百个,各个都要发明不是成语言学家了,而且后面维护代码的人要怎么去理解你发明的名称,去查你编的字典嘛?到最后也还是成了查文档、看注释算球
|
68
Lighfer 2018-08-17 17:55:51 +08:00
@metrxqin 这种和业务强相关的情况不赞成发明一些新的名词来作解释,量是一个问题,更关键的是无法直接体现出业务方面的东西,而对于后续的维护、扩展来说,如果一个变量 /字段 的业务相关性不够清晰明了的话,会需要花更多的时间来明确,甚至可能到最后都弄错了,而且随着时间的的推移、人员的替换,出现错误的概率会不断升高。
|
69
dhssingle 2018-08-17 18:01:31 +08:00
几年前在 CSDN 上看到的,全中文编程
https://bbs.csdn.net/topics/380159364 感受一下 ``` 遍历器<登录信息>.计数遍历(_详细信息集合).从(0).到(_详细信息集合.长度()).每隔(1).执行((当前行索引, 登陆信息) => { 判断.如果是(XXX).则(() => { 判断.如果是(YYY).则(() => { 表格.行(当前行索引).背景色设为(Color.Gray); }); }).否则(() => { 判断.如果是(ZZZ).则(() => { 判断.如果是(KKK).则(() => { 表格.行(当前行索引).背景色设为(Color.Gray); }); }); }); }); ``` |
70
RqPS6rhmP3Nyn3Tm 2018-08-17 18:46:20 +08:00
只要看得懂,用 emoji 我的觉得 OK
|
71
MonoLogueChi 2018-08-17 19:35:36 +08:00 via Android
只要编译器不报错就行,用户不会关心你的变量名是啥
|
72
codehz 2018-08-17 22:03:36 +08:00
我记得有一种混淆技术就是直接把标识符替换成汉字(特别是那些在扩展区的汉字),当时很多工具都不支持处理这样的 class 文件(当然现在都支持了,就没啥用了)
|
73
blanu 2018-08-17 23:29:52 +08:00 via iPhone
我只能说,无感,不支持也不反对
|
74
xuanwu 2018-08-18 01:05:58 +08:00
@Lighfer @realpg @vindurriel 同意越是业务性强的部分中文命名越有优势. 个人实践过程( https://www.v2ex.com/t/477109 )中, 多数变量或多或少带有业务语义.
个人感觉, 与业务语义无关的变量名(或者部分)多数和语言 /框架本身相关, 包括很多核心类中的术语(如 logger, collections, controller 等等), 这些经常一时想不到合适的对应中文. 最近开始的这个项目就是为了辅助解决这个问题: https://zhuanlan.zhihu.com/p/42100391 这篇在纯算法中用中文命名, 个人认为并非一无是处: https://zhuanlan.zhihu.com/p/33850923 |
75
applehater 2018-08-18 01:17:16 +08:00
@bravecarrot 不知道俄罗斯人用西里尔字母写代码的多不多
|
76
xuanwu 2018-08-18 01:59:04 +08:00 1
@applehater @li1215101 这个 2017 年的 quora 答案( http://qr.ae/TUN8ea )提到西门子(德)/爱立信(瑞典)内部有尽量用母语命名的 C/C++项目. 以及布拉格看到的一本编程书也是用母语命名.
中文命名只是母语命名的一种. 最初在编程语言中添加支持 Unicode 的功能, 也应该有各个非英语母语国家开发者的推动力量. |
77
leido 2018-08-18 02:31:58 +08:00 via Android
少见多怪,日本人经常这样干
|
78
xuanwu 2018-08-18 04:31:29 +08:00
@leido 请问可以分享一下项目细节吗? 之前也想探寻这样的开源项目, 但在很有限的和日本开发者的交流里, 都提到多数开发者还是用英语命名. 即使"抚子"日语编程语言的作者, 最后还是用了英文命名.
|
79
wolfie 2018-08-18 09:28:32 +08:00
上次项目经理调试接口,返回参数很长而且他英文不好,然后就把字段全部改成中文了。
|
80
jadeity 2018-08-18 09:30:46 +08:00
体会到了母语英语国家的人是真的好理解代码
|
81
AntiGameZ 2018-08-18 11:28:36 +08:00
之前做一些特定行业的项目,专有名词特别多,而且都是那种普通人一眼看上去完全不知道什么意思的名词。但是考虑到和客户更好的沟通,又不能忽视这些名词的存在,英文命名需要纠结很久并且基本上不可能达到 100%准确翻译,回头客户那边看到这些变量还得解释好久。
遂弄了个示例代码,直接使用中文用做变量名,个人体验良好,程序也没有任何问题。 奈何甲方也是程序员出生,看到源代码第一时间就怒了,强烈要求改回英文名…… |
82
idtaanlcoe 2018-08-18 11:41:45 +08:00 via Android
难受
|
83
leido 2018-08-18 11:47:23 +08:00 via Android 2
@xuanwu 没记错的话,日本开发 Java 用罗马音做方法名,假名做变量名(可能记反),所以对日外包要求日语 N2
|
84
xuanwu 2018-08-18 12:49:40 +08:00 via Android
@AntiGameZ 呵呵 希望随着中文命名的逐渐成熟和普及 包括编码 /命名规范的一致 这样的落花有意流水无情情况会少一些
|
85
NoDocCat 2018-08-18 13:31:16 +08:00
好的, 我注意, 不用汉字了.
下次写代码, 我用日文怎么样? 或者 Emoji 表情, 你更喜欢哪一个? |
86
fuyufjh 2018-08-19 10:16:28 +08:00 via Android
反对在代码中用中文,尤其是开源项目。如果做给自己用的,您随意。要是做给别人用的,为什么不尽量多给一些人用呢?
英语是个包容度很高的语言,对于非 native speaker,你只要用最简单的单词语法就好了,大家都会接受的 |
87
Kyle18Tang 2018-08-19 10:33:58 +08:00 1
@fly9i 写代码的中文输入法标点可以设置为英文的
|
88
xuanwu 2018-08-19 15:28:44 +08:00
@fuyufjh
库 /API 使用什么语言命名应是库开发者的选择. 详请见"中文编程"知乎专栏"Python3 选择支持非 ASCII 码标识符的缘由"一文. 另有"对在代码中使用中文命名的质疑与回应"中"不利于非中文编程者贡献"一节 |
89
fuyufjh 2018-08-20 11:34:34 +08:00
@xuanwu
1. 语言本身有义务支持 unicode,但这和鼓励是两码事。比如,你可以把某个函数命名为 `AN_AWESOME_FUNCTION`,编译器不会 warning,然而别人会指责你:这样不符合 convention 2. 结巴分词这种特例就不要拿出来说了,绝大多数开源项目都是和语言无关的。我开源的目的也不是“吸引外国贡献者”,我只是希望这个代码能帮到更多的人 |
90
xuanwu 2018-08-20 13:48:53 +08:00
@fuyufjh
> 语言本身有义务支持 unicode,但这和鼓励是两码事 之前在 Python 官方文档翻译组中建议把中文版的代码中文化, Doc-SIG 的日本翻译组长也有类似回应: 'I think "enabling" to do it and "encouraging" to do it have different bar.' 个人认为这是见仁见智. 感觉这个说法也适用于不少其他的编程语言功能特性. > 你可以把某个函数命名为 `AN_AWESOME_FUNCTION` 我们的出发点是增强代码可读性, 因此会避免使用此类违背可读性的命名方式. 如果中文命名比起相对应的英文命名明显更不可读, 在个人体验中, 更多的情况是由于中文命名尚有改进空间. 至于 convention, 现今的代码风格规范基本都源于英语为母语的公司 /开发者. 罔顾具体使用环境而视非英文命名为禁区, 个人认为是固步自封. > 绝大多数开源项目都是和语言无关的。我开源的目的也不是“吸引外国贡献者”,我只是希望这个代码能帮到更多的人 在上文中也提到这与项目目的和作者初衷有关. 从项目总量上来说, 闭源项目远多于开源的, 单人的远多于多人的, 这是个人的估计. 闭源 /单人的项目, 也许更适合中文命名. 至于开源项目, 就像 PEP 3131 提到 API 命名的问题, 就由创作者来自行选择吧. |