我们分析了Stack Overflow的11000个问题
授权自AI科技大本营(ID:rgznai100)
本文约1800字,建议阅读5分钟。
本文介绍了 11 种最流行的编程语言并进行了一项研究,旨在揭示这些问题中的某些共性和差异。
自 2008 年成立以来,Stack Overflow 一直在拯救所有类型的开发人员。自那时以来,开发人员提出了数百万个关于开发领域的问题。
但是,迫使开发者转向 Stack Overflow 的问题都是什么呢?
我们选择了 11 种最流行的编程语言(以 Stack Overflow 标签的频率来衡量),并进行了一项研究,旨在揭示这些问题中的某些共性和差异。
但在这之前,让我们先瞧瞧如下所示的 11 种语言。
就所提问题的数量而言,JavaScript 是自 Stack Overflow 成立以来最常被问到的编程语言。这可能是由于其在众多不同应用和服务中无处不在:无论你以任何方式在网络上工作,都可能需要了解一些 JavaScript。
但是,尽管 JavaScript 可能是整体排名最高的编程语言,但当我们按时间划分数据时,我们发现需要一个新的王冠。
2011年,《哈佛商业评论》将数据科学家标记为“ 21世纪最性感的工作(Sexiest Job of the 21st Century)”。从那以后,数据科学家常用的 Python 语言的受欢迎程度一直在增长……以至于到 2019 年,Python 超越 JavaScript 成为了 StackOverflows 讨论最多的编程语言。
(也许Python正在迅速成为最受欢迎的编程语言,或者与其他语言相比,Python 新编码者的所占比例更大!)
但是这些开发人员到底在问什么呢?讨论最多的框架、软件包、功能和方法是什么?造成痛苦最大的是哪些数据类型?这些问题在不同语言之间有何不同?
为此,我们做了以下动作:
- 针对上面列出的11种编程语言中,我们分别抽取了 1000 个最受好评的 Stack Overflow 问题。
- 在 Python 中做了一些数据清理(自然是 pandas)。
- 我们将所有 11000 个问题(超过 96000 个单词)输入到 JavaScript 的词云算法中,从而使我们可以全方位看到不同语言中普遍出现的痛点。
以下就是结果。
JavaScript
JavaScript 已经存在了 23 年,Stack Overflow 是 11 年。在那 11 年中,“ jquery ”(中左)是迄今为止讨论最多的 JavaScript 框架。
Python
Python 实际上比 JavaScript 出现的时间要长 6 年。Guido van Rossum 的想法始于1990年,如今已演变成数据科学家的一种编程语言。显然,它最常见的痛点是连接到数据处理库:“ pandas ”(中左)和“ dataframe ”(中上)位列其中。
但是,Python 是一种通用的胶水语言,它涉及许多不同的技术领域,解释了频繁被讨论的“ django ”(中底)Web开发框架。
R
R 也许是数据科学家所选的第二语言,它与 Python 的不同之处在于它几乎专门用于这一目的。诸如“ dataframe ”(右上),“ datatable ”(右上)和“ matrix ”(中)之类的似乎使 R 用户头疼的数据处理特定概念。
Python 和 R 都具有出色的数据操作库,尽管在数据可视化方面,有人认为 R 比 Python 更具优势。话虽如此,数据可视化库“ ggplot ”(中间)是迄今为止 在 R 语言中讨论最多的概念。
因此,也许 Python 用户会发现 matplotlib 更易于处理!
Ruby
Ruby 首次出现在 90 年代中期,现在已经成为服务器端框架 ruby-on-“ rails ”(右上方)的主要语言。
C#
C#(C Sharp,2000年)是由 Microsoft 开发的,主要用于其 .NET 框架(“ net ”,中右)。
C ++
C ++(1985)逐渐成为视频游戏开发人员的首选语言。3D 视频游戏的基本视觉构建块是多边形,而多边形的基本构建块是“vector”(中右)。
Java
Java(1995)作为一种通用的“一次写入,随处运行”的语言而创建。在 90 年代后期和互联网初期的 PC 繁荣时期,它变得很流行,并且是许多 Windows 应用背后的推动力。
但最近,它成了“ Android ”(中右)应用开发中的主要语言。
Objective-C
作为这项研究中最古老的语言之一,Objective-C(1984)是苹果 OSX 操作系统以及最近在“iPhone ”(中)中“ iOS ”(左下)应用的主要支持语言......直到 Swift 推出为止。
Swift
首次出现于 2014 年的 Swift 在苹果开发领域已取代 Objective-C。尽管在标签为#swift 的 Stack Overflow 的问题中,“objective-c”被提及的频率(中右)可能代表了成千上万的 iOS 开发者希望 Stack Overflow 来更新他们的知识。
PHP
PHP(1995)是用于Web开发的服务器端脚本语言。今天它仍然用于此目的,你可以从围绕语言“laravel ”框架(中左)的问题频率看到这一证据。
SQL
与本研究中的其他一些语言相比,SQL 不是一种功能齐全的编程语言。它专为数据处理这一项工作而设计。由于这种特殊性,SQL 最常见的痛点都围绕数据库访问:“ sever ”,“ mysql ”,“ database ”,“ query ”,“ select ”。
随着时间的推移,每种编程语言都已针对技术中的特定细分市场而设计。R代表数据科学,Swift 代表 iOS 开发,C++ 代表视频游戏开发,这解释了所出现问题类型的某些差异。这就解释了为什么我们看到在 SQL 中“ database ”是一个普遍被讨论的概念,但在 Objective-C 等语言中却不是这样。
尽管存在这些明显的差异,但这些可视化表示不同领域内的一些基本相似之处。例如字符串和数组(显然不是整数、浮点数或布尔值)的基本数据类型是常见的痛点,这导致所有有信条的开发人员转向 Stack Overflow。
本着团结精神,这是我们提取的所有 11000 个问题的词云:
Google 可以帮助解决一些问题......
但其他事情,我们还要找 Stack Overflow。
你对上述结果是不是有同感?欢迎留言曾经你遇到过的“令人头秃”的问题。
原文链接:
https://www.globalapptesting.com/blog/picking-apart-stackoverflow-what-bugs-developers-the-most
编辑:于腾凯
校对:林亦霖
— 完 —
关注清华-青岛数据科学研究院官方微信公众平台“THU数据派”及姊妹号“数据派THU”获取更多讲座福利及优质内容。