技术是有骗局的

作为码农,多数人还是热爱技术的,毕竟从懵懂小白到技术老司机,耗尽了心血,熬白了头发,没有一点热爱,显然也是不可能的。热爱归热爱,但是我们也应该保持一丝丝理性。科学技术为第一生成力,无数有为青年听后热血澎湃,为了学习技术,加班熬夜,自认为掌握了技术就可以改变人生。但是,你是否会想到一点:技术有的时候也会在骗我们的。例不多举,只说一个,大家可以去举一反三。在此,我就拿Spring赖以成名的“IoC”来说,这就是一个美丽的谎言、高明的骗局。

你可以对我的观点不认可,不以为然,但是不妨听我解释一下,为什么我说Spring IoC是个美丽的谎言、高明的骗局。设想一下,如果你有一家公司,不出意外,你肯定会把自家产品的特点包装的“高大上”,这样才能占领小白们的心智,让他们心甘情愿的掏钱买单。王婆卖瓜,自卖自夸,这是人之常情。其实,你心里很清楚,自家的产品与别人家的产品,本质上没有什么区别,只不过你会营销,会搞噱头,会哗众取宠而已。有的人可能读到这里可能心里会犯嘀咕,“我可以靠技术取胜,打败对手和竞品”,可以说,如果你抱着这样的想法开公司,一定会死的很惨的,因为技术很难做到绝对优势的,连牛顿,爱因斯坦这样的超一流的技术巨擘,其学术诞生时期,也有很多人在同时做些相同的研究。纵观商战案例,无数技术先进的公司反而最后都死翘翘了。技术先进是成功的一个因素,但是仅仅有先进技术还是远远不够的。

Spring的背后就是一家技术商业公司,不仅有技术,还会搞营销,搞出一个“IoC”,这是一个高大上的专业术语,让一众小白顶礼膜拜。Java是面向对象语言,初期都是程序员自己生产对象,后来进入Web开发模式之后,对象都是放在了Web容器里面,不再由程序员自己生成了,从“容器”里面捞上来的东西都属于控制反转,因为不是你自己生产的,是从别的地方拿来即用的,把控制权交给他人给你生成,这就是控制反转。可以这么说,只要是从容器里面获得的东西,这都是控制反转。Spring本质就是容器。容器者,天生具备控制反转的特性。打广告,卖容器技术,好卖吗?肯定不好卖。所以Spring包装一下,搞个“IoC”噱头吧,忽悠小白,让他们为新思想新技术买单。

读到这里,大家应该明白了,我们都被骗了,我们把注意力放在了“IoC”,但是忽略了“容器”。从“容器”的角度去思考一下,你会发现Spring就是servlet容器的变身而已。Spring的很多思想都是借鉴了servlet容器的成果,例如,Java Bean里面压根就没有“生命周期”之说,只有在servlet才有的。

人为利而动,所有的动机都是为了赚钱,那些商业化的公司(例如Spring公司)更是如此。所以,我们要认清技术的本质,让自己变得更睿智,别掉入“广告坑”(IoC就是一个巨坑)里爬不出来。很多人学习Spring把重心放在IoC上面,这并不是一个好的切入角度。

后记

如果你觉得我说的很荒谬,没有关系,因为整个世界本来就是荒谬的。如果你不认同我说的话,无所谓,芸芸众生不过是走马观花而已,我只需要帮助徒弟们打开他们的思路让他们更深刻的认识这个世界,足矣。