当前位置: 首页 > 科技观察

从bug看11种编程语言演化史,果然如今Python比较流行

时间:2023-03-15 16:49:21 科技观察

从bug看11种编程语言的进化史,原来现在Python更受欢迎。但是开发者有什么问题不得不求助于StackOverflow寻求解决方案呢?本文作者对过去十一年人们在StackOverflow上的提问进行了词云统计,通过错题和解答来浏览编程语言的发展历程。在这篇文章中,作者选择了11种非常流行的编程语言(以StackOverflow标签出现的频率来衡量),希望能找到这些问题的共性和差异。先看看下面选择的11种编程语言:作者选择的11种编程语言,包括JavaScript、Java、C#、Python等。从开发者提出的原始问题数量来看,自StackOverflow开始以来,JavaScript相关问题被问得最多,这或许是因为它无处不在于各种不同类型的应用程序和服务中:无论什么样的互联网工作都需要一些JavaScript知识。虽然与JavaScript相关的问题总体排名第一,但您可以看到随着时间的推移,排名靠前的名字发生了变化。2011年,《哈佛商业评论》将数据科学家称为“21世纪最性感的工作”。从那时起,Python就成为了数据科学家的首选编程语言,其使用量与日俱增。2019年,Python超越JavaScript成为StackOverflow上被问及最多的编程语言。因此,要么是Python语言正在迅速成为最流行的编程语言,要么是与其他编程语言相比,使用Python的新程序员比例更高。从之前的视频来看,从2008年开始,C#就一直占据着StackOverflow最流行编程语言排行榜的榜首,而Python、Java、JavaScript还没有热起来。但从2012年开始,Python超越C++开始一路逆袭。同时,JavaScript用户的比例也在逐渐增加。最终,在2018年底,Python和JavaScript分别占据了第一和第二的位置。但这些开发人员到底在问什么?最常被问到的框架、包、函数和方法是什么?哪些数据类型给开发人员带来的麻烦最大?这些问题在不同的编程语言中有何不同?为了得出结果,作者做了以下工作:1.提取了11种编程语言在StackOverflow上点赞数最高的1000个问题;2.Python数据清洗(pandas工具);3.将总共11000个问题(超过96,000个单词)输入到JavaScript词云算法中,得到一个鸟瞰图,显示不同编程语言的共同痛点。结果如下(按编程语言):JavaScriptJavaScript23岁,而StackOverflow只有11岁。在过去的11年里,“jquery”(上图左侧)一直是最常被问到的JavaScript框架问题。PythonPython实际上比JavaScript早了六年。在1990年提出Python之后,GuidovanRossum(https://gvanrossum.github.io/)的这项发明成为了数据科学家的一个选择。自然地,最常见的问题围绕着数据处理库“pandas”(左中)和“dataframe”(中上)。然而,Python的用途非常广泛,它类似于一种“胶水语言”,在许多不同的技术领域都有应用,这也可以解释为什么“django”(中下)在web开发中是一个重要的关键词。R语言可能是数据科学的第二选择。R语言和Python的本质区别在于它完全是为数据科学而生。数据处理中的特定概念,例如“dataframe”(右上)、“datatable”(右上)和“matrix”(中)似乎会给R用户带来更多困惑。Python和R都有非常好的数据操作库,尽管很多人会说在数据可视化方面R比Python更先进。这可能就是为什么“ggplot”(中)现在是R用户问得最多的问题。也许Python用户会发现matplotlib更易于使用。自1990年代中期出现以来,Ruby已经在服务器端框架ruby??-on-"rails"(右上)中确立了自己的地位。C#C#由Microsoft开发,用于其.NET框架(右中)。C++C++(1985)已经成为游戏开发者使用的语言。多边形是3D游戏中的视觉构建块,多边形中的基本构建块是矢量(右中)。JavaJava(1995)的设计有一个非常普遍的目标——编译一次,随处运行。在20世纪90年代末和互联网早期的PC热潮期间,Java是许多Windows应用程序背后的语言。但最近,Java逐渐在Android中找到了自己的位置(右中)。Objective-C是该统计数据中最古老的语言。Objective-C(1984)牢牢占据了Apple的OSX开发和近年iPhone(中)的ios(左)开发,直到Swift语言问世。自2014年Swift被提出以来,Swift已经取代了Objective-C用于苹果的生态发展。成千上万的ios开发人员更新了他们的知识,语言中频繁提及关键字“objective-c”就是证明。PHPPHP(1995)是一种为服务器端设计的脚本语言,主要用于网络开发。它今天仍然扮演着这个角色,这就是为什么在这种编程语言中最常被问到的问题都与“laravel”框架有关。SQLSQL不是一种全功能的编程语言。它只为一项任务而生:操纵数据。由于这种特殊的用途,SQL语言的痛点基本都围绕着数据库连接,如“sever”、“mysql”、“database”、“query”、“select”等。每一种编程语言都在不断地朝着,甚至被设计来完成某一部分的技术。R用于数据科学,Swift用于iOS开发,而C++用于视频游戏开发。这就解释了为什么不同的编程语言会有不同的bug。比如“database”这样的关键字,在SQL中经常看到,但在Objective-C中可能就很少见了。除了这些明显的差异之外,这个可视化的结果还显示了不同领域的本质相似之处。原始数据类型——例如字符串和数组(但不包括整数、浮点数或布尔值)——是开发人员经常遇到的问题。最后,将所有的问题汇集在一起??形成词云。