程序員之間神奇的鄙視鏈,你在其中哪一層?
原創(chuàng)每個領(lǐng)域都存在著錯綜復(fù)雜的鄙視鏈,這一點在IT 領(lǐng)域更為突出。從編程語言、工具,再到瀏覽器、硬件、服務(wù)系統(tǒng),甚至 { 是寫在 if 的同一行還是下一行,都會引發(fā)來自不同陣營的針鋒相對。那么程序員圈的鄙視鏈究竟有哪些呢?
一、編程語言篇
相信吃瓜群眾都知道,編程語言是程序員的立身之本,但卻很少有人知道,不同的編程語言出自各派、功能不一,它更代表了程序員在江湖上的地位高低。
程序員圈普遍存在這樣一個鄙視鏈,低級語言鄙視高級語言,比如寫匯編語言的人的鄙視寫 C 語言的人,他們認為用匯編語言所能完成的操作不是一般高級語言所能實現(xiàn)的,而且源程序經(jīng)過匯編生成的可執(zhí)行文件不僅小,而且執(zhí)行速度很快。
寫 C 語言的人鄙視寫 C++ 的人,他們覺得C語言靈活性好,效率高可以接觸到軟件開發(fā)比較底層的東西,C++推出的時間太短,資料也不多,不就是可視化做得好一些嘛!
寫 C++ 的人鄙視寫 Java 和 C# 的人,搞 Java 和 C# 的人相互鄙視,并且看不起寫 Python 的人,Java提供了一個功能強大語言的所有功能,但幾乎沒有一點含混特征。C++安全性不好,但更被大家接受,所以Java設(shè)計成C++形式,讓大家更易學(xué)習(xí)。Java去掉了C++語言的許多功能,讓Java語言功能很精煉,并增加了一些很有用的功能,實現(xiàn)了C++的基本面向?qū)ο蠹夹g(shù)的增強。C++工程師不高興了,為什么刪減我們的功能?
寫 Python 的人鄙視寫 PHP 的人,寫 PHP 的人鄙視寫前端 JS 的;前端程序員看不起美工。
最諷刺的是,周末,美工帶著妹子出去約會了,一群程序員還在加班。
結(jié)了婚的程序員,鄙視沒結(jié)婚的程序員;有女朋友的程序員,鄙視單身程序狗。在單身狗之間,才有語言、編輯器和操作系統(tǒng)的互相鄙視。
玩笑歸玩笑,對于一個真正優(yōu)秀的程序員來說,用什么樣的編程語言可能決定了技術(shù)的學(xué)習(xí)方向,但是最終,任何語言都僅僅是表達思想的載體。獨孤求敗的最終境界,摘葉飛花皆可為劍。
二、工具篇
不止是編程語言,就連程序員使用的工具,也存在著鄙視鏈。
用 text editor 的人鄙視用 IDE 的人。
用 Vim 的人鄙視用 Emacs 的人,用 Emacs 的人鄙視用 Vim 的人,無論是用 Vim 或 Emacs 的人都鄙視所有用其他編輯器的人。總的來說,vim是一個優(yōu)秀的工具,幫助你快速完成日常工作;Emacs 是一扇門,它的后面是另外一個世界,一旦你穿過這扇門,走進它后面的世界,應(yīng)該就沒心思去跟vim打嘴仗了。
用 Atom、Notepad、Sublime Text 的人鄙視用 Windows 記事本的人。能替代Notepad這類的軟件很多,但每個人對于記事本的期許是不一樣的。
用 Android Studio 或 IntelliJ IDEA 的人鄙視用 Eclipse 的人,用 Eclipse 的人鄙視用 NetBeans 的人。
用 Git 或 Mercurial 的人鄙視用 Subversion 的人,用 Subversion 的人鄙視用 Dropbox 來做版本控制的人,用 Dropbox 來做版本控制的人鄙視根本不知道什么叫做版本控制的人。
用 Zsh 的人鄙視用 Bash 的人,用 Bash 的人鄙視用 Cygwin 的人,用 Cygwin 的人鄙視用命令提示字元的人,用命令提示字元的人鄙視用 GUI 界面的人。
三、操作系統(tǒng)篇
用 Mac OS X 的人鄙視用 Linux 的人,用 Linux 的人鄙視用 Windows 的人。
用 Debian 的人鄙視用 Ubuntu 的人,用 Ubuntu 的人鄙視用非 LTS 版本的 Ubuntu 的人。
四、硬件篇
用 MacBook Pro Retina 的人鄙視用 MacBook Air 的人,用 MacBook Air 的人鄙視用 ThinkPad 的人,然后用 Raspberry Pi 的人鄙視用 MacBook Pro Retina 的人。
用 Dvorak 鍵盤的人鄙視用 Mac 鍵盤的人,用 Mac 鍵盤的人鄙視用 QWERTY 鍵盤的人,用 QWERTY 鍵盤的人鄙視用手寫板的人。
坐 Aeron 椅子的人鄙視坐普通辦公椅的人,坐普通辦公椅的人鄙視跟他一樣坐普通辦公椅的 PM,然后站著寫程序的人鄙視坐 Aeron 椅子的人。
五、職場篇
寫 OS 的人鄙視寫 Web 的人,寫 Web 的人鄙視寫 desktop application 的人。
信奉 Test-Driven Development 的人鄙視先寫 code 再補 tests 的人,先寫 code 再補 tests 的人鄙視不寫 tests 的人,不寫 tests 的人鄙視又亂改需求的 PM。
搞硬件的工程師鄙視搞軟件的工程師。
后端工程師鄙視前端工程師,工程師跟設(shè)計師互相鄙視。
沒有證照的工程師鄙視考了一堆證照的工程師;上班穿休閑服的工程師鄙視上班穿西裝的工程師。
反思
“鄙視”就像一條奇怪的食物鏈,是人類繞不開的話題。曹丕曾在《典論·論文》中寫道“文人相輕,自古而然”。不止是文人,程序員的圈子也存在著復(fù)雜的鄙視鏈。但是不要以為鄙視可以體現(xiàn)自我個性、尋找歸屬感或是消除不安,它只是路人的泄欲方式。
編程語言眾多,編輯工具更是數(shù)不勝數(shù)。很多人粗暴的鄙視自己未知的領(lǐng)域,想當(dāng)然的品頭論足,像很多人鄙視 PHP 工程師,片面地認為 PHP 入門簡單,不夠規(guī)范,經(jīng)常導(dǎo)致出現(xiàn)大量垃圾代碼,殊不知每一種編程語言都有它的優(yōu)點和不足,想要做到精通都要付出很多時間和精力。
事實上,編程語言的設(shè)計都是為了解決相應(yīng)問題的,他們之間各有各的特點和優(yōu)勢,只有解決了現(xiàn)實問題才是關(guān)鍵。比如 C++做桌面軟件的較多,而Java、Objective做手機App,PHP適合做Web開發(fā),快速高效,Java也適合做Web開發(fā),它更偏向于做大型企業(yè)級應(yīng)用和安全要求更高的網(wǎng)站。
一個大公司的產(chǎn)品不可能用的是單一的語言來實現(xiàn),他們會根據(jù)語言的優(yōu)勢以及擅長的領(lǐng)域來選擇使用哪種語言。因此你就會發(fā)現(xiàn)每個大公司肯定有各種程序員。
不要輕易去鄙視任意一種編程語言或工具,很多時候你在鄙視使用其他編程語言的工程師時,他們在忙著提升自己,他們的薪資、技術(shù)和個人境界遠超于你,而你卻還傻傻地沉浸在鄙視他人的快感中。
說句實在的,程序員都是搬磚的,為啥還要相互鄙視呢?應(yīng)該團結(jié)一心,把工作的事情處理好,工資搞得高高的。到了社會,程序員們可都是兄弟!