程序员的荣耀
- 编程语言战争:认为自己所用的语言是最好的。
- 编辑器的圣战:Vim和Emacs党派不断向对方发起攻击。
- 操作系统之乱:Windows、Linux和Mac OS阵营之间的不断争论。
- …
看到这个列表,你一定深有感触。嗯,程序员荣耀
(额,这是我自己起的名Programmers' Glory
)已然把网络上的任何地方当成了自己的战场。
记得之前看过一篇博文叫做How Religion Destroys Programmers,翻译过来就是“信仰是如何毁掉程序员的”。
文中列举了众多被垢病的程序员的臭毛病和它们所带来的巨大危害。文中提到,这种自我强加的信仰导致的问题是,它让我们看不到真相,不去尝试别的技术。代码偏执为拥有Programmers' Glory
的人关上了很多扇门。
最后作者总结说,相对于无脑崇拜某个我凑巧选择的技术,广泛地理解一系列技术和编程语言可以使我变得更有价值。
说的很对!
当激情上升到信仰的时候,便引发了不断的语言战争、编辑器之战。而当你沉迷其中,斗得不亦乐乎直至筋疲力竭之时,它不知不觉已经限制了你潜力挖掘的可能性。简单的说,就是你已经给自己的人生设了一个个的限制。
《黑客与画家》中,Paul Graham对语言战争
描述得很准确,
“如果你长期使用某种语言,你就会慢慢按照这种语言的思维模式进行思考。所以,后来当你遇到其他任何一种有重大差异的语言,即使那种语言本身并没有任何不对的地方,你也会觉得它极其难用。缺乏经验的程序员对于各种语言优缺点的判断经常被这种心态误导。”
当你信仰过程式程序设计时,你已经抛弃了面向对象思想的精华;客观来讲,目前还没有一门语言是完美的,所以当你全盘接受一门语言的时候,你同时也拥抱了它的糟粕,却还自认为这是它的feature;当你发誓这辈子只用Vim再也不碰Emacs的时候,就决定了你永远也不会理解Emacs的使用者的思考逻辑;当你决定誓死效忠Windows、Linux或是Mac OS X其中之一时,你的思维方式、操作习惯也将被它所固化(我一直认为接触一种操作系统就会多一种思维方式)。
说到Mac OS X,想起来前几天池建强在微信推送了一篇文章叫《不要成为果粉》。对于任何事物,成为其粉丝都是很危险的。成为了某个工具的粉丝,这只是好听点儿的话,实质则是你成为了工具的奴隶;成为了某项技术的粉丝,你就受限于该技术,不光是潜力不能自由发挥,而且思维也被该技术禁锢;成为某个公司的粉丝,你会倾向于使用该公司所有的产品,学习该公司主导的技术。至于利害,仁者见仁。
对技术的选择持封闭态度最后只会伤害你自己并限制你作为一个开发者的个人成长,甚至可以说限制了你这一辈子的能力。
所以,大多数人都会建议,不要把热情变成信仰。
信仰的力量
那么是不是说信仰没有一点好处呢?当然不是。
其实信仰无处不在。信仰是自然产生,缺少信仰的社会不是健康的社会。在生活中,有各种宗教信仰。再细一点说,有的人喜欢吃萝卜,有的人却偏爱吃白菜;有的人喜欢喝橙汁,有的人一辈子只喝白开水。不要尝试去改变这些人,因为你没办法改变。
而程序员也是人,编程也像生活一样,所以程序员拥有技术信仰很正常。
程序员的信仰有什么好处?
- 信仰会使你在坚持一件事上拥有不断的动力。
- 信仰会让你拥有对完美的偏执。
- 没有信仰,整天坐在那敲代码,这么枯燥谁能坚持得下去?!!!!
那么,到底应该怎么对待各种技术信仰呢?
我与我的信仰
其实我并不赞成消除自己的信仰。
虽然我最爱用Vim,但也一直保留着Emacs。虽然我喜欢Chrome多一些,但Firefox也是我的必备软件。虽然在学Objective-C和iOS编程,但Android开发也尝试过,Go语言也有所掌握,因为我同时是Google和Apple的粉丝:-P。
曾经有人语气严肃地告诉我,像是在发誓,我这辈子都不会用Mac。好吧,多谢,世界上有多了个意气用事的无知蠢蛋,而我又比一个人多掌握了些能力。
大神王垠,大学时疯狂地吹捧Linux、Unix,现在不也浪子回头
了?!其实读他现在的文章也能感到他被信仰冲击后留下的后遗症。
说了这么多,我的观点就是,
- 要学会和别的信仰的共处,而不是消除信仰本身。
- 当你发现自己有了技术信仰时,不要尝试去磨灭它,而是去利用它!利用它带给自己的动力与激情!
对于那些陷入语言战争的孩子们,别再纠结到底学不学Go或是其他语言了:C++作者Bjarne Stroustrup说过,编程语言有两种,一种是充满缺陷的,一种是没用的。
对于那些忙于编辑器圣战的孩子们,到底是用Vim还是Emacs?:别忘了,世界上最简单的解决问题的工具,硬币。
对于那些还在骂Windows的家伙:王垠大神都觉悟了,你还在想啥?
最后再看一个关于信仰的有趣的漫画(图片来自西乔的博客)。
原文链接:http://jackiekuo.com/think/2014/05/11/about-programmers-glory/