search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

程序員的技術選擇:發達國家和發展中國家有這些差異

本文由 伯樂在線 - 黃小非 翻譯。未經許可,禁止轉載!

英文出處:stackoverflow。歡迎加入翻譯組

【導讀】:Stack Overflow 工程師最近 David Robinson 做了一次數據分析,總結了程序員的技術選擇和所在國家收入之間的關係。

Stack Overflow 非常熱衷於利用數據來和用戶分享對全世界開發者社區的認知。比如這篇關於 Android 開發者分佈的文章就是個很好的例子,它通過對全球開發者在 Stack Overflow 上詢問 Andorid 相關問題統計,得出了結論:收入較低國家的開發者詢問 Android 問題的數量要高於高收入國家的開發者。

這個問題引發了我們的聯想:高收入國家和低收入國家之間,開發人員在技術選擇方面有什麼不同呢?這種不同又會如何影響全球的軟體開發產業呢?在本文中,我們就探索了上述的問題,並且發現通過收入來區分軟體工業的發展,是一種很有效的辦法。

本文中的所有分析結論都是基於 2017 年 1 月 到 8 月的數據,並挑選在這段時間內出現頻率 Top 250 標籤進行統計的。為了減少數據樣本過大可能造成的偏差,我們集中選取了相應時間段內來自 64 個國家的超過 500 萬個問題進行分析。需要說明的是,這些數據很大程度上只反應了英語開發者們的行為模式(當然通過對西班牙語和葡萄牙語站點的分析,發現在墨西哥,西班牙這些國家,得到的分析結論和英語國家差不多)。

技術和人均 GDP 的相關性

在最近的一篇文章中,我們通過計算 Android 相關問題的比例(就是某個國家Android相關的問題的數量占該國整體Stack Overflow問題數據量的百分比),發現這個比例和這個國家的人均GPD是成反比的。所以我們也想知道,其他種類的技術和人均GDP的關係。

因此我們調查了主流的編程語言和平台,包括PHP、Python、R 等等。

統計發現,來自某個國家 Android 相關問題和 PHP 相關問題的數量是和國家的收入情況成反比的,而同 Python、R 語言相關問題的數量則是正比。當然,在每一個統計案例里都會有例外的情況(例如,來自人均收入較高的韓國的 Android 問題數量要遠超我們的預期,來自的 Python 問題的數量相對較低),但是總體來看,這種正反比關係還是很有說服力的。(多重假設檢驗調整后,每一種語言案例統計的決定係數都在 0.5 到 0.6 之間,P 值為 10 的負六次方)。

必須要說明一下,我們得出這些結論不是要說明什麼因果性。我們並不是說,如果你選擇了那些富有國家的開發者使用的編程語言,那麼你所在的國家就能變成富有的國家。並且我們也不是說,國家的經濟會直接影響到某種計算機技術的使用。我們只是發現,把經濟和社會因素(例如教育程度,軟體工業發展的年限,外包的水平等)看成一個整體,從總體上會與這個國家的財富多寡相關。

軟體開發產業是按什麼標準一分為二的?

在我們調查軟體技術趨勢時,通常只會把全世界的國家分成兩組(即高收入國家和非高收入國家)來統計。我們不會把各國分成許多組來把相關性問題複雜化。因為在這方面已經有了很成熟的劃分標準,我們就直接用世界銀行收入分級標準就可以了,這種分級法是以人均國民總收入(GNI)為基準的(具體的分類方法可以看這裡

上圖顯示,全球一共有 78 個國家屬於高收入國家,這些國家多半由美國、加拿大、西歐、部分中東和東亞國家,以及澳大利亞/紐西蘭構成。通過統計學的手段可以證明,這種劃分方法是有足夠依據的,而且這種劃分方法比其他的方法更有意義,比如很多時候人們喜歡按照東西半球來劃分國家,可實際上澳大利亞的技術分佈情況卻更接近美國和歐洲,而不是同屬東半球的和印度尼西亞。

這種分類方法同時也把 Stack Overflow 的訪問量分成了兩組,其中高收入國家訪問量超過 2/3,剩餘的國家佔了訪問量的不到 1/3。(得到這樣的結果是和被調查國家軟體開發人員的數量、互聯網的基礎設施的情況、以及說英語人數的情況嚴重相關的)。其中非高收入國家的訪問量的排名分別為:印度、巴西、俄羅斯和。

高低收入國家使用的技術有什麼不同?

我們已經把軟體開發的世界分成了兩個區域了。那麼高收入國家和非高收入國家在使用的技術上有什麼不同呢?

我們從中可以看到一些有趣的結論:

數據科學技術的不同:我們之前已經看到,Python 和 R 語言的使用情況和國家的富有程度是相關的。Python 在高收入國家使用的規模大約是其餘國家的兩倍之多,而 R 語言的使用規模差達到了 3 倍多。我們還注意到,通過對內容更具體的標籤(tags)的統計,發現在Python和R科學計算領域,使用不同的計算包的人收入跳度很明顯,例如 pandas、numpy,、matplotlib 和 ggplot2。這說明了在數據科學研究方面,不同的技術角色之間存在收入鴻溝。當然在越富有,工業化程度越高的國家,數據科學研究的占國家經濟的比例越大,程序員的學歷也越高,這個結論是符合邏輯的。

C/C++:在 Stack Overflow 上還有兩個值得一提的語言就是 C 和 C++,高收入國家的程序員訪問這兩種語言的次數比低收入國家程序員多。對這個現象,有一種猜測是,它和教育機構有關:因為在之前的一篇《學生如何使用Stack Overflow》的帖子里,我們發現美國的大學對 C/C++ 的訪問頻率是非常高的。當然這個現象也可能和電器製造商的地理分佈情況有關。

PHP Android:我們在以前的一篇《全球移動開發調查》的帖子中討論了 Android 開發的情況,除此之外,還有一種技術和低收入國家息息相關,那就是 PHP。在Stack Overflow上,來自低收入國家的對 CodeIgniter(一個PHP開源框架)的問題非常的多,而高收入國家隊這個框架的提問幾乎沒有,這麼大懸殊實在是一個很有趣的現象。經過進一步的調查,發現對 CodeIgniter 的重度訪問來自於南亞,東南亞(尤其是印度、印度尼西亞、巴其斯坦和菲律賓),來自美國或者都周的訪問幾乎沒有。所以可以推斷,這個框架主要是這些外包公司用來開發門戶網站用的。

結論:統計這些有什麼用?

我們做這些統計當然是因為對編程語言生態系統的興趣。而且這對我們日後要做的數據探索有很大的啟發。

我們在說軟體開發工業方面的問題時,要意識到我們的問題都是由兩個單獨的問題混合起來的,這很重要,因為這種混合會給我們帶來更多的信息。

比如,我們想找到是哪些技術給Stack Overflow帶來最大的流量,例如:《探尋Flash技術不不斷縮水的原因》。如果我們把訪問量最多的技術列出一張表,你會發現高收入和低收入的國家的分佈是完全不一樣的。

例如,2017 年以來,Python 是來自高收入國家被訪問第二多的話題,但是在非高收入國家,Python 只能排到第 8 位。而本文作者自己使用的 R 語言,在高收入國家訪問數量的排名是第 15,但是在非高收入國家排名卻在 50 開外。

這些數據對 Stack Overflow 了解全球的開發者生態來說都是很重要的數據。而對於美國的技術招聘者來說,他們需要掌握未來的動向,所以他們需要了解更多的方面的數據,而不僅是「來自印度的學生要學習什麼樣的計算機語言」、「技術投資人在肯亞尋找合適的技術公司」這類話題。

打賞支持我翻譯更多好文章,謝謝!

黃小非

黃小非:畢業於重慶大學計算機系,南開大學軟體工程碩士,SCJP。 目前在一家國企信息中心任職軟體開發工程師。主要技術興趣為Java平台相關技術、系統構架、C/C++、計算機圖形學等。(新浪微博:@黃小非) 個人主頁 · 我的文章 · 65 ·


熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦