每个领域都存在着错综复杂的鄙视链,这一点在IT领域更为突出。从编程语言、工具,再到浏览器、硬件、服务系统,甚至{是写在if的同一行还是下一行,都会引发来自不同阵营的针锋相对。那么程序员圈的鄙视链究竟有哪些呢?一、编程语言篇 相信吃瓜群众都知道,编程语言是程序员的立身之本,但却很少有人知道,不同的编程语言出自各派、功能不一,它更代表了程序员在江湖上的地位高低。 程序员圈普遍存在这样一个鄙视链,低级语言鄙视高级语言,比如写汇编语言的人的鄙视写C语言的人,他们认为用汇编语言所能完成的操作不是一般高级语言所能实现的,而且源程序经过汇编生成的可执行文件不仅小,而且执行速度很快。 写C语言的人鄙视写C的人,他们觉得C语言灵活性好,效率高可以接触到软件开发比较底层的东西,C推出的时间太短,资料也不多,不就是可视化做得好一些嘛! 写C的人鄙视写Java和C的人,搞Java和C的人相互鄙视,并且看不起写Python的人,Java提供了一个功能强大语言的所有功能,但几乎没有一点含混特征。C安全性不好,但更被大家接受,所以Java设计成C形式,让大家更易学习。Java去掉了C语言的许多功能,让Java语言功能很精炼,并增加了一些很有用的功能,实现了C的基本面向对象技术的增强。C工程师不高兴了,为什么删减我们的功能? 写Python的人鄙视写PHP的人,写PHP的人鄙视写前端JS的;前端程序员看不起美工。 最讽刺的是,周末,美工带着妹子出去约会了,一群程序员还在加班。 结了婚的程序员,鄙视没结婚的程序员;有女朋友的程序员,鄙视单身程序狗。在单身狗之间,才有语言、编辑器和操作系统的互相鄙视。 玩笑归玩笑,对于一个真正优秀的程序员来说,用什么样的编程语言可能决定了技术的学习方向,但是最终,任何语言都仅仅是表达思想的载体。独孤求败的最终境界,摘叶飞花皆可为剑。二、工具篇 不止是编程语言,就连程序员使用的工具,也存在着鄙视链。 用texteditor的人鄙视用IDE的人。 用Vim的人鄙视用Emacs的人,用Emacs的人鄙视用Vim的人,无论是用Vim或Emacs的人都鄙视所有用其他编辑器的人。总的来说,vim是一个优秀的工具,帮助你快速完成日常工作;Emacs是一扇门,它的后面是另外一个世界,一旦你穿过这扇门,走进它后面的世界,应该就没心思去跟vim打嘴仗了。 用Atom、Notepad、SublimeText的人鄙视用Windows记事本的人。能替代Notepad这类的软件很多,但每个人对于记事本的期许是不一样的。 用AndroidStudio或IntelliJIDEA的人鄙视用Eclipse的人,用Eclipse的人鄙视用NetBeans的人。 用Git或Mercurial的人鄙视用Subversion的人,用Subversion的人鄙视用Dropbox来做版本控制的人,用Dropbox来做版本控制的人鄙视根本不知道什么叫做版本控制的人。 用Zsh的人鄙视用Bash的人,用Bash的人鄙视用Cygwin的人,用Cygwin的人鄙视用命令提示字元的人,用命令提示字元的人鄙视用GUI界面的人。三、操作系统篇 用MacOSX的人鄙视用Linux的人,用Linux的人鄙视用Windows的人。 用Debian的人鄙视用Ubuntu的人,用Ubuntu的人鄙视用非LTS版本的Ubuntu的人。四、硬件篇 用MacBookProRetina的人鄙视用MacBookAir的人,用MacBookAir的人鄙视用ThinkPad的人,然后用RaspberryPi的人鄙视用MacBookProRetina的人。 用Dvorak键盘的人鄙视用Mac键盘的人,用Mac键盘的人鄙视用QWERTY键盘的人,用QWERTY键盘的人鄙视用手写板的人。 坐Aeron椅子的人鄙视坐普通办公椅的人,坐普通办公椅的人鄙视跟他一样坐普通办公椅的PM,然后站着写程序的人鄙视坐Aeron椅子的人。五、职场篇 写OS的人鄙视写Web的人,写Web的人鄙视写desktopapplication的人。 信奉TestDrivenDevelopment的人鄙视先写code再补tests的人,先写code再补tests的人鄙视不写tests的人,不写tests的人鄙视又乱改需求的PM。 搞硬件的工程师鄙视搞软件的工程师。 后端工程师鄙视前端工程师,工程师跟设计师互相鄙视。 没有证照的工程师鄙视考了一堆证照的工程师;上班穿休闲服的工程师鄙视上班穿西装的工程师。反思 鄙视就像一条奇怪的食物链,是人类绕不开的话题。曹丕曾在《典论论文》中写道文人相轻,自古而然。不止是文人,程序员的圈子也存在着复杂的鄙视链。但是不要以为鄙视可以体现自我个性、寻找归属感或是消除不安,它只是路人的泄欲方式。 编程语言众多,编辑工具更是数不胜数。很多人粗暴的鄙视自己未知的领域,想当然的品头论足,像很多人鄙视PHP工程师,片面地认为PHP入门简单,不够规范,经常导致出现大量垃圾代码,殊不知每一种编程语言都有它的优点和不足,想要做到精通都要付出很多时间和精力。 事实上,编程语言的设计都是为了解决相应问题的,他们之间各有各的特点和优势,只有解决了现实问题才是关键。比如C做桌面软件的较多,而Java、Objective做手机App,PHP适合做Web开发,快速高效,Java也适合做Web开发,它更偏向于做大型企业级应用和安全要求更高的网站。 一个大公司的产品不可能用的是单一的语言来实现,他们会根据语言的优势以及擅长的领域来选择使用哪种语言。因此你就会发现每个大公司肯定有各种程序员。 不要轻易去鄙视任意一种编程语言或工具,很多时候你在鄙视使用其他编程语言的工程师时,他们在忙着提升自己,他们的薪资、技术和个人境界远超于你,而你却还傻傻地沉浸在鄙视他人的快感中。 说句实在的,程序员都是搬砖的,为啥还要相互鄙视呢?应该团结一心,把工作的事情处理好,工资搞得高高的。到了社会,程序员们可都是兄弟! 来源:51CTO技术栈 作者:莫奇