范文健康探索娱乐情感热点
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

RFC2457Rust语言支持非ASCII码标识符引起的激辩(一)

  Everything from Python to C++ supports non-ASCII idents by default. It"s the correct behaviour. —— Graydon Hoare,Rust语言设计者
  译:"从Python到C++都默认支持非 ASCII 码标识符。这是正确的作为。"
  2018年10月31日,Rust 语言历史上最受争议的 RFC 之一在经历了将近5个月的争辩和修订后,终于圆满完成。
  684条评论,75人参与。虽未亲历,但前事不忘后事之师。此文就来回顾这个 RFC 以及那些激烈碰撞的声音。什么是非 ASCII 码标识符
  ASCII 码问世于20世纪六十年代。标准 ASCII 码只有 128 个,仅包含了英文字符与其他少量标点、运算等特殊符号。多数现今常用的编程语言在上世纪被设计出来时,设计者和使用者也大多数在英文母语国家,因此早期并不支持使用英文之外的语言文字来命名代码中的标识符。
  时至今日,有不少国内开发者还认为,在代码中必须用英文命名变量,因此代码中会出现 redEnvelope 甚至 hongbao 这样的命名。
  但实际上大多数英文编程语言早已支持使用英文之外的字符命名变量、方法、类名等等。比如 Python3 中完全可以这样写:红包金额 = 888 红包数 = 5 开销 = 红包数 * 红包金额
  苹果公司主导的 Swift 编程语言官网的手册中,也用了中文和其他符号进行命名演示:
  此文的主角,RFC#2457 就是为了让 Rust 语言也具备这一特性。RFC#2457
  2018 年六月三日 10 点 25 分(太平洋时间), PR 2457 被 pyfisch 创建,开始了这个 RFC 的审议过程。
  题目很直接:"Allow non-ASCII identifiers"——"允许非 ASCII 标识符"。在它的初稿中,在"动机"部分开篇,指出了"许多开发者的英文并不流利,使用母语命名标识符使得写和读代码更轻松。"
  更引用了 Python 语言于 2007 年的 PEP 3131:Such developers often desire to define classes and functions with names in their native languages, rather than having to come up with an (often incorrect) English translation of the concept they want to name. By using identifiers in their native language, code clarity and maintainability of the code among speakers of that language improves.
  (并不熟悉英文语言的)开发者常希望用他们的母语定义类和函数,而不是被逼着用(往往是不正确的)英文翻译来命名一个概念。通过用母语命名标识符,对同一母语的开发者来说,代码清晰度和可维护性得以改进。
  RFC 的更多篇幅包含相关的技术细节,有兴趣的可以深究。本文更关注的是 684 个评论中占大多数的对该 RFC 初衷的质疑(尤其是来自于华人开发者的)以及相应回应。风波起
  RFC 提交审议的当日下午4 点,一位 Rust 项目参与者 mark-i-m 提出了首个异议,表示(非 ASCII 码)字符难打以及有时会显示乱码。并在之后用教学经历阐释:有时学生从网上拷贝的代码段中有无法显示的 unicode 字符(其中误称 Java 不支持非 ASCII 码标识符);有位教授喜欢用希腊字符在 Julia 代码中命名,而 ta 本人输入这样的字符非常麻烦。
  接着,一位标示为中国广州的学生 shingtaklam1324 提出,中文字符会在不支持 unicode 的某些编辑器上变为乱码。pyfisch 回应:编译器支持 UTF-8编码的源代码文件,修改编辑器设置即可。
  四日 10 点,一位 Rust 组织成员 joshtriplett 提出个人立场:希望标识符命名仅限于 ASCII。他之后发布了一系列跟帖,在七月二十六的总结中,提到他由于源码中出现非 ASCII 码的字符导致各种调试的麻烦,但未给出具体例子。他在四日的一个帖中的发言很有代表性:It"s a tradeoff between "should people be able to write identifiers in languages that can"t be represented in ASCII" versus "should people be able to read arbitrary code". Both of those are important, and I don"t want to discount either, but I"d favor the latter.
  在"人们能用英文之外的语言写标识符"和"人们能读懂任何代码"之间权衡,虽然两者都很重要,但我更偏向后者。
  这种"天下皆(应)会英文"的思维很常见,似乎英文标识符就能被世界上所有人读懂。要知道,世界上有八成多的人口并不会英文。
  立刻,来自 Mozilla 的开发者 SimonSapin 回应:it is up to the author of a given piece of code to make that choice. It is not our place to dictate what language people should speak or write in contexts we can’t even think of.
  这(用母语还是英文命名)应该是代码作者的选择。我们(语言设计者)并不该裁断开发者用什么语言读写代码,尤其是在我们料想不到的场景下。
  5 日,Ixrec 提问:"真的会有人在实用项目代码中用非 ASCII 标识符吗?"他还提到,他是占全世界会日语的 58%的美国男士之一,但他也想不到除了日语在写注释之外的用处。
  来自 Mozilla 的 Manishearth 回应称,代码中看到过一些欧洲语言如葡萄牙文;暂没看到中文或俄语的,但看到过注释中使用。有些日语和葡萄牙语英文化后的代码,可见的确有使用非 ASCII 码命名的需求。另外,中国有个庞大的 Rust 社区,并未与英语 Rust 社区有太多交流。他在中文 Rust 的 QQ 群众征求过相关意见,有几方面收获:限于工具,代码中不用中文有时在新手教程中使用大多数人不用中文命名
  他的结论是,至少益处是使得音调可以使用,比如 método。
  接下来是来自中国广州的 huangjj27 指出,输入法切换会降低写代码的效率。不过也提到更多人会因此学 Rust。希望将此特性作为选项,而非标配。
  又一位坐标北京的 crlf0710 表示,大陆主流没有使用非 ASCII 码命名。偶尔用拼音的会被认为不专业。易语言有用户,但并未进入主流。新手教程有用,但也许需要改名关键字,使文字看起来更一致。也希望特性作为用户可选项,而非标配。
  又是北京的 ZhangHanDong 干脆来一句"绝对不要!"
  坐标加州的 KiChjang 表示,一些中国 Rust 用户担心生态被分裂。比如某个库用的语言是用户不知如何输入的。
  Manishearth 对此回应:早已有大量库除了命名之外的所有文档都用非英文编写,比如腾讯的 wepy,他就不会用。用了中文命名之后,也不会更糟。如果一个库流行到有英文文档的程度,很可能那时也会用英文命名了。至于如果库用了不认识的语言,那就——不用。
  至此,华人开发者,成为一个批量发声反对此特性成为标配的群体。
  下面,Manishearth 获得一些葡萄牙 Rust 社区反馈,表示听到不同意见。也得到了一些使用葡萄牙语的代码例子,包括 C++,Java 和 PHP。
  来自韩国的 kimhyunkang 回应 lxrec:之前在韩国公司工作时,看到一些 C++ 和 Java 开发者用英文化的韩语命名,原因是需求文档是韩文写的,而不少术语很难翻译成英文,因为韩语没有从拉丁文或者希腊文借用的词语,而英语没有从中文借用的词。如果要翻译成英文,命名更长也更不可读。
  est31 提供了一些使用德文命名的 Java 和 PHP 代码。
  来自北京的 3442853561:工作中不应用(中文命名),但不支持的话会显得 Rust 不合群(很多其他编程语言都支持),也对新手不友好。建议设置为对新手默认使能,老手可关闭。
  接下来是来自瑞士的 eggrobin 以他的用非 ASCII 码和非英文标识符的亲身经历,包括在编写编程书籍的例程中使用法语等等。
  欲知后事如何,且听下回分解!
  【写到这里,已经三个多小时,远远超出了两小时写完的预计。而上面仅仅浏览了前三天内的 20 多个评论,已经有了很多收获。决定分为一个系列进行连载,如期待后文,敬请关注本号!】

定位精准专为运动爱好者打造咕咚运动手表X3RE简约而不简单随着人们生活物质水平的提高,随之而来的健康等问题尤为突出,现如今越来越多的人在重视自身的身体健康情况,而这种重视也越来越科学化系统化。比如原来,比如原来爱美的女士注重身材会选择节食荣耀发布荣耀隐私保护与安全技术白皮书,带来全维度安全体验随着科技的发展和技术的进步,全球智能手机市场对于数据和隐私防护问题愈发重视,而消费者对于此问题的关注也日益提升。基于此,作为全球标志性科技品牌,荣耀秉承科技有道,隐私至上的理念,于创维发布S系列新旗舰画质实力再突破,模组薄至3。9mm我们正生活在被屏幕包围的世界手机平板电脑电视等大大小小的屏幕架构起我们工作学习生活娱乐的各种场景。大多时候,我们必须经由屏幕看见认知和构建生活的世界。因此,屏幕呈现的世界是否真实,激光投影!打破投影的痛点峰米投影新品家用激光投影的天花板?现在越来越多的年轻人的家中,用投影机替换掉了原有的电视机。不信你看!这样的方案可以给人视觉上更大的空间感,易于安装,且可以带来更好的观影效果,曾经的一则新闻就能很好地证明这个问题,兼顾高颜值易用剃须干净须眉剃须刀T6升级2。0版简直完美最近接触到一款电动剃须刀产品,须眉剃须刀T6升级2。0版(下文简称须眉T6),到目前为止可以说价格上来看并不算最高的200元左右的售价不高不低,但是体验上其实比曾经本人2000的剃又美又狠!真120Hz无屏闪音画旗舰创维A20Pro极速上市9月23日,致敬真实创维电视2021秋季新品发布会在北京举行,重磅发布四款旗舰新品。其中,专为年轻用户打造的Ablaze系列迎来旗舰新品真120Hz无屏闪音画旗舰创维A20Pro,女子开蔚来ES8升级系统长安街趴窝一个多小时官方如是说1月29日下午,一张吐槽蔚来汽车因升级系统黑屏,在长安街上停了一个多小时,并引来警察叔叔的朋友圈截图在网络上疯传,并引发网友对于蔚来ES8系统以及车辆稳定性的质疑。有网友发朋友圈称10小时33分38秒!土星一天的时长终于被研究出来1月19日,据外媒报道,科学家终于研究出土星一天的时长10小时33分38秒。这项最新公布的研究成果,是基于美国宇航局卡西尼号探测器在2017年9月被摧毁之前收集到的数据。新的计算方迅雷X10。1。9正式版发布!启动速度大提升1月初,迅雷官方发布了迅雷X10。1。8版本,对下载进度卡99。9的问题做进一步优化。距离不到20天,全新的10。1。9正式版也到来了。本次正式版本号为10。1。9。326正式版,拼多多被薅千万羊毛涉嫌欺诈罪1月20日凌晨,拼多多平台出现超级大Bug,用户可以无限制领取100元无门槛优惠券,据称有人领了上千张。拼多多对此回应称,有黑灰产团伙通过一个过期的优惠券漏洞,盗取了价值数千万元的IDC2018销售榜单重磅出炉,小米稳居第四,以32的增长率逆势上扬众所周知,近年来手机市场的销量趋于饱和,手机企业出货量难免有所下滑,但近日IDC关于2018年度全球手机销量榜单重磅出炉,从榜单中我们可以看出小米以1。2亿台以上的手机销量,稳居排
新平台赋能长城汽车16月销售618,211辆同比增长56。57月8日,长城汽车股份有限公司(股票代码601633。SH,02333。HK以下简称长城汽车)发布2021年6月产销数据。今年16月,长城汽车累计销量达618,211辆,同比增长5蔚来汽车总裁年底推出新车,近期不推30万以下车型国产新能源汽车品牌蔚来汽车自诞生以来就一直走高端路线,其平均售价超过了43万元,为国产车最高。近期,外界传出了蔚来将会推出低价子品牌Gemini的消息,不过这一消息随后被蔚来企业公苹果与LG商谈造车合同细节,造车还得靠老朋友?苹果官方一直对造车的相关消息三缄其口,但外界对此事的相关猜测和报道一直没有停过。从目前透露出的消息来看,苹果造车似乎并不顺利,与多家供应商谈判破裂,让人对其前景产生了担忧。不过,苹特斯拉柏林工厂遥遥无期,上海工厂趁势对欧出口8210辆ModelYSUV特斯拉上海工厂已经开始向其他国家和地区出口ModelY车型。据统计,今年7月,上海工厂一共向欧洲出口了8210辆ModelY,为第三季度带来了一个好的开始。今年7月,特斯拉上海工厂特斯拉上海工厂年产量将达50万辆,出口欧洲填补德国工厂生产缺口近日,根据知情人士透露,特斯拉上海超级工厂的电动车年产量已经达到了45万辆,实现了该公司在2020年第四季度财报上制定的目标。目前,特斯拉上海工厂负责生产特斯拉Model3和Mod华为投资科益虹源,计划在上海建设芯片工厂,明年生产20纳米芯片华为终于要进军光刻机领域了吗?近日,企查查信息显示,国内著名的光刻机研发企业北京科益虹源光电技术公司的注册资金增长了68,达到2。02亿元,华为旗下的哈勃投资刚刚追加了投资,占股已特斯拉再上调售价,中国市场已提前上涨,上海成为马斯克破局关键近日,特斯拉召开了2021年度的股东大会,相关数据开始披露。据悉,今年第三季度,特斯拉生产了23。78万辆汽车,交付了24。13万辆汽车,创造了新的纪录。但另一方面,特斯拉的涨价风收获不期而遇的惊喜从上海驱车340公里自驾千岛湖出发地上海市目的地杭州千岛湖里程340公里道路类型高速国道省道适合车型任何车型(自驾蔚来ES8)行程天数1。5天相比于夏日的热情似火,我更喜欢初秋的清凉恬静。忙碌了大半年,趁着十一接棒华为,小米扛起大旗,双十一老罗助阵狂撒20亿补贴交朋友转眼又到了一年一度的双十一购物狂欢,往年这个时候各大电商平台及品牌都会给出极大的优惠力度来回馈消费者,撒红包雨送补贴赠品等活动让人眼花缭乱,而今年更是远超以往,就拿小米来说吧,放出父亲把落水的儿子救上岸后,被其他家长质问为什么不先救我孩子随着社会文明的发展,如今社会上高素质的人不在少数,但同时也出现了一些,仗着别人善良,以道德绑架的方式来谴责他人的情况。前段时间网上出现了这样一起事件,两个孩子一起在河边玩水,同时落ampampquot良心ampampquot的瑞幸咖啡与ampampquot坑人ampampquot的蛋壳公寓最大区别是什么?睿财经讯(文李楠)12月17日,瑞幸咖啡官方微博发布声明表示,瑞幸咖啡与美国证券交易委员会(SEC)已就部分前员工涉嫌财务造假事件达成和解。只坑投资者,不坑消费者有良心的瑞幸咖啡2