對(duì)程序員來(lái)說(shuō),熬得禿頂也無(wú)法解決的四大難題是:1.?世界上最好的語(yǔ)言是什么??2.?世界上最好的編輯器是什么??3.?用?Tab好還是Space好??4.?到底要不要寫分號(hào)?
黑市的程序員天哥,把全公司女同事都加為了微信好友,開(kāi)化如他,也難逃此劫。
來(lái)自“東方魯爾”的他,深受嚴(yán)謹(jǐn)工業(yè)精神的熏陶,是Tab鍵的忠誠(chéng)衛(wèi)士,只要手底下的實(shí)習(xí)生敲響了Space鍵,天哥就會(huì)條件反射,嗷地一聲轉(zhuǎn)過(guò)頭,去重慶富僑都沒(méi)洗亮的雙眼瞬間熠熠生輝,仿佛敲中的不是鍵盤,而是他的膀胱經(jīng)。
世界上有兩種程序員:一種用Tab鍵,另一種用Space鍵。
“Tab vs Space”是業(yè)界曠日持久的圣戰(zhàn),事關(guān)程序員的信仰,天哥只是這場(chǎng)持久戰(zhàn)中的一員。
多年來(lái),戰(zhàn)火一直在twitter、reddit、4chan等各大論壇熊熊燃燒
對(duì)齊敲空格需要敲很多下,干脆弄個(gè)?Tab?鍵按一下跳一列。
“雖然最終結(jié)果都是一樣的空格,但在寫代碼的過(guò)程中,Tab鍵在不同的程序里顯示的寬度不一致,有些是4,有些是8;而Space可以保持絕對(duì)的一致,就是1。比如按一下Tab代表縮進(jìn)4格,Space就得噠噠噠噠按4下。
更不要說(shuō)Space不能自動(dòng)對(duì)齊,Tab可以。
為什么這些孫子敲Tab的時(shí)候,前面就非要帶那么幾個(gè)Space呢?”
我們外行人看這張圖,就只在看貓而已。
“當(dāng)遇到使用Space的程序員,我都情不自禁的會(huì)向他投去心疼傻子的眼神,而對(duì)方也會(huì)向我回敬相同的眼神?!?/p>
使用Tab鍵的程序員堅(jiān)信他們才是真正的程序員,用Space鍵的程序員經(jīng)常踢小貓,打小狗,黨同伐異,拉起戰(zhàn)線。
在實(shí)際操作中,只有Tab派始終致力于追求前人栽樹(shù)后人乘涼的境界,為接活兒的程序員解決了壓縮率的心病。
“用Tabs鍵的文件更小,我公司是做壓縮算法的,相信我?!?/p>
--為什么書(shū)多又厚?--可能是里面有很多空格吧。
這種高瞻遠(yuǎn)矚在生活的方方面面都自然流露。
《硅谷》第三季,理查德與Facebook工程師女友分手,就是因?yàn)樗麖呐延肧pace鍵聯(lián)想到多年之后婚后的矛盾,包括對(duì)孩子的教育問(wèn)題。
雖然兩個(gè)人床都還沒(méi)上過(guò)一次,但程序員的想象力是超前的。
在一個(gè)歷史文檔里發(fā)現(xiàn)曾經(jīng)用Space縮進(jìn),那是我羞恥的過(guò)去
作為一眼能看出底下人用了全角還是半角、Space鍵還是Tab鍵的老板,理查德經(jīng)常自我標(biāo)榜為正義Tab的化身,代表真理: Tab鍵是情懷!是傳統(tǒng)藝術(shù)!是對(duì)排版印刷術(shù)的后現(xiàn)代化致敬!
他對(duì)員工最大的肯定就是:你今天的縮進(jìn)非常棒!
“作為一個(gè)處女座,跟別人一起做項(xiàng)目,自己一個(gè)一個(gè)把所有用Space縮進(jìn)的地方刪掉換成Tab,后來(lái)不耐煩了,都換成了SB。
所有編輯器都知道?“如何插入一個(gè)Tab”,只有你不知道?!?/p>
上周才來(lái)的第四個(gè)實(shí)習(xí)生自從小拇指受傷后,就再也沒(méi)法工作了,因?yàn)樗麘T用Space,小拇指肌無(wú)力。
在這個(gè)鄙視鏈里,Space一方明顯落了下風(fēng),他們按鍵的時(shí)候看著就像勁舞團(tuán)遺留的頑固毒瘤。
可是按代碼量算錢的話,4個(gè)空格比一個(gè)Tab多4倍,量顯得多,所以工資更高。
“為了掙錢,我入職后第一件事,就是把Tab都換成Space?!?/p>
StackOverflow開(kāi)發(fā)者調(diào)查顯示,在28,657名經(jīng)驗(yàn)豐富的程序員中,41.8%的程序員使用Space,只有40.7%使用Tab。
更實(shí)際的是,使用Space的程序員平均年薪59,140美元,比用Tab的平均年薪43,750美元高一長(zhǎng)截。
隨著工作經(jīng)驗(yàn)的增長(zhǎng),使用Space能把程序員的工資提高?8.6?個(gè)百分點(diǎn),用Tab的程序員卻毫無(wú)還手之力。
為了拿高工資,很多驕傲的Tab派默默地把Tab都換成了Space,敲四下顯得工作認(rèn)真,為了討好老板,有人甚至撬掉了Tab鍵。
不用Space青軸鍵盤豈不是白買了?
“只有初學(xué)者才用Tab鍵,”Space Man對(duì)人生有強(qiáng)烈的操縱感,“真的高手絕對(duì)不會(huì)多按一下,一切早已成竹在胸?!?/p>
?Tab 所謂的自動(dòng)縮進(jìn),只能解決行首對(duì)齊,行末還要靠空格。
混用Tab和Space的,八成是代碼詩(shī)人,詩(shī)人是很容易挨打的。
他們浪漫的價(jià)值觀非但沒(méi)有帶來(lái)和平,反而造成了更大的混亂,沒(méi)有統(tǒng)一的標(biāo)準(zhǔn),就像后入完之后又覺(jué)得正面上更爽,整個(gè)世界的秩序都被攪糊了。
他們相信寫程序如品茶,喝到嘴里,味道都是一樣。
退休的伊靈用指尖摩挲著他的鍵盤,從包漿的Tab鍵徘徊經(jīng)過(guò)A和Z,停在了狹長(zhǎng)的Space鍵上,在他的職業(yè)生涯早期,他也參與到過(guò)這場(chǎng)“圣戰(zhàn)”中。
在這里,Table就像美軍的M16,方便,先進(jìn),自動(dòng)化,Space就像卡拉什尼科夫步槍,容易哆嗦卡蛋,但是那種穿著人字拖揮毫的感觸,只有你自己懂。
“我當(dāng)年看了很多帖子,然后趾高氣揚(yáng)地跟對(duì)方說(shuō)他們錯(cuò)了,老子才是對(duì)的。尋找正確答案花費(fèi)了我多年的時(shí)間,現(xiàn)在我終于找到了,答案就是……這些破事無(wú)關(guān)緊要!”
這跟拉屎習(xí)慣用抽紙卷紙小包紙沒(méi)太大差別
就像煎餅放油條還是薄脆,搭車坐副駕駛還是后座這樣的問(wèn)題,都屬于社會(huì)禮儀。
也和你更喜歡在深夜對(duì)準(zhǔn)幻想的屁股或者胸部噴發(fā)欲望一樣,人性的抗?fàn)幨菬o(wú)解的。
咸甜之爭(zhēng)打起來(lái)可以持續(xù)幾個(gè)世紀(jì),我們經(jīng)常忽略口味本來(lái)的目的就是為了好吃,咸和甜只是通往美味的不同岔路。
炒爆的買房也一樣,都只是通向某種生活的方法論,不是你最終的價(jià)值觀。
用什么方法不重要,重要的是不要失去控制。
本來(lái)我以為這場(chǎng)布滿硝煙的戰(zhàn)爭(zhēng)結(jié)束了,直到前天,又來(lái)了個(gè)實(shí)習(xí)生,慣用3格Space,被封為Space Punker a.k.a.奇數(shù)朋克,他的解釋是自己對(duì)奇數(shù)有天生的感知力。
只有我們知道天哥為什么沒(méi)看上他,結(jié)局從來(lái)沒(méi)變過(guò),一切都敗給了對(duì)齊。
? ? ? ?你想成為一名優(yōu)秀的C/C++程序員嗎?如果你感興趣或者有需求的話,筆者推薦一個(gè)編程技術(shù)學(xué)習(xí)交流聚集地→C語(yǔ)言/C++進(jìn)階之路 - 專題 - 簡(jiǎn)書(shū)!小白、萌新和大神們正在等著你一起探討編程,氛圍超好哦!