范狂夫
谢邀。
喝多了回来了,按活跃账号总结的「捅妓上的相关性」,应该等到明天吃撑了之后再惹是生非。但是呢,看见知乎人工智障算法这么热情,实在按捺不住喋喋不休的冲动。
我作为「不入流码农」,虽然没有公开表达过态度,那也是为了避免「唯物主义革命螺丝钉地下工作者间谍卧底无间道钦定黑客」高举新时代中国特色社会主义的伟大旗帜,随意歪曲我的言行举止吃喝拉撒睡,向着「膝盖生根头顶绿得发黑贱到骨子里去了」的光荣目标而正确解读。
现在直说了吧,就是不喜欢或者说讨厌Python,并且还与政治和意识形态无关,纯属技术原因。当然, 如今看来,「Python武德充沛,Anaconda兲命昭昭」本身就是政治和意识形态斗争的表现,这里暂且略过不提。
先「曰若稽古」,但凡从上世纪混过来的老迈年高的码农,应该都知道「连续空白不当回事」这种「约定」,对于解析器或编译器来说,「源代码」内容就是一个字符串,当中的空白(包括但不限于空格、制表符、回车、换行)只存在「有无」问题,没有「多少」问题。
也就是说,即便「我编段子不是为了粉饰太平,乃是叫码农内部动刀兵」的活跃账号也承认,花括号放在哪里仅仅影响了码农的审美,其实对赛博朋克编译器来说没有任何意义。
不扯了,举个少说十来年的例子,当年微软推出dotNet的时候,著名信息技术作者Charles Petzold仍然按照惯例提供了编辑器加命令行编译器的方式的教程。与此同时开源社区也并非不愿意用「IDE」,只是看微软「Visual Studio」不顺眼,于是推出了「SharpDeveloper」,一个纯粹以C#写成的C#开发环境企图「自举」。
后来过程略,我也很久没关注业界动态了,不知道现在进展如何。当时跟踪更新情况的时候,得知这样一条信息:本来「源代码」是按照「字符串数组」管理的,也就是每行一个字符串,后来似乎为了什么原因而采用连续的内存也就是单独的一个字符串。
这就是说,对于Python这种「排版依赖」的语法,在真正资深的服务于最广大码农的开发团队当中,是麻烦而不是优点。甭说制表符设置的空格数量,就是当中出现「全角空格」也会造成解析失误,亲身体会。
应景再多说几句,最近用Markdown格式备份网络发言,体会到「缩进」的麻烦。比方说嵌套的有序或无序列表,在VS Code和Typora当中的表现就不一致,关系到制表符对应空格数量的问题,嵌套几层之后再加引用(开头用「>」标记),总有一边不适合你,其中若是出现全角空格则更是麻烦。
所以,每次备份都需要打开几个环境轮流测试,保证各方效果一致。经验就是,除非把制表符设置为一个空格,否则总得随时随地提心吊胆。这就是「排版依赖」的语法的缺陷。