V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  xuanwu  ›  全部回复第 19 页 / 共 33 页
回复总数  654
1 ... 15  16  17  18  19  20  21  22  23  24 ... 33  
2018-12-18 08:38:49 +08:00
回复了 xuanwu 创建的主题 程序员 在代码中推广中文命名对中国开源软件的意义
@junmoxiao
@Kaiv2 见#38

@Rheinmetal 这帖的中心是中文命名, 也就是当下就可以在市面流行的大多数编程语言环境中使用的(因为它们都支持 Unicode 命名).
关于用户人数问题, #10 已有具体数据.
再重复一下, 会英语不意味着必须在代码中用英文命名. 母语命名对代码清晰度和可维护性的提高在'Python3 选择支持非 ASCII 码标识符的缘由'中也有印证.

@falcon05
> 那你说为了变量命名?主流语言都已经支持了母语命名变量了,那你这个中文编程不更加没有意义了?

我的题目就叫"在代码中推广中文命名". 你是不是进错门了?
2018-12-18 08:29:05 +08:00
回复了 xuanwu 创建的主题 程序员 在代码中推广中文命名对中国开源软件的意义
@dremy 捷径的确是一种专用的中文编程环境了. 相对于一个通用型的系统编程语言, 像这样的分领域的中文编程环境 /框架感觉是更好的突破口.
在通用的中文编程语言成熟之前, 在现有的编程语言环境中使用中文命名是实用且对改进代码质量 /降低维护量见效快的方法. 而且, 在实现这种通用的中文编程语言 /环境时在代码中使用中文命名也是非常合理的, 因为毕竟用户 /开发者都会中文. 在知乎专栏的"中文编程兴起的可能途径"一文中也提及了.

@gzf6 参考"附上中文注释就够了"一节:

答:关于注释和命名, 在个人之前的工作环境里, 是第一次接触正式的可读性审核. 有个印象是, 审核员会尽量倾向于减少注释量, 而强调代码本身的可读性(其中最重要的因素之一就是命名). 审核里会不时出现”这个方法名已经 self-explaining 了,注释就不用了”之类的评语. 虽然没有当面确认过, 但写注释和维护注释的额外工作量应该也是这种倾向的动因之一.
2018-12-18 08:19:35 +08:00
回复了 xuanwu 创建的主题 程序员 在代码中推广中文命名对中国开源软件的意义
@falcon05 学编程只要记下关键字和语法就够了吗? 上次还看到帖子说学一门语言就要为它核心库的 API 写几个笔记, 学到现在积累了几十本.

参考"没有好处"一节. 摘要:
"如果认为 API 以及内部方法 /变量的命名无关紧要. 有不少可读性相关的文章对这个误区进行了阐述, 比如 Writing for Readability
母语命名对代码清晰度和可维护性的提高在'Python3 选择支持非 ASCII 码标识符的缘由'中也有印证."
2018-12-18 08:10:40 +08:00
回复了 xuanwu 创建的主题 程序员 在代码中推广中文命名对中国开源软件的意义
@kltt22 中文命名当然在少儿编程教育以及辅助传统学科教育上有优势, 但将中文命名在现有商用和开源项目中使用也极有现实意义. 就像 #18 @AntiGameZ 的实例.
之前站里也看到各种实践, 只不过还多数是孤岛状态. 这些中文命名的实践者汇聚起来, 逐渐就可以有力量实现一些实用的开源项目.
2018-12-18 07:50:34 +08:00
回复了 xuanwu 创建的主题 程序员 在代码中推广中文命名对中国开源软件的意义
@tamlok 关于编程效率问题. 参考"中文输入太慢, 降低开发效率"一节:

答: 首先, 如果考虑推敲命名的时间, 对母语是中文的程序员, 中文命名应该比能够更恰当更快, 综合各种因素哪种方式写代码更快还待实践证实. IDE 工具的辅助也可能使输入效率提升甚至超过英文输入: "用实例来看中文编程代码输入效率问题". 另外, 由于命名可读性的提升, 可以省去更多注释.

更不可忽视的是, 鉴于开发过程在整个软件生存周期中只占一小部分, 其他的部分(设计,调试,测试,维护)从良好的可读性获取的利远大于开发效率可能降低的弊. 设计时可以直接由业务描述(中文的)直接映射到构架 /接口的命名(省去了英文翻译的一步), 调试 /测试 /维护可以因为代码可读性的提高而减低理解和学习代码的成本.

为避免频繁切换中英文: 为了在输入中文的同时不用切换就可以输入特殊符号(){};等等, 搜狗输入法支持”中文时使用英文标点”
2018-12-18 07:41:28 +08:00
回复了 xuanwu 创建的主题 程序员 在代码中推广中文命名对中国开源软件的意义
@defel 可以看看站里有多少抱怨命名难的帖子, 想象一下使用中文命名可以省去的麻烦(即便是个人项目). 也许会给你更多动力

@binux 我的背景在 "中文编程知乎专栏一岁了-我为什么投身于普及用中文编程"一帖. 一些出来发表反对意见的背景我也很有兴趣了解

@eugenewangfw
@sutra 参考"不利于非中文编程者贡献"一节. 有详述. 摘要如下:

"当然希望看到更多的国外开发者参与国人初创的项目. 不过,除去预测得到是否会有国外开发者参与的情况, 剩下的自己发起的项目, 首要考虑的是对自己的开发和维护最有利的编程方式. 因为在可以预见的将来, 我自己会是最主要的贡献者. 如果我自己的开发和维护成本随着项目变大而变得不可持续, 那么在项目成型和能够吸引其他开发者参与之前可能就夭折了. 个人的感觉是用中文命名是我更熟悉和容易的方式.

osc 上一些即使很热火的开源框架, 比如 JFinal, 大多只有极少的其他开发者贡献. 个人认为一个很重要的原因, 就是代码阅读的难度, 而英文命名是一个额外的障碍. 也许对于开发者本人来说, 随着项目的开展, 一些开始时有些别扭的英文命名自己也习惯了, 但是对于刚拿到整个代码的新开发者, 任何不妥当的英文命名都会导致迷惑和时间的浪费. 为了吸引理论上的国外开发者参与, 而不优先选择对身边的中文开发者(包括自己)阅读代码有利的编程方式, 个人认为这种思路是很值得商榷和分情况探讨的."

@msg7086
> 你是牺牲了说英语的人口(包括那些有学力财力以至于能把英语学好,很可能是进入过高等教育机构学习的人)

前面说过了, 无论英语有多好, 只要母语是中文, 用于代码命名就有可读性优势

> 是不是还需要精通英语和中文的资深开发者来翻译和维护?

起初当然要. 就像古代国外将中国文献翻译成外文一样. 随着中文命名的推广, 国内开源软件也会加速发展. 之后中文化程度会越来越高, 包括框架 API 等等. 逐渐国外的工具 /框架会被类似功能的中文工具替代, 在这过程中需要翻译学习的内容也会越来越少.

> 连高中和大学课程都无法完成的人是如何做到编写文档、做测试、追加相似功能的?

小学生会玩游戏, 就会测试.

> 编程的门槛我觉得从来不是语言水平,而是编程水平

请参考"没有好处"一节. 摘要:
"如果认为 API 以及内部方法 /变量的命名无关紧要. 有不少可读性相关的文章对这个误区进行了阐述, 比如 Writing for Readability
母语命名对代码清晰度和可维护性的提高在'Python3 选择支持非 ASCII 码标识符的缘由'中也有印证."

> 为什么还要局限于物理上的面对面交流

可以!=最优. 就像, I guess we can discuss this in English, but why do we do Chinese instead?

> 中文编程从来就不是一种排除非中文人口参与的手段

绝大多数国人的母语都是中文. 什么叫"非中文人口"?
2018-12-18 03:59:13 +08:00
回复了 xuanwu 创建的主题 程序员 在代码中推广中文命名对中国开源软件的意义
@e9e499d78f 为在代码中使用中文提供辅助的 IDE 插件当然是一个重要部分. 可以参考日本 2017 年的论文"ローマ字入力時の日本語識別子入力補完プラグインの 開発"就专门开发了辅助插件以改进 IDE 对输入日语命名的支持. 它的摘要很有参考意义, 机翻如下:

"在这项研究中,我们开发了一个插件,可以在输入日语标识符时减轻程序员的负担。近年来软件开发项目的复杂性增加了维护软件的时间成本,并且提高源代码的可读性以降低成本是很重要的。有几个报告说,在日语源代码中编写变量和函数的标识符名称是有用的,这是提高源代码可读性的一种方法。然而,当以日语输入标识符时,存在字符转换麻烦且输入补充无效的问题,并且发生对编程器的输入负担。在这项研究中,我们开发了一个插件,通过使用日语标识符的增量搜索甚至使用罗马字符输入实现输入完成,使用 Migemo 的两种方法使用日语增量搜索工具和使用形态分析的方法尝试解决问题。"

@msg7086
楼上已述, 会英语不意味着必须在代码中用英文命名, "会英语因此我要始终在代码中用英文命名"是一个非常大的误区.

> 中国有能力读写英语的人数将越来越接近中文母语使用者

中文的母语地位决定了任何第二语言都很难达到中文水平. 中文命名对代码的可读性提高是可以立竿见影的, 为何不在现在开始呢?

> 有能力理解程序代码的人,却连英语都不会,这个群体到底又有多大呢

无论有多大, 中文命名可以极大降低这个群体参与开源项目的门槛.

> 不懂英语的人,他的水平能提升到什么程度

随着中文命名的推广, 会有越来越多纯中文接口的框架和工具, 以及使用中文命名的编程教程, 英文在编程学习中的作用会随之下降.

> 软件开发可不是靠人口战术的。一个项目里五百个农民伯伯,另一个项目里十个硕博士,你说前者会赢反正我是不信的。

与商业项目类似, 开源项目需要各个方面人才. 比如文档 /测试 /追加相似功能等等对开发经验要求相对低于一开始的架构搭建. 中文命名可以极大挖掘国内人力资源优势, 与顶楼实例类似, 鼓励更多原本的纯用户加入项目维护的队伍中.

> 另外你为什么会觉得集中在一个国家是一项优势?

面对面的交流效率永远高于其他形式.
2018-12-18 03:20:11 +08:00
回复了 xuanwu 创建的主题 程序员 在代码中推广中文命名对中国开源软件的意义
@Yvette
首先, 开发者英文过关当然对获取参考资料和与国外社区交流有益, 但并不意味着开源项目中的代码必须用英文命名.

在代码中使用中文命名和在日常交流中使用中文没有本质区别. 同是母语为中文的开发者发帖交流也是用中文, 为何不用英文呢? 所谓母语的优势, 就在于, 即使第二语言"过了关", 在理解运用上, 也始终是母语的交流成本更低. 同理, 母语命名可以提升代码可读性, 也减少维护成本.

使用中文命名可以让更多的精力投入到对代码本身的改进, 省去命名不当带来的维护代价和合作障碍. 如顶楼实例, 使用中文命名也可以让更多原本的纯用户参与到开发中来.

创新的中心在英文世界? 即便现在是, 中文命名也可以加速开源软件在中国的壮大, 从而加速扭转这一现状.
2018-12-18 03:03:07 +08:00
回复了 xuanwu 创建的主题 程序员 在代码中推广中文命名对中国开源软件的意义
@sagaxu
> 易语言不是推了十几年了吗?你不也布道过一段时间了?

呵呵, 把我和易语言相提并论真是高抬我了. 易语言作为中文编程的一个标杆, 很可惜在最佳推广期被各种负面材料所困, 也导致它被边缘化. 现在各个领域已经基本被英文编程语言工具垄断的情况下, 好在早已经有其他各国的开发者推动了对 Unicode 命名的支持. 但大多数新手却仍然对中文命名视作禁区, 我能做的首先就是让更多人知道中文命名的可行性和优势. 以我一个草根在一年半之前才开始推广的效果来看, 我已经很满意了.

> 为何大多数人身体和嘴巴都反对呢

从我专栏的关注来看, 看到的是越来越多业界和大学学生对这个问题的兴趣. 从我帖子的支持程度来看, 也是有越来越多人默默支持.

> 我觉得你可以动手试试,去几家小公司负责技术,然后要求用中文

不用我动手, 已经有公司在实践了. 早的有那个 2012 年的 C#帖, 最近也在站里看到类似帖子. 这样的实践肯定会越来越多.

> 同时 fork 汉化几个开源项目,看看是否对项目发展利大于弊。

之前尝试了 vuejs 的源码汉化开头, 就反馈来看, 也有不少支持.

> 在实践中检验,比纸上谈兵更有说服力。

我们讨论组一直在实践, 包括在开源项目中使用中文命名, 开发相关 IDE 插件, 实验性的中文语法编程语言等等.
2018-12-18 02:44:16 +08:00
回复了 xuanwu 创建的主题 程序员 在代码中推广中文命名对中国开源软件的意义
@msg7086
> 也就是说,为了让全球 20%懂中文人口中那么一小撮不专业又不太懂英语的程序员看懂程序,而把全球 80%的不懂中文的人拒之门外,这是什么精神。

英语的母语使用者: 360 – 400 million 第二语言使用者: 400 million; 作为外语使用者: 600 – 700 million, 总计算 15 亿
中文的仅仅算母语使用者: 12 亿, 而且还集中在一个国家(额外优势之一), 第二语言和外语使用者还在加速增加.

> Linux 不是用芬兰语和瑞典语写的,Nginx 也不是用俄语写的,Python 也不是用荷兰语写的

见文首链接"芬兰人 Linus,使用英语而非自己的母语来编写 Linux 代码"一节. 类似的人口基数问题.
2018-12-18 02:25:32 +08:00
回复了 xuanwu 创建的主题 程序员 在代码中推广中文命名对中国开源软件的意义
@sagaxu 请分享一下哪些组织 /个人推动了?
我倒是看到各种水文(十)数年如一日地对中文编程语言以及中文命名的抹黑, 最近的一篇影响较广的被我起底在"最近一波对中文编程(包括中文命名)的攻势"一文, 可以带引号搜索此文. 还有更没有技术含量的一篇, 我也发文反驳过:"又见套路:如果计算机是用中文编程,你能成为计算机编程专家吗?"
2018-12-18 02:12:09 +08:00
回复了 xuanwu 创建的主题 编程 [中文编程知乎专栏] 对在代码中使用中文命名的质疑与回应
@Remember 我发的帖子都是关于中文编程的, 有兴趣可以看看.
@CallMeReznov 中文编程不仅是中文编程语言. 此贴针对的是在现有的英文语法的编程语言中用中文命名
2018-12-18 02:09:22 +08:00
回复了 xuanwu 创建的主题 编程 [中文编程知乎专栏] 对在代码中使用中文命名的质疑与回应
@sagaxu
> 除了举例从未见过有人这么用

应该是你不知道而已. 国外也有大公司(西门子(德)/爱立信(瑞典))内项目用非英语的母语命名, 见文首链接的"没有先例"一节. 国内的见我另一个"你们在怎样的项目中使用过中文命名"的回帖.

> 现在的社会英文水平,比二十几年前高太多了,更加没有动力汉化变量名。

中文水平超过英文水平的仍占绝大多数. 母语命名在代码可读性上的优势仍然明显.

> 别人在国际化,在走出去,代码汉化是怕外国人窃取机密么?

使用中文命名首先是为了方便自身维护和扩大参与度. 你既然是从我那个"在代码中推广中文命名对中国开源软件的意义"帖子过来的就应该看到了这点.
2018-12-18 02:02:14 +08:00
回复了 xuanwu 创建的主题 程序员 在代码中推广中文命名对中国开源软件的意义
@sagaxu 拼音+注释在可读性上, 应该不会比直接用中文命名好, 而且维护量大的多. 拼音本身的歧义多, 注释方面, 详见文首链接的"附上中文注释就够了"一节.

> 作为一个合格的初中毕业生,英文变量名应该不会成为障碍。不是只有程序员看得懂英语。

无论英语程度如何, 中文作为母语的优势在代码可读性上总有体现. 见文首链接的"没有好处"一节, 更不用说中文命名在专业术语方面的优势.
2018-12-18 01:35:16 +08:00
回复了 xuanwu 创建的主题 编程 [中文编程知乎专栏] 对在代码中使用中文命名的质疑与回应
@wdv2ly 问的好. 见"在代码中推广中文命名对中国开源软件的意义": https://www.v2ex.com/t/518452

@ShineSmile 这里的小标题都是对中文命名质疑的理由, 文中有对每一条的分析和回应.

@whileFalse 无论英文有多好, 处理专业术语时始终有母语优势, 见 https://www.v2ex.com/t/477109#r_5991605
你说的两个问题都会随着中文命名的逐渐普及而转变
2018-12-17 11:41:55 +08:00
回复了 freedom1988 创建的主题 程序员 寻找一起写书的伙伴!
可以用中文命名的示例代码吗? 比如:
https://i.imgur.com/cI8lnll.png
@xw900812 呵呵 你确定翻译的是 syntax 部分? 说了这是用于演示效果, 功能实现之后将基于现在的 77 万条英汉词典数据

@dremy 多谢指出. 如果你看了文章后部的代码部分, 就可以看到是用于演示用的字典翻译出了错. 英汉词典数据是正确的(如下). 功能实现之后应该不会有此问题:
https://i.imgur.com/Jkjfozm.png
2018-12-14 02:56:02 +08:00
回复了 ns2250225 创建的主题 Python Python 类里面的方法太多写得太长,大家是怎样处理的啊 🎏
举些例子看看 最好是从命名就大概知道含义的
2018-12-12 14:13:02 +08:00
回复了 YuansMine 创建的主题 程序员 请教各位关于语言学习方面的问题
@likuku 分两部分说. 1) 封装成同一个英文 API, 包括参数等等 2) 将这个英文 API 改为中文命名.
前者肯定可以减少楼主说的重复记忆同类 API 工作量. 后者由于母语优势会更有可读性, 当然程度因人而异.
1 ... 15  16  17  18  19  20  21  22  23  24 ... 33  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2763 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 24ms · UTC 06:35 · PVG 14:35 · LAX 23:35 · JFK 02:35
Developed with CodeLauncher
♥ Do have faith in what you're doing.