一门开发语言的生命力,取决于它的各项优点,然后程序员根据这些优点选择它。但它的生命力另一个容易被忽视的来源,是它选择程序员的能力。所以,程序语言取决于两个方向:程序员怎样选择语言,语言怎样选择程序员。
一门优秀的语言,如果各项指标都太好,那么每个人都会倾向于选择它。然后,这个生态系统里充斥了许多低水平的人,低水平的烂代码。优秀的程序员和代码被淹没了。很快整个生态系统和语言本身会走向消失。
原来的Delphi,可能就是一例。Delphi并不是被微软干掉了,而是被用它的太多低水平程序员淹没掉的。Delphi太易用,以至于失去选择程序员的门槛。
对每个人都太好,是滥好。滥好的人所交的烂人会反过来吃掉滥好的人。
门槛和金字塔结构,本身是很令人讨厌的东西。与政治正确的方向,比如“分享”“平等”等概念,似乎很对立。但在现实的不完美的世界,门槛和金字塔是必要的恶。如果没有没有它们,政治正确者会杀死自己,表面上是被烂人杀掉,实际上是自杀。因为他拆掉了保护自己的门栓。
C语言的生命力,当然来自于它指挥命令电脑内部各个部件的能力,就是它的底层能力,还有据说令人生畏的指针。但C语言的优点,对某些人说是缺点,比如指针。它的缺点,会反过来成为优点,比如它缺少命名空间,不支持面向对象。这种缺点强迫程序员,把有限的名字(类型名,函数名)用在最高效的实现上。而不是给每个水平的实现一个共存的机会。结果就是C的生态系统里,低水平的代码生存空间极小。这成为C语言的生命力来源,或者说是它的保护罩。
当然啦,光有有门槛和金字塔,却没有实质的亮点,是一点用处都没有的。假装高大上加上门槛金字塔,只能糊弄没有鉴别力的人,排斥优质参与者,这种事物是彻底的垃圾和病毒。
劣币很可怜,但它有一个令人惊讶令人生畏的能力,就是驱逐良币。劣币和良币,到底谁厉害?取决于主体,就是观察者选择者评价者的眼光和选择。优秀的东西,成本更低,效用更高。但比优秀的东西更厉害的东西,是假劣,因为造假可以包装糊弄让人以为效用高,造假当然可以大幅降低成本。
所以,如果你不排斥劣币,你若不厌恶劣币(要么出于政治正确,要么由于所掌握的信息不充分),而是给它与良币一样的空间,那么劣币会淘汰良币。三聚奶粉和莆田系,会统治所在的领域,杀死领域内的真实优秀者。
你选择朋友,如果各种人都交,各种人都给他一个占据你生命空间的机会,那么不会出现好朋友和坏朋友对半分的状况,而是你身边最后全部都是坏朋友。
好吧,我不是在说程序语言。而是说,一个人怎样选择所交往的朋友和合作者,又是在说组织、企业。