(给Python开发者加星标,提升Python技能)
编译:机器之心,作者:Nick Roberts
自 2008 年创办以来,Stack Overflow 致力于为所有类型的开发者提供帮助,开发者们也提出了涵盖所有开发领域的大量问题。但是,哪些问题是开发者不得不向 Stack Overflow 寻求解决的呢?本文作者通过对十一年来人们在 Stack Overflow 上提问进行了词云统计,通过错误提问和解决遍览编程语言发展历程。
在本文中,作者选择了 11 种最流行的编程语言(通过 Stack Overflow 标签出现的频率衡量),希望可以找出这些问题的共性及差异性。
作者选择的 11 种编程语言,包括 JavaScript、Java、C#、Python 等。
就开发者提出的原始问题数量来说,自 Stack Overflow 创办以来,JavaScript 相关问题被询问得频率最高,这或许是因为它普遍存在于各种不同类型的应用和服务中:无论开发者从事哪种互联网工作,都需要了解一些 JavaScript 知识。
虽然整体来看 JavaScript 相关问题排名第一,但是随着时间的迁移,可以看到头名出现了变化。
2011 年,《哈佛商业评论》将数据科学家成为「21 世界最性感的工作」。自那以后,Python 成为数据科学家的首选编程语言,使用量也日益增长。2019 年,Python 超越 JavaScript 成为了 Stack Overflow 上被提问最多的编程语言。
所以,Python 语言要么正在快速成为最受欢迎的编程语言,要么与其他编程语言相比,新程序员使用 Python 的比例较高。
从前面的视频来看,2008 年开始,C# 一直占据着 Stack Overflow 最受欢迎的编程语言榜首,而此时 Python、Java 和 JavaScript 还并不火热。但是从 2012 年开始,Python 超越 C++,开始一路逆袭。同时,JavaScript 的用户比例逐渐上升。最终,在 2018 年年底,Python 和 JavaScript 分别成为了榜单榜首和第二名。
但这些开发者具体都问些什么问题呢?提问最多的框架、程序包、函数和方法是什么呢?哪些数据类型给开发者带来最多的困扰呢?这些问题在不同编程语言中又有哪些不同呢?
1. 分别提取 11 种编程语言在 Stack Overflow 上的 1000 个点赞最高的问题;2. 在 Python 中进行数据清洗(pandas 工具);3. 将总计 11000 个问题(超过 96000 个单词)馈入到 JavaScript 词云算法中,从而得出显示不同编程语言中通常痛点的鸟瞰透视图。
JavaScript 已经有 23 年的历史,而 Stack Overflow 的创办时间仅 11 年。在过去的 11 年里,「jquery」(上图中左)成为被问最频繁的 JavaScript 框架问题。
Python 实际上比 JavaScript 早六年提出。在 1990 年提出 Python 后,Guido van Rossum (https://gvanrossum.github.io/) 的这项发明成为了数据科学家的一个选择。天然上来说,最频繁出现的问题都围绕着数据处理库「pandas」(中左)和「dataframe」(中上)。
然而,Python 有着广泛的用途,它类似于一种「胶水语言」,在技术的很多不同领域都有应用,这也可以解释为什么网络开发中的「django」(中下)会是一个重要的关键词。
也许是数据科学中第二个选择,R 语言和 Python 本质的不同是它完全为数据科学而生。数据处理中的特定概念,如「dataframe」(右上)、「datatable」(右上)和「matrix」(中间)似乎会给 R 语言用户带来更多困扰。
Python 和 R 都有非常好的操作数据的库,虽然在涉及到数据可视化上,很多人会说 R 比 Python 更先进。这也可能是为什么「ggplot」(中间)是目前 R 语言用户提问最多的。
也许 Python 用户会发现 matplotlib 更容易使用。
自上世纪 90 年代中期出现后,Ruby 现已经在服务端框架 ruby-on-「rails」(右上)中建立了自己的一席之地。
C# 是由微软开发的,用于其 .NET 框架(中右)。
C++(1985)已经成为了游戏开发者使用的语言。在 3D 游戏中建立视觉构建块的是 polygon,而 polygon 中基本的构成是向量(中右)。
Java(1995)被设计于一个非常泛用的目标——一次编译,处处运行。在 PC 爆炸的上世纪 90 年代后期和互联网兴起的早期,Java 成为了很多 Windows 应用背后的开发语言。但是最近,Java 逐渐在安卓系统里找到了自己的地位(中右)。
作为本次统计中最老的语言,Objective-C (1984) 牢牢占据着苹果的 OSX 开发以及近年来 ios(左侧)在 iPhone(中间)的开发,直到 Swift 语言问世。
自从 2014 年提出以来,Swift 就代替了 Objective-C,用于苹果的生态开发。从这一语言中常提到了关键词「objective-c」可以看出,数千名 ios 开发者已经更新了自己的知识。
PHP(1995)是被设计用来进行服务器端的脚本语言,主要用于网络开发。现在它依然发挥着这样的作用,这也是为什么这个编程语言中常常提出的问题都和「laravel」框架相关。
SQL 并不是有着完整特性的编程语言。它只为一个任务而生:操作数据。由于这一特殊目的,SQL 语言的痛点基本上都围绕着数据库连接,如「sever」、「mysql」、「database」、「query」和「select」等。
每个编程语言都在不断地朝着,甚至被设计,来完成科技中的某个部分。R 用于数据科学,而 Swift 则用于 IOS 开发,C++则是电子游戏开发。这解释了为什么不同的编程语言会爆出不同的 bug。例如,在 SQL 中可以经常见到「database」这样的关键词,但是在 Objective-C 中可能就很少会见到了。
除了这些明显的区别,本次可视化的结果也展示了不同领域本质上的相似点。基本的数据类型——如字符串和数组(但不是整型、浮点型或布尔型)数据是经常给开发者带来痛点的地方。
原文链接:https://www.globalapptesting.com/blog/picking-apart-stackoverflow-what-bugs-developers-the-most
觉得本文对你有帮助?请分享给更多人
关注「Python开发者」加星标,提升Python技能
好文章,我在看❤️