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

点击上方 "程序员小乐"关注公众号, 星标或置顶一起成长

每天凌晨00点00分, 第一时间与你相约

每日英文

Every story has an ending. But in life, every ending is a new beginning.

所有的故事,都有个结局。但幸运的是,我们的生活中,每个结局会变成一个新的开始。


每日掏心话

做人要含蓄一点,凡事得过且过,不必太过斤斤计较,谁又不会跟谁一辈子把一些事放在心中就好。


来自:机器之心 | 责编:乐乐

640?wx_fmt=png

程序员小乐(ID:study_tech)第 662 次推文   图片来自网络


   正文   

  
自 2008 年创办以来,Stack Overflow 致力于为所有类型的开发者提供帮助,开发者们也提出了涵盖所有开发领域的大量问题。但是,哪些问题是开发者不得不向 Stack Overflow 寻求解决的呢?本文作者通过对十一年来人们在 Stack Overflow 上提问进行了词云统计,通过错误提问和解决遍览编程语言发展历程。



在本文中,作者选择了 11 种最流行的编程语言(通过 Stack Overflow 标签出现的频率衡量),希望可以找出这些问题的共性及差异性。


首先观察以下选择的 11 种编程语言:

640?wx_fmt=png

作者选择的 11 种编程语言,包括 JavaScript、Java、C#、Python 等。


就开发者提出的原始问题数量来说,自 Stack Overflow 创办以来,JavaScript 相关问题被询问得频率最高,这或许是因为它普遍存在于各种不同类型的应用和服务中: 无论开发者从事哪种互联网工作,都需要了解一些 JavaScript 知识。


虽然整体来看 JavaScript 相关问题排名第一,但是随着时间的迁移,可以看到头名出现了变化。

640?wx_fmt=png


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


640?wx_fmt=png


JavaScript 已经有 23 年的历史,而 Stack Overflow 的创办时间仅 11 年。 在过去的 11 年里,「jquery」(上图中左)成为被问最频繁的 JavaScript 框架问题。
 
Python


640?wx_fmt=png


Python 实际上比 JavaScript 早六年提出。 在 1990 年提出 Python 后,Guido van Rossum (https://gvanrossum.github.io/) 的这项发明成为了数据科学家的一个选择。 天然上来说,最频繁出现的问题都围绕着数据处理库「pandas」(中左)和「dataframe」(中上)。


然而,Python 有着广泛的用途,它类似于一种「胶水语言」,在技术的很多不同领域都有应用,这也可以解释为什么网络开发中的「django」(中下)会是一个重要的关键词。
 
R 语言


640?wx_fmt=png


也许是数据科学中第二个选择,R 语言和 Python 本质的不同是它完全为数据科学而生。 数据处理中的特定概念,如「dataframe」(右上)、「datatable」(右上)和「matrix」(中间)似乎会给 R 语言用户带来更多困扰。


Python 和 R 都有非常好的操作数据的库,虽然在涉及到数据可视化上,很多人会说 R 比 Python 更先进。 这也可能是为什么「ggplot」(中间)是目前 R 语言用户提问最多的。


也许 Python 用户会发现 matplotlib 更容易使用。
 
Ruby


640?wx_fmt=png


自上世纪 90 年代中期出现后,Ruby 现已经在服务端框架 ruby-on-「rails」(右上)中建立了自己的一席之地。
 
C#


640?wx_fmt=png


C# 是由微软开发的,用于其 .NET 框架(中右)。
 
C++


640?wx_fmt=png


C++(1985)已经成为了游戏开发者使用的语言。 在 3D 游戏中建立视觉构建块的是 polygon,而 polygon 中基本的构成是向量(中右)。
 
Java


640?wx_fmt=png


Java(1995)被设计于一个非常泛用的目标——一次编译,处处运行。 在 PC 爆炸的上世纪 90 年代后期和互联网兴起的早期,Java 成为了很多 Windows 应用背后的开发语言。 但是最近,Java 逐渐在安卓系统里找到了自己的地位(中右)。
 
Objective-C


640?wx_fmt=png


作为本次统计中最老的语言,Objective-C (1984) 牢牢占据着苹果的 OSX 开发以及近年来 ios(左侧)在 iPhone(中间)的开发,直到 Swift 语言问世。
 
Swift


640?wx_fmt=png


自从 2014 年提出以来,Swift 就代替了 Objective-C,用于苹果的生态开发。 从这一语言中常提到了关键词「objective-c」可以看出,数千名 ios 开发者已经更新了自己的知识。
 
PHP


640?wx_fmt=png


PHP(1995)是被设计用来进行服务器端的脚本语言,主要用于网络开发。 现在它依然发挥着这样的作用,这也是为什么这个编程语言中常常提出的问题都和「laravel」框架相关。
 
SQL


640?wx_fmt=png


SQL 并不是有着完整特性的编程语言。 它只为一个任务而生: 操作数据。 由于这一特殊目的,SQL 语言的痛点基本上都围绕着数据库连接,如「sever」、「mysql」、「database」、「query」和「select」等。


每个编程语言都在不断地朝着,甚至被设计,来完成科技中的某个部分。 R 用于数据科学,而 Swift 则用于 IOS 开发,C++则是电子游戏开发。 这解释了为什么不同的编程语言会爆出不同的 bug。 例如,在 SQL 中可以经常见到「database」这样的关键词,但是在 Objective-C 中可能就很少会见到了。


除了这些明显的区别,本次可视化的结果也展示了不同领域本质上的相似点。 基本的数据类型——如字符串和数组(但不是整型、浮点型或布尔型)数据是经常给开发者带来痛点的地方。


最终,将所有的问题集合在一起做成词云。


640?wx_fmt=png


原文链接:

globalapptesting.com/blog/picking-apart-stackoverflow-what-bugs-developers-the-most


640?wx_fmt=png

欢迎在留言区留下你的观点,一起讨论提高。如果今天的文章让你有新的启发,学习能力的提升上有新的认识,欢迎转发分享给更多人。

欢迎各位读者加入程序员小乐技术群,在公众号后台回复“加群”或者“学习”即可。

猜你还想看


SSM 框架!实现分页和搜索分页

Linux 查看进程消耗内存情况总结

一起来学Java注解(Annotation),看了都说好!


640?wx_fmt=png

关注微信公众号「程序员小乐」,收看更多精彩内容
嘿,你在看吗640?
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值