寫程式縮排到底要用空白鍵還是tab,是開發者圈長久以來不斷爭論的問題。雖然兩者各有擁護者、孰優孰劣尚無定論,但程式問答網站Stack Overflow的調查卻發現,縮排使用習慣和薪水間有著令人出乎意料的關聯:使用空白鍵縮排的開發者,薪水比用tab縮排的開發者高。
使用tab縮排的速度快、檔案小,但在不同編輯器上排版容易亂掉
空白鍵派和tab鍵派彼此看不順眼的橋段,也曾被美劇《Silicon Valley》(矽谷群瞎傳)作為素材搬上螢幕。劇中主角Richard Hendricks因為太介意曖昧對象使用空白鍵縮排、而非tab,兩人因此鬧翻。
擁護tab的人認為,用tab鍵縮排的速度快又整齊、檔案又小,用空白鍵縮白簡直就是在鍛鍊手指肌肉。然而擁護空白鍵的人指出,使用tab最大的缺點在於,不同平台的編輯器會將tab字元視為不同長度,例如,Unix是8個字元,Windows、OSX是4個字元,一旦使用不同編譯器打開,存取可能出錯、排版容易亂掉、也易造成檔案合併上的困難。
Google規定工程師必須使用空白鍵縮排
為了證明到底哪種方法更主流,Google工程師Felipe Hoffa在2016年分析Github上前40萬個repositories、10億份程式碼、其中包含14種不同的程式語言。結果發現,除了C和GO語言外,使用空白鍵縮排的檔案遠多於tab。
而另一名Google軟體工程師Paul K. Young也在Quora上回答,Google內部規定工程師在寫C++和Java程式碼時,必須要使用空白鍵縮排,原因在於tab在不同編輯器看起來都不同,可能導致存取錯誤,或造成檔案合併上的困難。
看來,使用空白鍵縮排已經獲得Google和多數開發者認可,而Stack Overflow的最新調查,可能會讓更多tab擁護者心碎。
使用空白鍵縮排的開發者,薪水較使用tab的開發者高出8.6%
Stack Overflow分析近3萬份問卷,發現使用tab和空白鍵的人約各佔40%,剩下的人則表示會交叉使用。不過,在比較縮排使用習慣和薪水的相關性後,發現使用空白鍵縮排的開發者,平均年薪為59,140美元,而使用tab的開發者年薪則僅43,750美元;無論年資長短,使用空白鍵縮排的開發者,薪水都較使用tab的開發者高。
以不同國家來看,也發現使用tab和空白鍵縮排的使用習慣,和薪水有顯著差異。可見,使用習慣所造成的薪水差異,並非來自不同國家的經濟狀況,例如,GDP較低的國家習慣使用tab,才導致tab的平均薪資較低。
再看到tab和空白鍵使用習慣和開發類型以及程式語言的關係,發現不論哪種開發類型或程式語言,使用空白鍵的平均薪資皆高於使用tab。
而若將所有可能影響薪資的因素考量進來,包含使用tab還是空白鍵、國家、寫程式年資、開發種類和語言、教育程度、在開源圈是否活躍、是否把寫程式當作興趣、公司規模等,發現使用空白鍵的開發者,薪水較使用tab的開發者高出8.6%,相當於多了2.4年年資的薪資漲幅。
當然,這並不表示是因為使用空白鍵縮排的習慣讓這些開發者薪水較高,只能說兩者有相關性,但是很有可能有其他影響因素。看完這份調查,原本使用tab鍵縮排的人會想試試看改用空白鍵嗎?
資料來源:Stack Overflow、Gizmodo、Quora