就原始問題的數(shù)量而言,JavaScript 是 Stack Overflow 中被提問最多的編程語言,主要原因是無論開發(fā)人員以何種方式使用 Internet,都需要了解一些 JavaScript。因此在大量不同的應(yīng)用程序和服務(wù)中都可以看見 JavaScript 的身影。
如果我們從時間維度來看,從 2011 年起,Python 在 Stack Overflow 中的提問數(shù)量出現(xiàn)了明顯的上升,這可能要歸因于數(shù)據(jù)科學的發(fā)展。2019 年,Python 成功超越 JavaScript,成為 Stack Overflow 中提問數(shù)量最多的編程語言。
開發(fā)人員到底都在問哪些問題?最受質(zhì)疑的框架、包、函數(shù)和方法是什么? 最令開發(fā)人員頭疼的數(shù)據(jù)類型是什么?不同語言之間的問題存在哪些共性和差異?
為了搞清楚上述問題,我們從上面這 11 種編程語言的提問中各抽取了投票最高的 1000 個問題,并使用 Python 做了數(shù)據(jù)清理,然后將這 11000 個問題整合到一個 JavaScript 詞云算法中,從中我們得到了一些結(jié)論。
JavaScript 面世已有 23 年,在 Stack Overflow 中也已經(jīng)有 11 年,其中“jquery”是迄今為止最受質(zhì)疑的 JavaScript 框架。
Python 最早出現(xiàn)在 1990 年,如今是數(shù)據(jù)科學家首選的編程語言之一。Python 的問題比較常出現(xiàn)在連接數(shù)據(jù)處理庫,例如“panda”和“dataframe”。
Python 是一種通用的“膠水”語言,可以應(yīng)用于不同的技術(shù)領(lǐng)域,這也是為什么 Web 開發(fā)框架 django 會收到比較多的疑問。
R 語言也是數(shù)據(jù)科學家常用的編程語言。但與 Python 不同的是,R 語言幾乎只用于數(shù)據(jù)處理,因此關(guān)于 R 語言的疑問集中在“dataframe”、“datatable”和“matrix”。
Python 和 R 都有優(yōu)秀的數(shù)據(jù)操作庫,如果就數(shù)據(jù)可視化而言,很多人認為 R 語言要優(yōu)于 Python。但是在 Stack Overflow 中的實際情況是,R 語言中的數(shù)據(jù)可視化庫“ggplot”被開發(fā)者提問的最多。
Ruby 出現(xiàn)于 90 年代中期,其獲得開發(fā)者比較多的關(guān)注是在 2005 年,David Heinemeier Hansson(DHH) 發(fā)布了基于 Ruby 的開發(fā)框架 Ruby on Rails。目前開發(fā)者提問最多的也是 Ruby on Rails。
C# 是微軟公司在 2000 年發(fā)布的一種面向?qū)ο蟮木幊陶Z言,運行于 .NET Framework 和 .NET Core 上。
C++ 發(fā)布于 1985 年,是目前電子游戲開發(fā)人員的首選語言。針對 C++,開發(fā)人員的提問主要集中在多邊形基本構(gòu)建塊 vector,因為多邊形是三維視頻游戲的基本視覺構(gòu)建塊。
Java 首次發(fā)布于 1995 年,是一種寫一次可以在任何地方運行的通用編程語言。Java 是在 90 年代末和萬維網(wǎng)早期的 PC 熱潮中流行起來的,是許多 Windows 應(yīng)用程序背后的驅(qū)動力?,F(xiàn)在,Java 主要被用來開發(fā) Android 應(yīng)用程序。
Objective-C 首次發(fā)布于 1984 年,是這 11 種編程語言中最古老的。Objective-C 是蘋果為 OSX 操作系統(tǒng)提供支持的主要語言,現(xiàn)在主要為 iPhone 上的 iOS 應(yīng)用程序提供支持。
Swift 首次出現(xiàn)于 2014 年,目前在蘋果的開發(fā)領(lǐng)域已經(jīng)取代了 Objective-C。
從上面 Swift 的詞云中,我們發(fā)現(xiàn)了一個很有趣的標簽“Objective-C”,可能的原因是很多 iOS 開發(fā)者希望通過 Stack Overflow 來學習更多的知識。
PHP 首次發(fā)布于 1995 年,被設(shè)計為用于 web 開發(fā)的服務(wù)器端腳本語言。當然,PHP 現(xiàn)在的用途仍是如此,所以圍繞 PHP 的提問主要集中在“l(fā)aravel”框架。
與前 10 種功能齊全的編程語言不同,SQL 是專為數(shù)據(jù)操作所設(shè)計的。正因為此,SQL 最常見的痛點都圍繞著數(shù)據(jù)庫訪問,詞云中的關(guān)鍵字主要有 sever、mysql、database、query、select 等等。
隨著時間的推移,每一種編程語言都有一個十分擅長的使用場景,例如 R 語言和數(shù)據(jù)科學,Swift 和 iOS 開發(fā),C++ 和視頻游戲開發(fā)。使用場景不同也解釋了為什么大家提問的類型和方向會有所不同。除了差異性,我們也從調(diào)查中看到了一些共性的問題,例如在基本的數(shù)據(jù)類型中,字符串和數(shù)組是經(jīng)常出現(xiàn)的痛點。
附 11000 個問題的詞云:
原文鏈接:
https://www.globalapptesting.com/blog/picking-apart-stackoverflow-what-bugs-developers-the-most
你也「在看」嗎???
聯(lián)系客服