为什么高质量计算机书籍几乎都是外国人写的?
记得我念大学的时候,当时学的C++程序设计,老师讲到Goto语法的时候,当时就跟我们强调不让我们用,因为这个语法太过于强大,担心我们控制不好,因为Goto可以让程序从一个位置直接跳到函数的另一个位置,懂代码的都知道,不管C、Java等等,能直接跳过去这听起来多么震惊。
等到工作以后,也看过几家公司的代码,很多公司都把大公司的代码规范抄过来改改当做自己的规范,会发现Goto这个语法,已经是全面禁止了,不信你试试,你如果敢在代码里写一条,看你领导会不会找你喝茶,慢慢的,也就把它当做一条准则了,我们的所有程序,几乎都是按部就班的,这倒也没错,对公司来说,稳定性压倒一切。
可是,后来因为做通信相关的东西,要用到一些开源库,碰巧项目上有一个问题,需要去看他们的源码,没看几分钟,我就发现了好多处Goto,而且哪有什么命名规范、前缀要求的东西?突出的就是一个简单直白,但你别说,那东西运行起来,还真不是一般的稳,性能也很OK,作者在Github上也把自己的这个程序优点、缺点一条条的列给你,有时候我们问他一些问题,他看到了,亲自给你回复,好些他都能一阵见血的猜出你问题的大致方向,毕竟自己写的,知根知底。
我那个时候,就突然想到了自己这些年遵守的所谓规范,就想:程序这个东西,是不是应该是最自由的东西?只要你能把需求实现,功能OK,性能强悍,那么怎么去实现的,不应该条条大路通罗马吗?就觉得我们和老外虽然用的同一种语言,但代码里所呈现的那种气质,真的不一样,我们就好像按照框架的规则一样,一层一层的固定做,很少有自己的思想,但他们是随心所欲的,好像在一个虚拟的世界里玩乐,取而代之的就是,他们可能比我们更有创造性。
回到计算机书籍的质量上看,其实也是一样,你如果念过大学,或者看过一些所谓权威的国内书籍,你也会有这种感觉:我们的书都是条条框框的教你怎么去做,让你不要做什么,把你已经放到了一个小盒子里,你没办法跑出去。但国外的书,是告诉你这个东西有什么用,至于你拿它做什么,怎么做,它不管,那是你的事。我们没办法具体的评价孰优孰劣,但有限制的束缚,还想要自由的创新,这多少显得不可能。