專欄 | 九章算法
網址 | www.jiuzhang.comhtml
在 《Silicon Valley》 第三季中,Richard由於用Tab仍是空格的問題和原本情投意合的女孩吵架,質問女孩爲何用空格鍵而不用tab,最後Richard甚至說出「我不會和一個用空格鍵而不是tab鍵的人同牀共枕」,兩人不歡而散。程序員
有的人以爲,無論使用 tab 仍是空格,都沒有什麼區別。可是,事實上,這樣一個小小的習慣,卻可能有巨大的差異。(有的人經過對編譯器的設置,使得tab鍵能夠替代空格鍵,此處忽略,不討論這種狀況)面試
使用空格鍵的比使用tab鍵的工資更高算法
最近,David Robinson 作了一個有趣的研究。他根據 Stack Overflow 2017開發者調查的原始數據,進行了線性迴歸分析。研究發現,在控制了國家、接觸編程的年數、開發人員類型和語言、教育水平、公司規模等要素後,使用空格鍵的程序員工資將會比使用tab鍵的程序員高出8.6%。編程
不過,David Robinson 也同時指出:使用tab鍵或空格鍵與薪資是有相關性而不是因果關係。David 坦誠,他沒法肯定他控制了數據集中存在的全部混雜因素。微信
使用空格鍵更有利於編程工做編輯器
在不一樣的編輯器裏tab的長度可能不一致,因此在一個編輯器裏用tab設置縮進後,在其它編輯器裏看可能縮進就亂了。若是其餘人用轉換tab爲空格的編輯器打開你寫的文件,而後版本控制程序就會報衝突,很是很是麻煩。佈局
而使用空格鍵,任何人用任何編輯器查看代碼都是對齊的,包括網頁上查看(好比在GitHub上看代碼)。3d
若是代碼須要壓縮發佈,使用空格的代碼一般具備更好的壓縮率。這裏面的原理是信息量,使用 tab 縮進的代碼中,仍然不可避免的含有空格(運算符之間的間隔,註釋等等),但使用空格的代碼中根本不含有 tab,這使得 tab 縮進代碼雖然不壓縮的時候更小,但熵更高,於是壓縮率較差,壓縮以後反而更大。版本控制
好比,有些愛搞怪的程序員喜歡在代碼中畫字符畫,就會喜歡空格鍵的精準操做。
Tab 是製表符而不是縮進符,正如在 html 頁面中大量使用table進行佈局是個很差的編程習慣同樣,在編程中大量使用製表符佈局一般也不是個好習慣。
經過設置,可以使 Tab 鍵代替 Space 鍵
Tab鍵也有它的好處。其中最突出的優勢,莫過於按鍵次數少啦。
所以,不少編程老鳥他們會設置對編輯器中的 Tab 鍵是能夠進行個性化設置,經過調整 Tab 鍵的字符寬度,使之等同於 Space 鍵的操做。
那麼,你日常 Coding 的時候,是使用 Tab ,仍是空格,仍是使用 Tab 其實設置成空格呢?
推薦閱讀