- 原文地址:Picking Apart Stack Overflow; What Bugs Developers The Most?
- 原文做者:Nick Roberts
- 译文出自:掘金翻译计划
- 本文永久连接:github.com/xitu/gold-m…
- 译者:whatbeg
- 校对者:Endone, JalanJiang
Stack Overflow 自 2008 年成立以来,一直在迅速拯救各类类型的开发者。从那时起,开发者在全部开发领域中提出了数以百万计的不一样问题。前端
可是是哪些类型的问题使得开发者被迫转向 Stack Overflow 求助呢?java
咱们挑选了 11 种最流行的编程语言(经过 Stack Overflow 标签的频率来衡量),并进行了一项研究,试图揭示这些问题中的一些共性和差别。mysql
可是在咱们开始研究以前,让咱们先仔细看看咱们选择的 11 种语言,以下所示。jquery
就问题的原始数量而言,自 Stack Overflow 成立以来,JavaScript 一直是最常被问及的语言。这多是因为 JavaScripts 在众多不一样的应用程序和服务中都有运用:无论你以何种方式接触并使用互联网,你可能都须要了解一点 JavaScript。android
可是,虽然 JavaScript 整体上多是第一,但当咱们将数据分开时,咱们会看到一个新的需求顶峰。ios
2011 年哈佛商业评论将数据科学家称为“21 世纪最性感的工做”。从那时起,Python — 数据科学家的首选语言之一 — 已经愈来愈受欢迎......以致于在 2019 年它已经取代了 JavaScript,成为 StackOverflows 最常被问及的编程语言。laravel
(要么 Python 正在迅速成为最流行的编程语言,要么只是 Python 比其余语言拥有更大比例的新晋开发者!)git
但这些开发者究竟要问的是什么?最常被问及的框架、包、函数和方法是什么?哪一种数据类型最让开发人员感到痛苦?各类语言间这些问题有何不一样?github
为此,咱们:objective-c
结果以下。
JavaScript 已经诞生了 23 年;而 Stack Overflow 才 11 年。在这 11 年中,“jquery”(中左)是迄今为止最常被问及的 JavaScript 框架。
Python 实际上比 JavaScript 早诞生 6 年。首先出如今 1990 年,Guido van Rossum 的创意让其变成了数据科学家的首选语言之一。固然,它最多见的一些痛点在于数据处理库:“pandas”(中左)和 “dataframe”(中上部)就在其中。
然而,Python 是一种通用的管道-胶水式语言,它涉及到许多不一样的技术领域,这解释了为什么 Web 开发框架 “django”(中下部)相对频繁地被问及。
也许是数据科学家选择的第二种语言,R 与 Python 的不一样之处在于它几乎是专门用于此目的的。一些数据处理特定的概念,如 “dataframe”(右上角)、“datatable”(右上角)和 “matrix”(中间)彷佛让 R 用户感到头疼。
Python 和 R 都有出色的数据操做库,尽管在数据可视化方面,有些人认为 R 比 Python 更具优点。说到这里,数据可视化库 “ggplot”(中心)是迄今为止 R 语言中最常被问及的概念。
因此也许 Python 用户发现 matplotlib 更容易掌握!
Ruby 最先出如今 90 年代中期,如今它找到了一个服务器端框架 ruby-on-“rails”(右上角)做为归宿。
C#(C Sharp,2000)主要是由微软为其 .NET 框架(“net”,中右)开发的。
C++(1985)已经成为视频游戏开发者的首选语言。三维视频游戏的基本视觉构建块是多边形,多边形的基本构建块是“矢量”(中右)。
Java(1995)被建立为通用的“一次编写随地运行”的语言。它在 90 年代末和万维网早期的 PC 繁荣时期变得流行,是许多 Windows 应用程序背后的驱动力。
但最近它在 “Android”(中右)应用程序开发中找到了归宿。
在这项研究中,最古老的语言是 Objective-C(1984),它是苹果公司在 OSX 操做系统上支持的主要语言,直到最近引入 Swift 以前,它仍是支持 “iPhone”(中间)上的 “iOS”(左下角)应用程序的主要语言。
Swift 于 2014 年首次亮相,在苹果开发领域取代了 Objective-C,尽管标记为 #swift 的 Stack Overflow 问题中提到 “objective-c”(中右)的频率可能表明了成千上万的 iOS 开发人员但愿经过 Stack Overflow 来更新他们的知识。
PHP(1995)被设计为用于 Web 开发的服务器端脚本语言。今天,它仍然用于这个目的,你能够在围绕 “laravel” 框架(中左)的问题频率中看到这一点的证据。
SQL 并不像本研究中的其余语言那样是一种功能齐全的编程语言;它是专门为一项工做设计的:数据操做。因为这种特殊性,SQL 最多见的症结就在于数据库的访问:“sever”、“mysql”、“database”、“query”、“select”。
每一种编程语言都是面向或甚至是专为一个特定技术场景而准备的。R 是数据科学,Swift 是 iOS 开发,C++ 是视频游戏开发。这就解释了出现的问题类型的一些差别。这也解释了为何咱们在 SQL 中看到 “database” 是一个常被问及的概念,而不是在其余语言中,例如,Objective-C。
尽管存在这些明显的差别,但这些可视化代表不一样领域内的一些基本类似之处。底层的数据类型,如字符串和数组(但显然不是整数、浮点数或布尔值)是常常出现的痛点,这会致使全部层级和信仰的开发人员转向动手操做键盘打开 Stack Overflow。
本着团结的精神,这里有一个词云,表示咱们提取的全部 11000 个问题:
谷歌能够帮助解决一些问题......
......但对于其余的一切,咱们有 Stack Overflow。
若是发现译文存在错误或其余须要改进的地方,欢迎到 掘金翻译计划 对译文进行修改并 PR,也可得到相应奖励积分。文章开头的 本文永久连接 即为本文在 GitHub 上的 MarkDown 连接。
掘金翻译计划 是一个翻译优质互联网技术文章的社区,文章来源为 掘金 上的英文分享文章。内容覆盖 Android、iOS、前端、后端、区块链、产品、设计、人工智能等领域,想要查看更多优质译文请持续关注 掘金翻译计划、官方微博、知乎专栏。