来 DTDS 全球数字人才发展峰会,与刘润、叶军、快刀青衣畅聊成长>> 了解详情
写点什么

取代 JavaScript,Python 成为了被提问最多的编程语言

2019 年 4 月 23 日

取代JavaScript,Python成为了被提问最多的编程语言

自 2008 年成立以来,Stack Overflow 收到了开发人员提出的数以百万计的问题,那么开发人员最希望在 Stack Overflow 上解决哪些问题呢?为此,我们选择了当前流行的 11 种编程语言,并观察开发人员针对这些编程语言都提了哪些问题?



(被选择的 11 种编程语言)


就原始问题的数量而言,JavaScript 是 Stack Overflow 中被提问最多的编程语言,主要原因是无论开发人员以何种方式使用 Internet,都需要了解一些 JavaScript。因此在大量不同的应用程序和服务中都可以看见 JavaScript 的身影。


如果我们从时间维度来看,从 2011 年起,Python 在 Stack Overflow 中的提问数量出现了明显的上升,这可能要归因于数据科学的发展。2019 年,Python 成功超越 JavaScript,成为 Stack Overflow 中提问数量最多的编程语言。



开发人员到底都在问哪些问题?最受质疑的框架、包、函数和方法是什么?最令开发人员头疼的数据类型是什么?不同语言之间的问题存在哪些共性和差异?


为了搞清楚上述问题,我们从上面这 11 种编程语言的提问中各抽取了投票最高的 1000 个问题,并使用 Python 做了数据清理,然后将这 11000 个问题整合到一个 JavaScript 词云算法中,从中我们得到了一些结论。


JavaScript


JavaScript 面世已有 23 年,在 Stack Overflow 中也已经有 11 年,其中“jquery”是迄今为止最受质疑的 JavaScript 框架。


Python


Python 最早出现在 1990 年,如今是数据科学家首选的编程语言之一。Python 的问题比较常出现在连接数据处理库,例如“panda”和“dataframe”。


Python 是一种通用的“胶水”语言,可以应用于不同的技术领域,这也是为什么 Web 开发框架 django 会收到比较多的疑问。


R


R 语言也是数据科学家常用的编程语言。但与 Python 不同的是,R 语言几乎只用于数据处理,因此关于 R 语言的疑问集中在“dataframe”、“datatable”和“matrix”。


Python 和 R 都有优秀的数据操作库,如果就数据可视化而言,很多人认为 R 语言要优于 Python。但是在 Stack Overflow 中的实际情况是,R 语言中的数据可视化库“ggplot”被开发者提问的最多。


Ruby


Ruby 出现于 90 年代中期,其获得开发者比较多的关注是在 2005 年,David Heinemeier Hansson(DHH)发布了基于 Ruby 的开发框架 Ruby on Rails。目前开发者提问最多的也是 Ruby on Rails。


C#


C#是微软公司在 2000 年发布的一种面向对象的编程语言,运行于 .NET Framework 和 .NET Core 上。


C++


C++发布于 1985 年,是目前电子游戏开发人员的首选语言。针对 C++,开发人员的提问主要集中在多边形基本构建块 vector,因为多边形是三维视频游戏的基本视觉构建块。


Java


Java 首次发布于 1995 年,是一种写一次可以在任何地方运行的通用编程语言。Java 是在 90 年代末和万维网早期的 PC 热潮中流行起来的,是许多 Windows 应用程序背后的驱动力。现在,Java 主要被用来开发 Android 应用程序。


Objective-C


Objective-C 首次发布于 1984 年,是这 11 种编程语言中最古老的。Objective-C 是苹果为 OSX 操作系统提供支持的主要语言,现在主要为 iPhone 上的 iOS 应用程序提供支持。


Swift


Swift 首次出现于 2014 年,目前在苹果的开发领域已经取代了 Objective-C。


从上面 Swift 的词云中,我们发现了一个很有趣的标签“Objective-C”,可能的原因是很多 iOS 开发者希望通过 Stack Overflow 来学习更多的知识。


PHP


PHP 首次发布于 1995 年,被设计为用于 web 开发的服务器端脚本语言。当然,PHP 现在的用途仍是如此,所以围绕 PHP 的提问主要集中在“laravel”框架。


SQL


与前 10 种功能齐全的编程语言不同,SQL 是专为数据操作所设计的。正因为此,SQL 最常见的痛点都围绕着数据库访问,词云中的关键字主要有 sever、mysql、database、query、select 等等。


随着时间的推移,每一种编程语言都有一个十分擅长的使用场景,例如 R 语言和数据科学,Swift 和 iOS 开发,C++和视频游戏开发。使用场景不同也解释了为什么大家提问的类型和方向会有所不同。除了差异性,我们也从调查中看到了一些共性的问题,例如在基本的数据类型中,字符串和数组是经常出现的痛点。


附 11000 个问题的词云:



原文链接:https://www.globalapptesting.com/blog/picking-apart-stackoverflow-what-bugs-developers-the-most


2019 年 4 月 23 日 12:0137747
用户头像
田晓旭 InfoQ 编辑

发布了 490 篇内容, 共 227.5 次阅读, 收获喜欢 1565 次。

关注

评论 11 条评论

发布
用户头像
String 哈哈哈
2019 年 04 月 26 日 02:06
回复
用户头像
明明是被提问最多,什么被质疑最多😓
2019 年 04 月 25 日 23:16
回复
用户头像
哪哪都有string
2019 年 04 月 25 日 13:44
回复
用户头像
质疑不多,改为“问询”好点
2019 年 04 月 25 日 10:18
回复
用户头像
1.原文标题也不是你本文的标题,小编也只是用了原文内容中一张图片的文字内容(“Python overtakes JavaScript as most questioned language”),机翻的痕迹太严重,“提问”还是“质疑”,如果是 Stack Overflow经常用的人肯定知道用哪个词。
2.But more recently it’s found a home in “Android” (middle-right) app development.(原文)
现在,Java 主要被用来开发 Android 应用程序。(infoq)
这个意译的又让人更无力吐槽了。
展开
2019 年 04 月 24 日 15:33
回复
欢迎来InfoQ当社区编辑啊~~:)
2019 年 04 月 26 日 10:00
回复
用户头像
我觉得你们infoq写标题能不能不要这么标题党。
“最受质疑”=“被提问次数最多”?这种措辞有点不妥吧。
2019 年 04 月 23 日 14:52
回复
特地注册了帐号来评论,我真的去看英文原文了,人家是说“提问最多的”。我真的质疑infoq小编的翻译能力了。
2019 年 04 月 23 日 17:36
回复
感谢指正。文章标题受Hackernews启发,也许有点标题党,Python overtakes JavaScript as most questioned language on StackOverflow (globalapptesting.com)
302 points by nnx 3 days ago | hide | past | web | favorite | 161 comments
2019 年 04 月 23 日 18:27
回复
同特意注册来评论,赞成标题党的说法。questioned 可以翻译成被质疑的,也可以翻译成被询问的(被提问)。
python语言只是受欢迎所以使用的人比较(最)多,所以被提问最多,但是翻译成最被质疑就成了python是最烂的语言。两种翻译意思刚好相反。
2019 年 04 月 24 日 08:45
回复
查看更多回复
没有更多了
发现更多内容

字节跳动总结的这份《Java设计模式(实战+源码)》PDF突然火了,完整版免费开放下载!

Java架构之路

Java 程序员 字节跳动 编程语言 设计模式

Minds Factory 2020 HUAWEI HiCar 创新活动

Jessie

物联网 创新 智能 汽车 大赛

链表反转的两种实现方法,后一种击败了100%的用户!

王磊

Java 数据结构 算法

解密360容器云平台的Harbor高可用方案

博文视点Broadview

容器 高可用 云原生 k8s Harbor

水滴石穿之Java学习之路

孟旬

Java 学习 后端

技术分享丨华为鲲鹏架构Redis知识二三事

华为云开发者社区

redis 鲲鹏

使用 Flutter 快速实现聊天应用

LeanCloud

flutter 后端 聊天

Java之父都需要的《Effective Java中文版(第3版)》到底有多牛

Java成神之路

Java 程序员 面试 编程语言

数字货币交易所系统开发源码,区块链软件搭建

WX13823153201

MySQL-技术专题-MySQL的索引

李浩宇/Alex

九面成功定级阿里资深架构师,拿到180W年薪+15000股,学习一下大神的成长之路!

Java架构追梦

Java 学习 架构 面试 微服务

Github资源在线加速下载

xcbeyond

GitHub 工具类网站

LeetCode题解:83. 删除排序链表中的重复元素,HashMap,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

DB-Engines 10月数据库排名:“三大王”无人能敌,PostgreSQL紧随其后

华章IT

数据库 postgresql Clickhouse MySQ

英特尔为北京2022年冬奥会打造智慧新体验

商业资讯

伯克利:serverless是下一代计算范式

华为云开发者社区

云计算 服务

MySQL-技术专题-事务实现原理

李浩宇/Alex

惊艳!阿里出产的MyCat性能笔记,带你领略什么叫细节爆炸

周老师

Java 编程 程序员 架构 面试

看这里!带你快速体验MindSpore V1.0(For ubuntu 18.04)

华为云开发者社区

华为 AI 技术

两年Java开发经验四面阿里成功拿下P6offer,总结大厂面试的心酸血泪史

Java架构之路

Java 程序员 面试 算法 编程语言

Aspose.pdf破解全程记录

janux

四面阿里成功定级P6,想和Java程序员谈一谈

Java架构之路

Java 程序员 面试 编程语言

c++笔记——类

菜鸟小sailor 🐕

c++

Spring Cloud 微服务实践(8) - 部署

xiaoboey

Docker zookeeper 微服务 Spring Cloud actuator

程序员的美丽假期(并不)

Learun

程序员 敏捷开发 软件设计

对象的实例化内存布局与访问定位

朱华

Java 对象初始化

高难度对话读书笔记——聆听篇2

wo是一棵草

读10x程序员有感。

杨鹏Geek

程序员 10X工作法

MySQL-技术专题-存储引擎详解

李浩宇/Alex

关于GO语言,这篇文章讲的很明白

华为云开发者社区

go 编程语言 语言

链表反转的两种实现方法,后一种击败了100%的用户

小Q

Java 程序员 数据结构 算法 开发

「中国技术开放日·长沙站」现场直播

「中国技术开放日·长沙站」现场直播

取代JavaScript,Python成为了被提问最多的编程语言-InfoQ