20210223]“行业不景气,也得打零工恰饭嘛,不寒碜”

“你小子肯定是打算拿两份工资吧?”

前情提要:广播《幕后黑手杜鹃下蛋塞野种妄图窃家窃族窃国未果沦为笑柄

此处备份后续情报:

J.van.Schooten
QuaintJade

Python真是使劲蹭热度。其实Python的支持都是微软员工业余项目+第三方社区支持,微软官方并没有表态要支持 ...

关于Python到处蹭热度这事不仅仅是技术原因,但是与本版乃至本坛气氛不符,就不展开解读其中蕴涵的政治和意识形态内容以及所引领的激烈政治和意识形态斗争新动向了。

简单说,Python的缺陷想必业内都知道了,「排版依赖」的语言几乎不能重用,无论是原地修改还是挪用代码,非得从头到尾重新过一遍不可。

这些教训,以前在Makefile时代就有吐槽,那么为啥多年以后新时代语言照葫芦画瓢如同笑话「新衣服打补丁」呢?

参考开头那段。

J.van.Schooten
阿崔

笑哭,Python的缺陷一大堆,排版依赖真的排不上号。代码的可重用说的不是复制/粘贴。复制粘贴过来的代码不管是不是排版依赖的都得从头到尾过一遍。不然你会死在各种不兼容的代码风格造成的奇葩Bug里面。排版依赖造成的缩进问题靠文本编辑器的支持或者IDE就能很好解决。

另外,头一次见到在编程语言讨论里面扯意识形态的,这也是上升到新高度了。程序员谁管啥意识形态,哪个能满足我需求,做起来快就用哪个。Python成熟的时间节点刚好是CPU开始性能过剩的时候,这时候需要一种能在多平台下使用的胶水语言。同样可以跨平台的JAVA因为需要编译+虚拟机启动开销太大,不太适合。同期的PHP LUA之类的因为各种原因在做胶水语言上都不如Python。现在到处都能用Python的情况下,Python火也是自然的。

你的论点用一句反问就能驳倒:你不知道Perl么?

J.van.Schooten
阿崔

笑哭,你是说从1994混到2021版本还是5的perl么?Python热起来的时代正好是perl 6难产的时代。而且作为胶水语言,python设计时候就考虑了调用外部库的方便程度。甚至可以直接ctypes调用动态库。比起Perl的use Inline C这种依赖外部C编译器的要容易很多。

在你说出“胶水语言”的时候,没想到曾经还有个Perl么?这个字眼以及Perl诞生的原因,就是因为Shell“不够用”,需要更强的功能。

因为Perl语法过于灵活,设计目标就是“一行搞定”,所以当时在规模更大的场合,通常用Tcl。

至于Perl 6难产的原因,一方面是因为极客思维,一方面是Parrot虚拟机的设计目标过高,还有一方面则是因为Ruby已经出现了。

而Ruby的创始人松本行弘直说命名就是因为“作为七月诞生石的红宝石是六月诞生石珍珠的后继”,公开表示“彼可取而代之”“大丈夫当如是也”。

而Ruby on Rails的框架,也是流行一时,你有印象么?

如果你知道Python所谓“到处调用外部库”或曰“东拼西凑”的时候,其图形用户界面的选择也是与Tcl一起诞生并成长的Tk,就不至于有这样的观点。

难怪上面有疑似领微软工资的业内,直截了当用“野种”“亲儿子”字眼,在人民群众喜闻乐见的下半身话题当中寻找素材,通过「鸡巴决定脑袋」的唯种辩证法和「碧池创造历史」的唯种史观,进行攻击。

补充背景:当年在双方家长的谈判之后「Borland TurboBasic」与「Microsoft Pascal」这俩“儿子”同归于尽。

看懂字里行间的感情色彩,就能明白其中所蕴涵的充沛政治和意识形态内容以及所引领的激烈政治和意识形态斗争新动向。

这么空泛的论述你可能不服气,下面略作展开。

默认本坛用户进入本帖发言的帐号没有外行,至少曾经是业内人士,常识不再解释。

首先是意识形态,简单说就是“设计哲学”和“设计神学”之间的对立统一斗争。

类比操作系统,众所周知Unix的设计哲学是「一切皆文件」,Windows的设计哲学是「一切皆窗口」导致跨平台库如Qt等吐糟「必须开个隐性窗口才能传递消息」,卢瑟败犬BeOS与笑到最后的胜利者NeXT的设计哲学都是「一切皆对象」,而与时俱进的Redux的设计哲学则是「一切皆URL」……其它案例不再壹壹列举。

具体到“胶水语言”,上面提到的Tcl之设计哲学是「一切皆字符串」,并且「一切关键字皆命令」。

现在开始阐述Perl与Python之间在意识形态领域的针锋相对你死我活的斗争了。

按照无一字无来历的职业习惯,此处引用双方阵营代表人物的官方表态。

对于Perl,其设计哲学是There’s more than one way to do it,通常直译为「不止一种方法去做一件事」,意译为「条条大路通罗马」,修辞为「活人还能让尿憋死不成」。出处为《马太福音,13:45-46》:「天国又好像商人寻找好珍珠,遇见一颗昂贵的珍珠,就去变卖他一切所有的,买了这颗珍珠」。

而Python就狂妄多了,叫嚣There should be one – and preferably only one – obvious way to do it.,直译为「应当只用一种⸺而且是最好的一种⸺明确的方式去做一件事」,意译为「一个国家、一种主义、一个政党、一个领袖」,修辞为「忠诚不绝对就是绝对不忠诚,增强“四个意识”坚定“四个自信”做到“两个维护”」……是不是看上去有些眼熟?

对于Python这种极权主义设计哲学,可以称之为设计神学,与公开基督教信仰的Larry Wall并无本质区别,仅有教派冲突:叫嚣「没什么自由意志,中央已经钦定了」的加尔文主义,以及强调自由意志的阿民念主义。

注意阿民念主义的象征,正是「珍珠」(PEARL)。那是因为加尔文主义钦定论歪理邪说的信经缩写为郁金香(TULIP)的缘故。

接下来是政治,由于众所周知的原因,略。

J.van.Schooten
阿崔

可能我没说明白,这里说的胶水语言是方便使用C API调用动态库的语言。而Perl的胶水特性是基于管道和Unix Shell的。这是两者设计上的一个比较大的区别,也是造成后面很多应用方向选用Python的原因,维护一个Python的wrapper的成本足够低。至于说到同样方便写wrapper的tcl要到8.6才开始引入TclOO,在这之前写大规模程序对程序员素质要求还是很高的。

不管Perl 6的难产原因是啥,当时的情况就是在业界最需要一种用于快速原型开发的胶水语言的时候,Perl掉链子了。

Ruby在当时和Python是差不多热度的,但是它使用外部动态链接库至少和Perl是一样的麻烦,一点点细小的差别累积下来造成很多方向上慢慢的只剩下Python支持了,然后就滚雪球一样,Python在大部分方向上把Ruby的潜在用户都拉过来了。

至于说到Python的默认版本在GUI上选Tk,我实在想不明白这个和我这个观点有什么关系?根本原因不是因为Tk差不多是个最轻的跨平台GUI框架么?

至于后面你吐槽的前面用户的发言,我也没看出来和我们在讨论的这事有啥关系。

至于说到设计哲学问题,这就真的太扯了,作为一个学习路径是从basic到汇编再到c/c++然后haskell然后再到其他语言的、自认为足够资深的程序员,我认同你每个语言或者每个框架都是有设计哲学的这个观点。但是我不认同的是程序员会因为设计理念冲突导致在语言选择上做出倾向。正常程序员在语言选择上基本都是哪个顺手用哪个,实在不行parsec写一个。。。

我再重复一下我的观点。Python现在火热的根本原因是在最需要一种方便做快速原型开发的胶水语言的时候,Python正好出现了。而不是什么设计理念的问题。我在之前的发言中明确给出了同期几种潜在的类似语言在这个领域不如Python的原因。语言之争都要上纲上线真让我想起米国在这次疫情政策上的争论了。。。

先对比一下咱俩帐号的注册时间和发帖量,你对于本坛关闭注册的理由是“保持高质量发言”有什么意见? 本来是技术讨论,忽然跳出来一个疑似领微软工资的业内人士,屁股坐稳搞拟人化抒情,本身就有问题。

我的回复中有个细节你没提到,「Microsoft Pascal」和「Borland TurboBasic」这俩“儿子”如何同归于尽,吟游诗人吹捧「了不起的盖茨比尔」成功运用「田忌赛马」的兵家理念「兑子」成功……你知道么?

如果你不知道这段往事,也应该知道Basic不是微软或盖茨或阿伦发明的,若要拟人化形容都是「杂种」甚至通过「人贩子」交易「拐卖」的孩子,最好别在「血统」之上抒情。

最后提醒,在Python相关话题当中,应该是你这疑似领蛇工资者与疑似领微软工资的业内人士争论才对。对方一击脱离,而你专门找我这个打酱油做俯卧撑看热闹不嫌事大站着说话不腰疼的“乐子人”讨论技术,反而不对劲。

J.van.Schooten
QuaintJade

嗯?看了下“亲儿子”确实是我说的,但我没说过“野种”、“杂种”啊。。。不就是常见的形容支持与不支持的说法吗,这是扯到哪里去了。。。

我开始还以为你说的意识形态是指外国在搞low-code、no-code,我国则用python来推全民学编程弯道超车适应未来的产业发展,没想到你只是在说语言之间、IT业界的斗争。。。

我并不是微软员工,我只是被微软坑久了的长年用户,发帖是吐槽微软内部的派系斗争搞得战略、产品经常变。之前VBA当年也是M$ Office突出的特性(你大概要说强调Basic不是微软发明的吧。。。),但过去十年微软其实一直试图杀死VBA,然而并不成功反而留下一堆坑,近几年的上云战略总体倒是算相当恒定了,但谁也不知道今天微软的“亲儿子”明天是否会被冷落。

你的措辞并不太适合技术讨论,并且也与事实不一致。

除了Basic是“借”来的之外,众所周知DOS也是微软“买”来的。用拟人化抒情的方式形容信息技术发展当中公众领域与私有领域的边界,描述的情况会违反全球大部分国家和地区的现行法律。

其它话就不说了。

J.van.Schooten
QuaintJade

我用“亲儿子”只是指微软自己掌控的东西(不管是自研的、还是买来的、还是模仿来的、还是执行3E战略搞的),对应的是别人家的孩子,也就是不属于微软掌控的东西。

不懂你为什么会理解成亲儿子对应野种的。。。

像Javascript不属于微软,所以不是微软的亲孩子;Typescript是微软搞出的Javascript的超集,是我说的微软亲孩子。

像PowerPoint一开始也是收购来的,但现在没人会说PowerPoint是野种吧?

我直接指出,你用生物的血缘关系类比非生物甚至不对应物质基础仅存在于唯心主义领域的纯粹的数学结构这种措辞就不合适。

一句话反问:微软有儿子,那么有孙子么?

就说Basic,微软建立时赖以生存和发展的独苗,确实尽力扶持。在微软给苹果、IBM打工的时候都夹私货推销,无论是ROM Basic还是QuickBasic。在觊觎Borland之“亲儿子”Pascal的时候,遭遇对方强力反击,互相偷家的结果是全面溃败,这时候“家长”出面谈判,达成“谁的儿子谁领走”之协议,算是割肉斩仓止损。后面的Visual Basic、VBScript、VBA也是同样,不可谓不上心。

再后来呢,为啥整条产品线一刀切砍了呢?

因为继续支持的成本大于收益了,这是经济学范畴,不是伦理学范畴。

想通了么?你嘴里的“儿子”,无论是亲生的,找人贩子买的,克隆的,人造的……都是“工具人”而已。

这种拟人化的叙述,只适合炒作情怀兜售话术,恰恰是故意利用作为自然人的老用户的“人性”,为毫无人性的资本主义逐利运营而保驾护航。

至于感想,早在2004年就有了:“你小子可别是打算拿两份工资吧?”(《电子生涯》第贰拾叁章〈人才〉)

2021.2.23