[中文编程知乎专栏] 在国内原创开源项目中使用中文命名的意义与方式

2018-12-23 06:11:13 +08:00
 xuanwu

在国内原创开源项目中使用中文命名的意义与方式

4262 次点击
所在节点    推广
40 条回复
edk24
2018-12-23 22:05:03 +08:00
中文编程在这个年代真没什么存在的意义
1.要么代码用中文, 编译 /运行时翻译成英文代码. 毫无意义, 反而会误导很多人(中文 PHP 了解一下)
2.要么像易语言, 基于 c++编写的编译器(启动->c++引导启动->易语言代码逻辑->结束), 支持库是其他编程语言编译的动态链接库.

`2`还有点意义, 不过现在年轻人文化水平越来越高了. 英语不再是门槛, 而且编程不是必须会英语. 在下就不会英语, 会写点 php python html js 啥的. 知道关键字的含义会拼写却不知道怎么发音是家常便饭.


代码只是给`人`阅读的, 整个编译 /运行的过程其实都是翻译. 你要把代码翻译成无数个 0 和 1 给处理器执行. 是否是中文代码根本不重要

或许这种`中文代码`编译成二进制能实现, 但你是在挑战整个计算机的基础发展和生态圈. 外国人凭什么陪你玩?
连国家可能都觉得`能做 但是没必要`


来来回回单词就那些, 真的不是很麻烦, 我想逻辑好不好才是门槛吧?
designer
2018-12-23 22:16:49 +08:00
这种观点就是爽了你自己,对别人没有任何帮助。
尊重你的观点,找到你志同道合的朋友交流。
真的不要在 V2EX 上发了。这里的人不缺那点英语基础。
mingyun
2018-12-23 22:54:23 +08:00
楼主很拼
xuanwu
2018-12-24 01:22:38 +08:00
@edk24
> 在下就不会英语, 会写点 php python html js 啥的. 知道关键字的含义会拼写却不知道怎么发音是家常便饭

那么你的标识符命名是用的拼音还是 a/b/c?

> 代码只是给`人`阅读的, 整个编译 /运行的过程其实都是翻译. 你要把代码翻译成无数个 0 和 1 给处理器执行. 是否是中文代码根本不重要

请搜一下"代码可读性"
Mystery0
2018-12-24 01:26:13 +08:00
@laike9m 求问怎么 block
Trumeet
2018-12-24 06:26:35 +08:00
中文代码可读性就好了吗?

代码的可读是基于团队有统一、严格遵循的代码风格,不瞎写,多谢注释和说明,可读性才会高。而不是把命名都改成中文,中英文混搭不难受吗?
xuanwu
2018-12-24 07:06:02 +08:00
@Trumeet
> 代码的可读是基于团队有统一、严格遵循的代码风格,不瞎写,多谢注释和说明,可读性才会高

这些与用中文命名不矛盾

如果一定要作个比较, 请参考这里的两种方式: https://www.v2ex.com/t/520017#r_6644307
binaryify
2018-12-24 09:00:19 +08:00
自嗨型项目
berumotto
2018-12-24 09:08:11 +08:00
建议你去看下心理医生:)
Trumeet
2018-12-24 10:08:09 +08:00
(我不想无脑喷,只是想客观考虑一下使用中文命名的可行性、必要性、成本和收益)。
# 可行性
当然可行,这还用说?可以试试用拉丁写(倒是没试过 逃)。

# 必要性
英文是通用语言,程序关键词都是英文。应该让中国程序员都学会英文,而不是让世界程序员都学会中文,更不应该把代码硬生生改成中文命名,我们需要和世界接轨才行。
21 世纪了,英文在中国已经普及,用英文写程式是很正常的事情(用中文我倒没见过几个)。楼主花点时间 ”入门“ 下小学英语就可以。

# 必要性
和必要性部分一样,绝大多数人都可以无障碍地用英文命名,所以使用中文命名完全没有必要且耽误时间(万一语言不支持 / 编码问题?)

# 成本和收益
收益固然是有的,但不和成本相比都是耍流氓。
首先先说下成本。
对于已有项目,需要进行重构。对于新项目,需要程序员改变以前的习惯,强制接受新的方式,并不是一件容易的事情。而且对于我这种强迫症来说,中英文混在一起觉得非常难受。最重要的,这些代码拿给老外怎么办?
扯远了,一句话就是付出太大(大家伙都用英文命名好好的,突然改成中文谁也不好接受)。
再看看收益。
这么做除了对少部分不怎么懂英文的初级程序员来说会有助于他们理解,还有什么用?

不要把有限的时间浪费再无意义的折腾上。
laike9m
2018-12-24 10:10:39 +08:00
@Mystery0 点进用户主页就能看到
xuanwu
2018-12-24 11:36:29 +08:00
@Trumeet
> 绝大多数人都可以无障碍地用英文命名

如果是的话, 为何还有 codelf 这样的工具呢? 今天还刚看到它的推广文章: http://www.sohu.com/a/283936886_115128 里面的原句:

"随着项目越来越复杂,变量和函数数量越来越多,英语水平貌似也 hold 不住了。虽然每个编程语言都有各种命名规范,但是也不能解决所有的问题。每个程序员或多或少都在写代码的时候为变量和函数命名苦恼过!"

麻烦你先去 diss 它一下.
fyibmsd
2018-12-24 11:39:45 +08:00
@Mystery0 点头像进去 然后按钮 block
Trumeet
2018-12-24 12:10:00 +08:00
@xuanwu 谁也不能保证百分之百会所有的词。偶尔碰到不会的词用两下就记住了,何必费力不讨好地全篇换中文?一时方便,为以后的错误埋下伏笔
frittle
2018-12-24 12:19:05 +08:00
普及英语比推广中文编程更实在,就算将来你能达到你的目标,也只是某种形式的锁国、闭门造车,把国内编程相关的人员困在中文编程的环境下,满足于用中文编程,怎么和国际接轨交流?
xuanwu
2018-12-24 14:23:33 +08:00
@Trumeet 使用中文命名可以获得更长远的代码可读性

@frittle 顶楼文章后半篇都在阐述国际合作问题
Mystery0
2018-12-24 18:25:57 +08:00
@laike9m @fyibmsd 谢谢了
Trumeet
2018-12-25 00:55:39 +08:00
@xuanwu 外国人读怎么办?不自己学会英语,反而把代码改成中文才是下策
xuanwu
2018-12-25 02:52:29 +08:00
@Trumeet 顶楼文章后半篇都在阐述国际合作问题
statfall
2018-12-25 22:10:16 +08:00
@xuanwu 我觉得不如开发个拼音转英文的插件 实在 一点拙见

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

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

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

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

© 2021 V2EX