有錢(qián)Python,沒(méi)錢(qián)PHP,編程語(yǔ)言也嫌貧愛(ài)富
近日,在 Stack Overflow 全球移動(dòng)開(kāi)發(fā)者分布的調(diào)查報(bào)告中發(fā)現(xiàn),相較于高收入的國(guó)家,Android 在低收入國(guó)家應(yīng)用得更加廣泛。
那么這究竟意味著什么?不禁引發(fā)我們深思,不同經(jīng)濟(jì)背景下的國(guó)家編程技術(shù)有何不同,它又如何影響著我們對(duì)全球軟件開(kāi)發(fā)行業(yè)的看法。本篇文章將帶領(lǐng)大家共同探討這些差異,并解讀將軟件開(kāi)發(fā)行業(yè)劃分為高收入國(guó)家和世界其他地區(qū)的必要性。
調(diào)查報(bào)告分析基于 2017 年(1-8 月)中使用最多的 250 個(gè)編程語(yǔ)言標(biāo)簽。為了減少誤差,我們僅分析了這段時(shí)間內(nèi)訪問(wèn)各種編程語(yǔ)言達(dá) 500 萬(wàn)次及以上的 64 個(gè)國(guó)家。
人均 GDP 相關(guān)的技術(shù)
在近期的一篇“Where in the World is Mobile Development?”文章中,我們使用“ Stack Overflow Trends tool”分析得出 Android 流量占比往往與一個(gè)國(guó)家的人均 GDP 負(fù)相關(guān)。這促發(fā)我們想要了解其他的編程語(yǔ)言是否也如此。
在挖掘主要的編程語(yǔ)言和平臺(tái)時(shí),除了 Android 之外,其他一些主要語(yǔ)言還有 PHP、Python 和 R。
從上圖可以看出,Android 和 PHP 的使用數(shù)量與一個(gè)國(guó)家的收入呈負(fù)相關(guān),而 Python 和 R 語(yǔ)言則正好相反,呈現(xiàn)出越發(fā)達(dá)國(guó)家使用的頻率越高。在這種趨勢(shì)之下,我們也發(fā)現(xiàn)了一些特例,諸如韓國(guó)使用 Android 頻率比預(yù)期的多,而中國(guó)更多的是使用 Python,但通常而言,這種語(yǔ)言使用流量和國(guó)家關(guān)聯(lián)性還是比較強(qiáng)的。
在這里也需要特別聲明的是:基于以上數(shù)據(jù)統(tǒng)計(jì),并不意味著編程語(yǔ)言的選擇會(huì)影響到一個(gè)國(guó)家的平均收入,而一個(gè)國(guó)家的 GDP 也不會(huì)影響開(kāi)發(fā)者對(duì)于編程語(yǔ)言的抉擇,二者并沒(méi)有任何的因果關(guān)系。
為何要將世界的軟件開(kāi)發(fā)行業(yè)劃分為兩種?
當(dāng)研究趨勢(shì)時(shí)發(fā)現(xiàn),將軟件開(kāi)發(fā)行業(yè)分為兩組國(guó)家(高收入和非高收入)比考慮其他一系列相關(guān)的因素更有用。作為一個(gè)有價(jià)值的分類,我們可以基于人均 GNL(國(guó)民總收入)使用世界銀行收入分類進(jìn)行劃分。
共計(jì)有 78 個(gè)高收入經(jīng)濟(jì)體,主要由美國(guó)和加拿大、西歐、中東和東亞部分地區(qū)以及澳大利亞/新西蘭組成。 我們已經(jīng)對(duì)國(guó)家間差異(如主成分分析)的根本驅(qū)動(dòng)因素進(jìn)行了一些分析,認(rèn)為這是一個(gè)合理的分工,而且它比其他分割方法更有意義,比如東半球與西半球。 (例如,澳大利亞在編程技術(shù)訪問(wèn)及使用方面來(lái)說(shuō)與中國(guó)或印度尼西亞更為類似)。
高收入國(guó)家在技術(shù)上的差異?
現(xiàn)在將世界的軟件開(kāi)發(fā)劃分為兩個(gè)版塊:高收入國(guó)家和非高收入國(guó)家,那么兩者在技術(shù)上的差異究竟在哪?
本文提取出幾個(gè)有趣的見(jiàn)解:
數(shù)據(jù)科學(xué)技術(shù)的差異:如上文所述,Python 和 R 語(yǔ)言與一個(gè)國(guó)家的收入有關(guān)。在高收入國(guó)家,Python 的訪問(wèn)次數(shù)是世界其他地區(qū)的兩倍,R 大約是世界其他地區(qū)的三倍。此外,我們也可能注意到一些小的標(biāo)簽,大多數(shù)是科學(xué)技術(shù)中 Python 和 R 語(yǔ)言的包,如 pandas、numpy、matplotlib 和 ggplot2。這表明兩種語(yǔ)言的部分收入差異可能是因?yàn)樗鼈冊(cè)诳茖W(xué)和學(xué)術(shù)研究中的應(yīng)用。在更加富有的工業(yè)化國(guó)家,這些技術(shù)使用頻率更高,科學(xué)研究占經(jīng)濟(jì)較大的部分,程序員也可獲得更高的學(xué)位。
C / C ++:C / C ++是另外兩種在發(fā)達(dá)國(guó)家常被訪問(wèn)的語(yǔ)言。猜測(cè)其主要原因之一是和國(guó)家的教育有關(guān):因?yàn)樵诖饲耙黄恼?,我們得?C 和 C++ 在美國(guó)大學(xué)不按比例的成為受訪問(wèn)語(yǔ)言之一。另外一個(gè)原因可能與電子和制造業(yè)的地理分布有關(guān)。
PHP 和 Android:在低收入國(guó)家中,除了 Android 開(kāi)發(fā)技術(shù)比較廣泛外,PHP 也排名前 5。有趣的是,CodeIgniter 是一個(gè) PHP 開(kāi)源框架,而這個(gè)框架在低收入國(guó)家是經(jīng)常被單獨(dú)訪問(wèn)的標(biāo)簽。進(jìn)一步調(diào)查發(fā)現(xiàn),在南/東南亞(特別是印度、印度尼西亞、巴基斯坦和菲律賓地區(qū)),CodeIgniter 訪問(wèn)量很大,而美國(guó)和歐洲的訪問(wèn)流量很少。由此得出,CodeIgniter 可能是建立網(wǎng)站的外包公司的常用選擇。
結(jié)論:為什么這么重要?
這些結(jié)論對(duì)于編程語(yǔ)言生態(tài)系統(tǒng)是一個(gè)有趣的事實(shí)。通過(guò)本文,我們區(qū)分了兩個(gè)“混合”在一起的軟件開(kāi)發(fā)行業(yè)問(wèn)題。通常,我們會(huì)比較感興趣哪些技術(shù)使用的更多,可以驅(qū)動(dòng)更多的流量,諸如了解 Flash 這種隨著時(shí)間而逐漸消失的數(shù)據(jù)。如果我們要列一個(gè)***的編程技術(shù)排行榜,那么高收入國(guó)家和低收入國(guó)家會(huì)有所不同:
例如,到目前為止,Python 在高收入國(guó)家常被訪問(wèn)標(biāo)簽中排名第二,而在世界其他地區(qū)只有第 8 位;R 語(yǔ)言在高收入國(guó)家排名第 15 位,但它在其他國(guó)家排名甚至不會(huì)進(jìn)入前 50。
因此,對(duì)于不同國(guó)家的企業(yè)招聘,招聘者及人才都需要一組不同的參考值。