[譯] 剖析 Stack Overflow,開發者遇到最多的的 Bug 是哪些?

Stack Overflow 自 2008 年成立以來,一直在迅速拯救各類類型的開發者。從那時起,開發者在全部開發領域中提出了數以百萬計的不一樣問題。前端

可是是哪些類型的問題使得開發者被迫轉向 Stack Overflow 求助呢?java

咱們挑選了 11 種最流行的編程語言(經過 Stack Overflow 標籤的頻率來衡量),並進行了一項研究,試圖揭示這些問題中的一些共性和差別。mysql

可是在咱們開始研究以前,讓咱們先仔細看看咱們選擇的 11 種語言,以下所示。jquery

JavaScript 是整個 StackOverflow 最常被問及的語言。

就問題的原始數量而言,自 Stack Overflow 成立以來,JavaScript 一直是最常被問及的語言。這多是因爲 JavaScripts 在衆多不一樣的應用程序和服務中都有運用:無論你以何種方式接觸並使用互聯網,你可能都須要瞭解一點 JavaScript。android

可是,雖然 JavaScript 整體上多是第一,但當咱們將數據分開時,咱們會看到一個新的需求頂峯。ios

Python 將在 2019 年取代 JavaScript 稱爲最常被問及的語言。

2011 年哈佛商業評論將數據科學家稱爲「21 世紀最性感的工做」。從那時起,Python — 數據科學家的首選語言之一 — 已經愈來愈受歡迎......以致於在 2019 年它已經取代了 JavaScript,成爲 StackOverflows 最常被問及的編程語言。laravel

(要麼 Python 正在迅速成爲最流行的編程語言,要麼只是 Python 比其餘語言擁有更大比例的新晉開發者!)git

但這些開發者究竟要問的是什麼?最常被問及的框架、包、函數和方法是什麼?哪一種數據類型最讓開發人員感到痛苦?各類語言間這些問題有何不一樣?github

爲此,咱們:objective-c

  1. 爲上面列出的 11 種編程語言中的每種語言提取了 1000 個最受歡迎的 Stack Overflow 問題。
  2. 在 Python 中作了一些數據清理(天然地使用 Pandas)
  3. 將這 11000 個問題(超過 96000 個單詞)整合到一個 JavaScript 詞雲算法中,以便於咱們對不一樣語言中的難點痛點有一個總體的瞭解。

結果以下。

JavaScript

StackOverflow 上提到最多的 JavaScript 用詞。

JavaScript 已經誕生了 23 年;而 Stack Overflow 才 11 年。在這 11 年中,「jquery」(中左)是迄今爲止最常被問及的 JavaScript 框架。

Python

StackOverflow 上提到最多的 Python 用詞。

Python 實際上比 JavaScript 早誕生 6 年。首先出如今 1990 年,Guido van Rossum 的創意讓其變成了數據科學家的首選語言之一。固然,它最多見的一些痛點在於數據處理庫:「pandas」(中左)和 「dataframe」(中上部)就在其中。

然而,Python 是一種通用的管道-膠水式語言,它涉及到許多不一樣的技術領域,這解釋了爲什麼 Web 開發框架 「django」(中下部)相對頻繁地被問及。

R

StackOverflow 上提到最多的 R 用詞。

也許是數據科學家選擇的第二種語言,R 與 Python 的不一樣之處在於它幾乎是專門用於此目的的。一些數據處理特定的概念,如 「dataframe」(右上角)、「datatable」(右上角)和 「matrix」(中間)彷佛讓 R 用戶感到頭疼。

Python 和 R 都有出色的數據操做庫,儘管在數據可視化方面,有些人認爲 R 比 Python 更具優點。說到這裏,數據可視化庫 「ggplot」(中心)是迄今爲止 R 語言中最常被問及的概念。

因此也許 Python 用戶發現 matplotlib 更容易掌握!

Ruby

StackOverflow 上提到最多的 Ruby 用詞。

Ruby 最先出如今 90 年代中期,如今它找到了一個服務器端框架 ruby-on-「rails」(右上角)做爲歸宿。

C#

StackOverflow 上提到最多的 C# 用詞。

C#(C Sharp,2000)主要是由微軟爲其 .NET 框架(「net」,中右)開發的。

C++

StackOverflow 上提到最多的 C++ 用詞。

C++(1985)已經成爲視頻遊戲開發者的首選語言。三維視頻遊戲的基本視覺構建塊是多邊形,多邊形的基本構建塊是「矢量」(中右)。

Java

StackOverflow 上提到最多的 Java 用詞。

Java(1995)被建立爲通用的「一次編寫隨地運行」的語言。它在 90 年代末和萬維網早期的 PC 繁榮時期變得流行,是許多 Windows 應用程序背後的驅動力。

但最近它在 「Android」(中右)應用程序開發中找到了歸宿。

Objective-C

StackOverflow 上提到最多的 Objective-C 用詞。

在這項研究中,最古老的語言是 Objective-C(1984),它是蘋果公司在 OSX 操做系統上支持的主要語言,直到最近引入 Swift 以前,它仍是支持 「iPhone」(中間)上的 「iOS」(左下角)應用程序的主要語言。

Swift

StackOverflow 上提到最多的 Swift 用詞。

Swift 於 2014 年首次亮相,在蘋果開發領域取代了 Objective-C,儘管標記爲 #swift 的 Stack Overflow 問題中提到 「objective-c」(中右)的頻率可能表明了成千上萬的 iOS 開發人員但願經過 Stack Overflow 來更新他們的知識。

PHP

StackOverflow 上提到最多的 PHP 用詞。

PHP(1995)被設計爲用於 Web 開發的服務器端腳本語言。今天,它仍然用於這個目的,你能夠在圍繞 「laravel」 框架(中左)的問題頻率中看到這一點的證據。

SQL

StackOverflow 上提到最多的 SQL 用詞。

SQL 並不像本研究中的其餘語言那樣是一種功能齊全的編程語言;它是專門爲一項工做設計的:數據操做。因爲這種特殊性,SQL 最多見的癥結就在於數據庫的訪問:「sever」、「mysql」、「database」、「query」、「select」。


每一種編程語言都是面向或甚至是專爲一個特定技術場景而準備的。R 是數據科學,Swift 是 iOS 開發,C++ 是視頻遊戲開發。這就解釋了出現的問題類型的一些差別。這也解釋了爲何咱們在 SQL 中看到 「database」 是一個常被問及的概念,而不是在其餘語言中,例如,Objective-C。

儘管存在這些明顯的差別,但這些可視化代表不一樣領域內的一些基本類似之處。底層的數據類型,如字符串和數組(但顯然不是整數、浮點數或布爾值)是常常出現的痛點,這會致使全部層級和信仰的開發人員轉向動手操做鍵盤打開 Stack Overflow。

本着團結的精神,這裏有一個詞雲,表示咱們提取的全部 11000 個問題:

StackOverflow 上 12000 個熱門問題中提到最多的單詞。

谷歌能夠幫助解決一些問題......

......但對於其餘的一切,咱們有 Stack Overflow。

若是發現譯文存在錯誤或其餘須要改進的地方,歡迎到 掘金翻譯計劃 對譯文進行修改並 PR,也可得到相應獎勵積分。文章開頭的 本文永久連接 即爲本文在 GitHub 上的 MarkDown 連接。


掘金翻譯計劃 是一個翻譯優質互聯網技術文章的社區,文章來源爲 掘金 上的英文分享文章。內容覆蓋 AndroidiOS前端後端區塊鏈產品設計人工智能等領域,想要查看更多優質譯文請持續關注 掘金翻譯計劃官方微博知乎專欄

相關文章
相關標籤/搜索