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

作者:机器之心编译来源:机器之心

自 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://blog.csdn.net/weixin_43392489/article/details/102380691

阅读目录(置顶)(长期更新计算机领域知识)https://blog.csdn.net/weixin_43392489/article/details/102380882

阅读目录(置顶)(长期科技领域知识)https://blog.csdn.net/weixin_43392489/article/details/102600114

第七十四期:从bug看11种编程语言演化史,果然如今Python比较流行相关推荐

  1. 第七十四期:国内SaaS企业终于活成了自己讨厌的样子!

    总之,单纯的SaaS走不通了,为企业客户提供软件服务的这条路总是走得通的,反正SaaS企业就是要抢传统软件公司和软件外包公司的市场,换个姿势,继续降维打击就是了. 作者:佚名 SaaS,英文Softw ...

  2. 光子浏览器_光子学公开课第十四期 明日开课 | 上海大学金翊教授:三值光学计算机...

    导引 三值光学处理器用无光态和偏振方向正交的两个线偏振光态表达信息,用旋光器和偏振片制作光学运算器,沿用现有的计算机外设和存储芯片.依据降值设计理论构造出的三值逻辑光学处理器能够根据用户的需要而改变硬 ...

  3. 二分法查找c语言程序_C语言的那些经典程序 第十四期

    戳"在看"一起来充电吧! C语言的那些经典程序 第十四期 本期小C给大家带来三个用C语言解决实际问题的典例.如果全都理解,相信肯定能给大家带来收获!接下来让我们看看是哪些程序吧! ...

  4. 开发者论坛一周精粹(第十四期):CVE-2017-7529:Nginx敏感信息泄露

    摘要: 2017年7月11日,Nginx官方发布最新的安全公告,漏洞CVE编号为CVE-2017-7529,该在nginx范围过滤器中发现了一个安全问题,通过精心构造的恶意请求可能会导致整数溢出并且不 ...

  5. 第十四期公关大讲堂:公关稿件写作理念、方法与技巧.

    11月28日(周六),陪同伙伴来到北京东湖俱乐部,参加了第十四期公关大讲堂的培训,此次培训内容为"公关稿件写作理念,方法与技巧",由蓝标公关机构首席撰稿顾问吴士深做演讲.     ...

  6. 一门课程学习转录组调控分析和R可视化第十四期 (线上线下开课)

    福利公告:为了响应学员的学习需求,经过易生信培训团队的讨论筹备,现决定安排扩增子16S分析.宏基因组.Python课程.转录组线上直播课.报名参加线上直播课的老师可在365天内选择参加同课程的一次线下 ...

  7. fal金融科技研究院第十四期课程

    fal金融科技应用研究院第十四期课程,量化风控全线条,用于风险策略分析师,数据分析师.反欺诈专员.信审人员和风控相关人员的转岗和提升,可以看回放.需要留言

  8. 第七十四篇:机器学习优化方法及超参数设置综述

    第七十四篇:机器学习优化方法及超参数设置综述 置顶 2019-08-25 23:03:44 廖佳才 阅读数 207更多 分类专栏: 深度学习 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-S ...

  9. 数据库管理-第二十四期 数据库设计-硬件篇(20220610)

    数据库管理 2022-06-10 第二十四期 数据库设计-硬件篇 1 CPU 2 内存 3 存储 4 网络 5 总结 下期预告: 第二十四期 数据库设计-硬件篇 上次与这次的更新间隔比之前短多了,主要 ...

最新文章

  1. 一个同步github上fork过来的项目的批处理脚本
  2. Nginx负载均衡:分布式/热备Web Server的搭建
  3. Android中使用WebChromeClient显示Openlayers加载本地GeoJson文件显示地图(跨域问题解决)
  4. How change in Console is rendered back into UI
  5. Moss2007搜索服务配置,没有索引器和搜索配置页面报错问题解决
  6. reading notes -- Amazon.com Recommendations: Item-to-Item Collaborative Filtering
  7. 开源社区慌不慌?又一个 Linux 发行版宣告死亡
  8. TokenInsight:反映区块链行业整体表现的TI指数较昨日同期上涨3.55%
  9. python两张图片融合_python实现两张图片的像素融合
  10. Linux命令学习总结(超详细)
  11. python爬取景点数据看该去哪里玩——南京篇
  12. GoF 设计模式:23 种设计模式全面解析(超级详细)
  13. HDOJ 5142 NPY and FFT 水
  14. 如何管理计算机回收站,回收站功能多多 教你如何玩转回收站
  15. SUMO交通仿真软件从0到1使用【亲测有用】有疑问评论区可解答
  16. Python实现爬取腾讯招聘网岗位信息
  17. 今天安利几个App给你
  18. 「音频党」你,还记得手抄歌词的年少时光吗?
  19. INF安装信息文件⑥
  20. 上班防摸鱼插件(知乎页面)

热门文章

  1. python计算现场得分_浅谈用 Python 计算文本 BLEU 分数
  2. 1093芯片做正弦波逆变器_正弦波逆变器中的SPWM调制(钟任生)
  3. 放大镜_指甲钳上有放大镜?再也不怕夹到肉了
  4. Linux下tail命令使用
  5. centos7 下安装Poco
  6. yum install nginx
  7. C语言的Trim, LTrim, RTrim
  8. vue+element实现树状表格的增删改查;使用el-table树形数据与懒加载实现树状表格增删改查
  9. Unable to execute dex: Multiple dex files define 解决方法
  10. [NodeJs] 如何使用nodejs对base64进行编解码?