知乎专栏于2017年11月9日开通, 之前只想写些中规中矩的年度小结, 但感觉有些东西不吐不快, 权当人生阶段报告吧.
最早对编程的接触在初中, 同学帮他家里玻璃厂写了个优化切割率的程序, 我看了点源码. 高中时想自学C未果. 00年大学志愿选了听起来和计算机很接近的信息工程专业, 当时属于软硬兼修但偏电子方面. 大一开始学C, 选修了单片机/汇编等等, 之后课程中计算机基础知识(尤其体系/系统方面)比较欠缺. 毕业后在上海工作四年, 跟着不少前辈学习, 对软件工程实践有了点亲身体会. 2008年抱着对AI的憧憬来美国读硕. 英语从小学之前家里开始教, 之前这一路上英语算是相对强项.
硕士期间, 补一些计算机基础课之外, 修了一些AI/自然语言处理/编译器入门相关课程, 在学校的机器人实验室做了点工作. 毕业后留美做了网络开发软件工程师, 业余开始做一些开源项目(浏览器插件). 2014年才在岗位中第一次参与可读性审核, 在国外公司参与不同国家程序员的可读性互评, 才发现母语的优势(如一群华人和东欧人讨论英语选词的时候). 2015年开始一系列中文编程相关尝试, 见前文小结此不赘述.
2015年中有了大女儿, 2016年在出国八年后第一次回国探亲. 2017年中, 二女儿尚未出生, 在国外听闻奶奶去世, 同月在Github创建中文编程讨论组. 之后的绝大多数业余时间都用在相关开发讨论中. 想来算是有生以来最投入的一个业余爱好了. 对于中文编程的广泛社会效益在其他专栏文章已有阐述, 这里说说对我个人的益处.
总之, 虽然困难重重, 但有足够理由坚持下去.
104
brickxu 2018-11-02 13:45:30 +08:00
@LemonCoo1 啊,啊啊,阿斯顿,八十多,嘎啊玩儿,阿什利看得见噶,烫烫烫烫。。。。。这些都可以用,只要拍下键盘就出来变量名了。。
|
106
xuanwu OP @tamlok 多谢. 之前错以为没有这样的中文编程入门书籍. 好像比之前发现的那本日语命名的日文编程译著更早: https://www.v2ex.com/t/498973#;
刚略看了一下, 感觉太侧重算法导致代码中命名优势体现的不大明显. 个人更倾向于入门书中的示例以更接近日常生活的题材为好, 之前试写的 Java 上手: https://github.com/program-in-chinese/java_in_hours_chn |
107
Greenm 2018-11-02 13:51:57 +08:00
|
108
zilan 2018-11-02 13:53:39 +08:00 1
看了专栏中的代码,2 个字,智障
|
109
kernel 2018-11-02 14:01:52 +08:00 2
天啊,中文编程!比中医粉还智障,搞技术就别强行爱国了
|
112
xuanwu OP |
113
Registering 2018-11-02 14:21:49 +08:00
MDZZ
|
114
lingll 2018-11-02 14:24:29 +08:00
中文编程就像数学公式的变量非要用中文表示, 数字非要用中文字来表示一样, 我觉得
|
115
derrickT 2018-11-02 14:24:51 +08:00
先 ban 为敬,感觉作者就是来这里抬扛的,核心论点就是中文编程就是爱国,你们不用中文编程或者不喜欢不支持中文编程就是不爱国,和菊花厂一个套路,建议再学习下周小平的姿势
|
116
xuanwu OP @yulitian888 见 #112 个人短期内主要关注中文命名相关部分.
|
117
alfredsun 2018-11-02 14:34:13 +08:00
楼主弱爆了 我用的甲骨文和金文
|
118
watzds 2018-11-02 14:49:56 +08:00 via Android
这个习惯问题很多人肯定不适应。也没见什么好处,以后英语肯定会更流行,中文编程也不利于国际交流
|
119
likai 2018-11-02 14:50:45 +08:00 via Android
@absente
你是从哪里得出中文编程可以减少无用代码这个结论的? 易语言代表不了所有中文编程,就目前而言, 说他是中文编程的代表应该没什么人反对。 中文编程中除了易和 aauto,其他流派能举点例子出来么,哦,还有按键精灵这种说也能算,还有其他成气候的? 争论了这么久,你能拿出来中文编程的东西出来不?有自己设计理念,设计思想的东西,而不是汉化关键字,api 或者中文命名这种。 |
120
likai 2018-11-02 14:54:24 +08:00 via Android 1
@xuanwu 中文命名就叫中文编程了?那就不要再推广你的中文编程了,现在流行的语言几乎都支持中文命名,再怎么中文命名,该叫 python 的还是叫 python,该叫 java 的还是叫 java,
|
121
absente 2018-11-02 14:55:53 +08:00 2
@likai APL 一族的 J 了解一下,类似的有 POC -> zhuanlan.zhihu.com/p/33248556 基于 APL 风格的中文编程肯定能省去很多无用代码,我也是看过 APL 的论文才得出这个结论的,因为 1979 年的 notation as a tool of thought 这篇论文里面的 APL,基本上就是文言文的一种逻辑转述
|
122
tatelucky 2018-11-02 15:35:32 +08:00
想必阁下的输入法真好用,切换起来毫不费力
|
123
zhouwei520 2018-11-02 15:36:41 +08:00
辛苦了,我也希望中文可以发扬光大,别学英文了
|
124
xuanwu OP @likai 即使是推广中文命名也有很多工作要做.
首先是改变"编程只能用英文命名"的普遍想法. 再有是对中文命名的 IDE 支持(包括一直被诟病的输入法集成问题等等), 可参考日本 2017 年的论文"ローマ字入力時の日本語識別子入力補完プラグインの 開発"开发了辅助插件以改进 IDE 对输入日语命名的支持." |
126
wangsyi13 2018-11-02 15:48:31 +08:00 1
@absente 本来我在理性讨论,结果你这回答一点理性都没有,看你的回复,我只能说,中文编程可能有一天会有好的发展,但跟你们或者跟你没关系,你只是在阻碍中文编程的发展
|
128
type 2018-11-02 16:07:54 +08:00
有人愿意做这件事,也有人愿意用,那就行了;
工具而已,各人喜好哪种就用那种,何必在这争论。 |
129
wangsyi13 2018-11-02 16:08:31 +08:00
@trait 你说里面有多少都是没有思考就回答的?坚持自己的思想,只会 APL APL,你让一个初中以上学历的人用 APL 写一个软件容易还是用 python、java 甚至 c go 写一个软件容易?别人说适合做入门普及有错吗?到现在 APL 也只是跟 VBA 之类的一样在做特殊用途吧。你说中文编程不是只适合入门,那给反驳理由啊,一句“那你怎么不说英语,我觉得文言文天生适合编程”,这不是抬杠是什么?
|
130
trait 2018-11-02 16:11:30 +08:00 via iPhone
@wangsyi13 麻烦先去读读基本 PL 入门书再,扯什么 python java 写软件,连自己说的东西跟 PL 毛关系都没有都不知道,尬出天际。
|
131
cwx391497 2018-11-02 16:16:45 +08:00
可否详细讲讲可读性互评的中文优势,你是怎么发现的,具体发现了什么??
|
132
absente 2018-11-02 16:59:05 +08:00
|
133
zzzzzzZ 2018-11-02 16:59:14 +08:00
|
135
0x000007 2018-11-02 17:14:43 +08:00
反而对楼主家庭感兴趣,出国八年才回国一次,奶奶去世的消息还是听闻到的,不知道楼主在一个什么样的家庭环境
|
136
lardud 2018-11-02 17:29:51 +08:00 via Android
中文滚出
|
137
pixstone 2018-11-02 18:43:21 +08:00 1
中文编程的重点不是编程语言本身。 编程语言本身就几个英文单词。
初学者看不懂代码不是英文导致的,而且编程语言之上的东西,比如算法,编程语言语法。 我用中文写 Java 快排。 写一堆, 公共类,输出,加减。 你如果不知道快排你即便看懂中文字面意思你还是看不懂这一坨代码在干嘛。 再举个例子,英文原版的编译原理你看不懂,换成中文就能看懂了。不见得, 如果你能看懂中文版的,一个个单词的直接翻译英文版的也能大致看懂。 语言本身只是符号,皮像而已,你把泰勒展开式换成中文甲乙丙丁你就能看懂了么?真正要懂得的是语言承载的知识点。要降低编程门槛,易语言就足够可以了。真要普及编程,用通俗易懂的语言和文字来分享知识,就像 《 Head First 》系列图书那样。 与其“制作”新的语言,新的工具。不如写几篇通俗易懂的 Java/ Python/易语言 的入门教程。 |
138
Jzer0n 2018-11-02 19:40:19 +08:00
2015 年中有了大女儿, 2016 年在出国八年后第一次回国探亲. 2017 年中, 二女儿尚未出生, 在国外听闻奶奶去世
先不说你说的"中文编程"什么意义, "在国外听闻奶奶去世" 其实我觉得你还是继续呆国外进行你的"中文编程"的大事业吧, 不要再回来了--真的. 加油. |
139
em70 2018-11-03 00:39:36 +08:00 via Android
@absente 为什么我们数学不用汉字,而用阿拉伯数字,因为阿拉伯数字确实方便,为什么我们编程不用汉字,而用英文,因为英文编程确实方便。你不能用汉字替代外来的阿拉伯数字,同样也无法用中文替代英文编程,这是客观事实
|
140
xuanwu OP |
141
xuanwu OP @cwx391497 工作环境内交流使用英文, 可读性互评在来自各国的程序员之间进行. 华人(包括台湾地区), 日本, 乌克兰, 美国, 俄罗斯, 白俄等等. 不时会碰到推敲使用哪个英文单词 /词组的情况. 母语为英文的程序员在此类讨论中更有优势.
|
143
ioschen 2018-11-03 15:57:02 +08:00 1
@ioschen 原回复 是针对 [kslr 1 天前 via Android 发表内容的回复]
[我一直在想,为什么我会觉得中文是异端 明明对于英语来说也是普通词汇] 中文不是异端,你用习惯了 26 字母键盘,如果你用习惯偏旁键盘类的中文键盘你就不这么想呢 |
144
buhi 2018-11-05 11:08:30 +08:00 1
楼主, 你中文翻译至少也应该是基于 AST 的吧, 你现在这个基于字符串替换的是不是太 low 了一点啊, 不只是 low 的问题, 你翻译的时候不知道上下文, 会造成不准确的吧. 如果换成是有一个正经的中文解释器那样, 才算是真正的中文编程啊, 你现在这个只是中文字符串编程.
|
145
xuanwu OP @buhi
> 你中文翻译至少也应该是基于 AST 的吧 这个插件中实现基于 AST 的比较难. 之前做过 Java 源码的部分 AST 翻译: https://zhuanlan.zhihu.com/p/44536065 > 你翻译的时候不知道上下文, 会造成不准确的吧 现在是最简单的直译, 机翻方面的改进潜力肯定有 > 你现在这个只是中文字符串编程 这个项目的主要目的是使更多人看到中文命名对代码可读性的改进. 对于中文语法的编程语言, 之前有些尝试, 比如 https://www.v2ex.com/t/482519 https://www.v2ex.com/t/482717#reply8 但不是短期内的目标 |