Python:Stack Overflow 上最具争议的编程语言

发表时间: 2019-04-24 15:17

对于开发人员来说,哪些编程语言最受欢迎?哪些框架、包、函数和方法被提问的次数最多?哪种数据类型使用起来最痛苦?各个编程语言之间的问题有何不同?——本文中汇总了数百万个各个开发领域内的不同问题,挑选了11种最流行的编程语言,进行了最为全面的解读。

作者 | Nick Roberts

译者 | 弯月

责编 | 郭芮

出品 | CSDN(ID:CSDNnews)

以下为译文:

自2008年创立以来,Stack Overflow一直致力于拯救所有领域的开发人员。到目前为止,开发人员在该网站上提出了数百万个各个开发领域内的不同问题。但是,究竟是什么原因导致开发人员纷纷转向了Stack Overflow?

我们挑选了11种最流行的编程语言(根据Stack Overflow上标记的频率),并开展了一项研究,旨在揭示这些问题中的一些共性和差异。

在进入正题之前,让我们先来看看我们选择的11种语言,如下图所示。

就提问的次数而言,自Stack Overflow成立以来,JavaScript一直是开发人员最常问及的语言。这可能是由于众多不同的应用程序和服务纷纷采用了JavaScripts,如果你涉足互联网,那么就需要多少了解一些JavaScript。

然而,虽然从总体上来看JavaScript处于首位,但是当我们按照时间分割数据后,就会看到一个新的王者。

2011年,“哈佛商业评论”将数据科学家评为“21世纪最性感的工作”。从此以后,数据科学家的语言——Python越来越受欢迎……时至2019年,它取代JavaScript成为StackOverflows上提问次数最多的编程语言。

Python迅速成为了最流行的编程语言,也有可能是因为与其他语言相比,从事Python的程序员比例较大!

但是,这些开发人员到底提出了哪方面的问题呢?哪些框架、包、函数和方法被提问的次数最多?哪种数据类型使用起来最痛苦?各个编程语言之间的问题有何不同?

为了搞清楚这些问题,我们做了以下分析:

  • 针对上述11种编程语言,从Stack Overflow上提取人气最高的1千个问题;
  • 利用Python做了一些数据清理;
  • 将这11000千个问题(9万6千多个单词)整合到一个JavaScript的单词云算法中,然后总结出每种语言中普遍存在的难题。

结果如下。

JavaScript

JavaScript已有23年的历史,并在Stack Overflow上活跃了11年。而在这11年中,“jquery”(上图左中)是迄今为止提问次数最多的JavaScript框架。

Python

Python的出现实际上比JavaScript还要早6年。早在1990年,Guido van Rossum就首次提出了这个想法,如今它已成为数据科学家首选的语言。这种语言最常遇见的难题自然与数据库处理库相关:“pandas”(上图左中)和“dataframe”(上图中间)就是其中之一。

然而,Python作为一种通用的万能语言,在许多不同的技术领域都有应用,这就说明了为什么针对Web开发框架“django”(上图的中心底部)的提问如此频繁。

R语言

R语言是数据科学家选择的第二种语言,与Python不同,R几乎只能用于数据分析。因此,与数据处理相关的概念,例如“dataframe”(上图右上)、 “datatable”(上图右上)以及“matrix” (上图中间) 等问题让R语言的用户颇为头疼。

Python和R都有出色的数据操作库,尽管有些人认为在数据可视化方面,R比Python更胜一筹。话虽如此,数据可视化库“ggplot” (上图中间)是迄今为止R语言最常被问及的概念。

也许Python用户认为matplotlib更容易使用!

Ruby

Ruby问世于90年代中期,如今Ruby的主要应用在于服务器端的框架“rails”(上图右上)。

C#

C#是微软2000年开发的编程语言,主要用于.NET框架(上图右边的“net”)。

C ++

C ++(始于1985年)已经成为视频游戏开发者的首选语言。3D视频游戏的基本视觉构建块是多边形,而多边形的基本构建块是“vector”(上图右中)。

Java

Java(始于1995年)的创建是为了一个通用的目标:“编写一次,到处运行”。90年代后期的PC热潮和万维网的早期时代Java就开始流行了,而且它也是许多Windows应用程序背后的驱动力。

然而,最近Java也在“Android”(上图右中)应用程序开发中找到了新的归宿。

Objective-C

Objective-C(始于1984年)是本文研究的语言中最古老的一种,是苹果支持的OSX操作系统的主流语言,最近在“iPhone”(上图中心)上的“iOS”(上图左下)应用程序中的应用居多……直到Swift的引入。

Swift

Swift首次出现于2014年,如今已取代苹果开发领域的Objective-C。虽然Stack Overflow中的很多问题标记成了#swift,但实际上都是与“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,本文由CSDN翻译,转载请注明来源出处。