轉帖|行業資訊|編輯:我只采一朵|2017-06-20 13:53:44.000|閱讀 163 次
概述:你用Tab還是空格來處理代碼縮進?這個問題通常會引起程序員間的”圣戰“,它已經無數次引起爭論了。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
原作者:David Robinson
譯者:詩書塞外
你用Tab還是空格來處理代碼縮進?
這個問題通常會引起程序員間的”圣戰“,它已經無數次引起爭論了。我自己是用空格的,但是我從沒認為兩種習慣之間有什么很重要的區別。但是今天我們要公布Stack Overflow 2017開發者調查得到的一部分源數據,而且分析表明用空格還是用Tab真的是有所謂的!
用空格的程序員比用Tab的程序員掙錢多
有28657名職業程序員(他們不是學生也不是實習生)參與了這個”用Tab還是用空格的調查“。這之中,40.7%的程序員使用Tab,41.8%的程序員使用空格,17.5%的程序員兩者都用。其中,12426名程序員填寫了Ta的薪水。
分析這些數據,我們得到一個很有趣的結論,用空格縮進的程序員比用Tab縮進的程序員賺的更多,即便兩者擁有相同的編程經驗。
從圖中可以看出,使用空格縮進的程序員的薪資中位數是59,140美金,而使用Tab縮進的程序員的薪資中位數是43,750美元。其他國家程序員的薪資已經由當地貨幣換算成美元了。同時使用空格和Tab的程序員薪資水平基本和使用Tab的情況差不多:在后面分析中我們會忽略這部分混用的程序員。
這個結果很令人驚訝,但是結果本身還不能說明什么問題。當我第一次看到這個結論的時候,我懷疑是不是某一個因素影響了結果,比如程序員所在國家或者使用的編程語言。比如可能人均GDP比較低的國家的程序員更喜歡用Tab,而有理由推斷這樣會拉低用Tab程序員的平均薪資。
如果原因真的如上所想,那么在國家內部進行統計應該就不會有這個令人驚訝的結論了。所以我們選取了樣本最多的幾個國家,在國家內部進行統計。
在歐洲這個現象相對比較弱,而在印度這個現象卻相當明顯。不過可以看到,無論在哪個國家內部,使用空格縮進的程序員薪資都比用Tab縮進的程序員高,所以可以證明不是國家這個單獨的因素導致了這個差別。
另一方面,我們知道不同類型的程序員會有不同的習慣:比如DevOps會傾向于用空格,而移動開發者更喜歡用Tab。這個差異主要因為他們使用的語言不同。這次的調查中程序員們提供了他們使用的語言的情況,和他們是什么類型的開發者。
從統計數據中看,無論是在同一語言內部,還是同種開發者內部,使用空格的程序員都比使用Tab的程序員薪資更高。
我還嘗試了很多其他的因素,比如教育水平和公司規模,得到的結果都是相似的:用空格縮進的程序員薪資更高。我們在這里把調查的提供出來,希望統計學家們能夠找出導致這個現象的因素。
評估“空格 or Tab”選擇對薪資的影響
如果我們把影響薪資的所有因素都放在一起,那么“空格 or Tab”的選擇在這里占有多大的權重呢?
為了解答這個問題,我使用以下因素對工資做了一個線性回歸:
這個模型預測使用空格縮進會使得工資相較于使用Tab縮進高8.6%,p值10^-10的置信區間為(6%, 10.4%).(通過這個預測工資的模型,我們能夠估算每個因素對工資貢獻的百分比,而不是美元絕對值)。從另一個角度計算,我們得出使用空格縮進相當于增加了2.4年的工作經驗。
結論
嗯…這確實難以置信,我最開始也沒想到是這樣的結果。但是即便我嘗試了各種解釋,這個結論還是站得住腳。我甚至加入了一些調查中沒有的因素去計算,這個現象始終都是存在的。
這個結論并不能說明因果關系,我始終不敢確定我已經考慮到所有的影響因素了。如果你是一個數據科學家,統計學家,或者分析師,我們鼓勵你下載源數據來檢查。如果你想重現這次試驗的結果,這里有這篇文章用到的。
我們很希望能聽到任何有關于這個現象原因的理論。
為了保住我的薪水,我決定繼續用空格縮進….
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn