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


大川
大川 2022-09-16 11:50:44 53274
分类专栏: 资讯
编者按:本文来自微信公众号“机器之心”(ID:almosthuman2014),选自Global App Testing,作者:Nick Roberts,机器之心编译:杜伟、戴一鸣,36氪经授权发布。 自 2008 年创办以来,Stack Overflow 致力于为所有类型的开发者提供帮助,开发者们也提出了涵盖所有开发领域的大量问题。但是,哪些问题是开发者不得不向 Stack Overflow 寻求解决的呢?本文作者通过对十一年来人们在 Stack Overflow 上提问进行了词云统计,通过错误提问和解决遍览编程语言发展历程。 在本文中,作者选择了 11 种最流行的编程语言(通过 Stack Overflow 标签出现的频率衡量),希望可以找出这些问题的共性及差异性。 首先观察以下选择的 11 种编程语言: 作者选择的 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 JavaScript 已经有 23 年的历史,而 Stack Overflow 的创办时间仅 11 年。在过去的 11 年里,「jquery」(上图中左)成为被问最频繁的 JavaScript 框架问题。 Python Python 实际上比 JavaScript 早六年提出。在 1990 年提出 Python 后,Guido van Rossum (https://gvanrossum.github.io/) 的这项发明成为了数据科学家的一个选择。天然上来说,最频繁出现的问题都围绕着数据处理库「pandas」(中左)和「dataframe」(中上)。 然而,Python 有着广泛的用途,它类似于一种「胶水语言」,在技术的很多不同领域都有应用,这也可以解释为什么网络开发中的「django」(中下)会是一个重要的关键词。 R 语言 也许是数据科学中第二个选择,R 语言和 Python 本质的不同是它完全为数据科学而生。数据处理中的特定概念,如「dataframe」(右上)、「datatable」(右上)和「matrix」(中间)似乎会给 R 语言用户带来更多困扰。 Python 和 R 都有非常好的操作数据的库,虽然在涉及到数据可视化上,很多人会说 R 比 Python 更先进。这也可能是为什么「ggplot」(中间)是目前 R 语言用户提问最多的。 也许 Python 用户会发现 matplotlib 更容易使用。 Ruby 自上世纪 90 年代中期出现后,Ruby 现已经在服务端框架 ruby-on-「rails」(右上)中建立了自己的一席之地。 C C 是由微软开发的,用于其 .NET 框架(中右)。 C++ C++(1985)已经成为了游戏开发者使用的语言。在 3D 游戏中建立视觉构建块的是 polygon,而 polygon 中基本的构成是向量(中右)。 Java Java(1995)被设计于一个非常泛用的目标——一次编译,处处运行。在 PC 爆炸的上世纪 90 年代后期和互联网兴起的早期,Java 成为了很多 Windows 应用背后的开发语言。但是最近,Java 逐渐在安卓系统里找到了自己的地位(中右)。 Objective-C 作为本次统计中最老的语言,Objective-C (1984) 牢牢占据着苹果的 OSX 开发以及近年来 ios(左侧)在 iPhone(中间)的开发,直到 Swift 语言问世。 Swift 自从 2014 年提出以来,Swift 就代替了 Objective-C,用于苹果的生态开发。从这一语言中常提到了关键词「objective-c」可以看出,数千名 ios 开发者已经更新了自己的知识。 PHP PHP(1995)是被设计用来进行服务器端的脚本语言,主要用于网络开发。现在它依然发挥着这样的作用,这也是为什么这个编程语言中常常提出的问题都和「laravel」框架相关。 SQL 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 封面图来自pexels

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=295
赞同 0
评论 0 条
大川L2
粉丝 0 发表 19 + 关注 私信
上周热门
如何使用 StarRocks 管理和优化数据湖中的数据?  2935
【软件正版化】软件正版化工作要点  2854
统信UOS试玩黑神话:悟空  2811
信刻光盘安全隔离与信息交换系统  2702
镜舟科技与中启乘数科技达成战略合作,共筑数据服务新生态  1235
grub引导程序无法找到指定设备和分区  1205
点击报名 | 京东2025校招进校行程预告  162
华为全联接大会2024丨软通动力分论坛精彩议程抢先看!  160
2024海洋能源产业融合发展论坛暨博览会同期活动-海洋能源与数字化智能化论坛成功举办  156
华为纯血鸿蒙正式版9月底见!但Mate 70的内情还得接着挖...  154
本周热议
我的信创开放社区兼职赚钱历程 40
今天你签到了吗? 27
信创开放社区邀请他人注册的具体步骤如下 15
如何玩转信创开放社区—从小白进阶到专家 15
方德桌面操作系统 14
我有15积分有什么用? 13
用抖音玩法闯信创开放社区——用平台宣传企业产品服务 13
如何让你先人一步获得悬赏问题信息?(创作者必看) 12
2024中国信创产业发展大会暨中国信息科技创新与应用博览会 9
中央国家机关政府采购中心:应当将CPU、操作系统符合安全可靠测评要求纳入采购需求 8

加入交流群

请使用微信扫一扫!