google+stackoverflow_哪些开发问题最让程序员“头秃”?我们分析了Stack Overflow的11000个问题...

457c55048f56662de42094cc9678faef.gif038207fde35e4a707d4a21806fcaa092.png

作者 | Nick Roberts

编译 | AI科技大本营(ID:rgznai100)

自 2008 年成立以来,Stack Overflow 一直在拯救所有类型的开发人员。自那时以来,开发人员提出了数百万个关于开发领域的问题。但是,迫使开发者转向 Stack Overflow 的问题都是什么呢?我们选择了 11 种最流行的编程语言(以 Stack Overflow 标签的频率来衡量),并进行了一项研究,旨在揭示这些问题中的某些共性和差异。但在这之前,让我们先瞧瞧如下所示的 11 种语言。afa670bac3c1d9efc1330c58fe46c914.png就所提问题的数量而言,JavaScript 是自 Stack Overflow 成立以来最常被问到的编程语言。这可能是由于其在众多不同应用和服务中无处不在:无论你以任何方式在网络上工作,都可能需要了解一些 JavaScript。但是,尽管 JavaScript 可能是整体排名最高的编程语言,但当我们按时间划分数据时,我们发现需要一个新的王冠。 16f2b4d78b6cc7271e71d74583cc4b3e.png2011年,《哈佛商业评论》将数据科学家标记为“ 21世纪最性感的工作(Sexiest Job of the 21st Century)”。从那以后,数据科学家常用的 Python 语言的受欢迎程度一直在增长……以至于到 2019 年,Python 超越 JavaScript 成为了 StackOverflows 讨论最多的编程语言。(也许Python正在迅速成为最受欢迎的编程语言,或者与其他语言相比,Python 新编码者的所占比例更大!)但是这些开发人员到底在问什么呢?讨论最多的框架、软件包、功能和方法是什么?造成痛苦最大的是哪些数据类型?这些问题在不同语言之间有何不同?为此,我们做了以下动作:
  • 针对上面列出的11种编程语言中,我们分别抽取了 1000 个最受好评的 Stack Overflow 问题。
  • 在 Python 中做了一些数据清理(自然是 pandas)。
  • 我们将所有 11000 个问题(超过 96000 个单词)输入到 JavaScript 的词云算法中,从而使我们可以全方位看到不同语言中普遍出现的痛点。
以下就是结果。a3f57546fb35b2fba2f5aa483664634e.png

JavaScriptdcb720bf9d5a1db0319604d3b19ab0e6.png

JavaScript 已经存在了 23 年,Stack Overflow 是 11 年。在那 11 年中,“ jquery ”(中左)是迄今为止讨论最多的 JavaScript 框架。208a47905270e5588454882c007e8878.png

Python

c011f141dc90c78e899a30b79f6fca6a.pngPython 实际上比 JavaScript 出现的时间要长 6 年。Guido van Rossum 的想法始于1990年,如今已演变成数据科学家的一种编程语言。显然,它最常见的痛点是连接到数据处理库:“ pandas ”(中左)和“ dataframe ”(中上)位列其中。但是,Python 是一种通用的胶水语言,它涉及许多不同的技术领域,解释了频繁被讨论的“ django ”(中底)Web开发框架。0666ee47f9530cdc568420427f10196f.pngRb6fa4fa9b71f718cbdfd0975c070ac7c.pngR 也许是数据科学家所选的第二语言,它与 Python 的不同之处在于它几乎专门用于这一目的。诸如“ dataframe ”(右上),“ datatable ”(右上)和“ matrix ”(中)之类的似乎使 R 用户头疼的数据处理特定概念。Python 和 R 都具有出色的数据操作库,尽管在数据可视化方面,有人认为 R 比 Python 更具优势。话虽如此,数据可视化库“ ggplot ”(中间)是迄今为止 在 R 语言中讨论最多的概念。因此,也许 Python 用户会发现 matplotlib 更易于处理!f96d174dcacd5e7b8c258afedad724b8.png

Ruby

a0b6a285cce72a2e7c3edeab1a2ca03a.pngRuby 首次出现在 90 年代中期,现在已经成为服务器端框架 ruby-on-“ rails ”(右上方)的主要语言。f635405f4ee5e8cde118625c1d9ca4fb.png

C#

676af58d7a575532ca6f65cb900bba28.pngC#(C Sharp,2000年)是由 Microsoft 开发的,主要用于其 .NET 框架(“ net ”,中右)。b62641edbea623dd9f28f9039fcb7cda.png

C ++

a5a25940ee74e96c852e7d1885e03e65.pngC ++(1985)逐渐成为视频游戏开发人员的首选语言。3D 视频游戏的基本视觉构建块是多边形,而多边形的基本构建块是“vector”(中右)。1f9bb63067340d5ef9009727965a3c56.png

Java

       c5a7479fa599d6af3a657e98df4c52f5.png

Java(1995)作为一种通用的“一次写入,随处运行”的语言而创建。在 90 年代后期和互联网初期的 PC 繁荣时期,它变得很流行,并且是许多 Windows 应用背后的推动力。但最近,它成了“ Android ”(中右)应用开发中的主要语言。752ff98ec7f7517cee4cf59376af737c.png

Objective-C

f35cf3c2fa2679c80593cfb00e7e3708.png作为这项研究中最古老的语言之一,Objective-C(1984)是苹果 OSX 操作系统以及最近在“iPhone ”(中)中“ iOS ”(左下)应用的主要支持语言......直到 Swift 推出为止。 9dd52fbce6bdf286a8d044b804d2588d.png

Swift

        621938bc4381c4c837ff29163241194c.png

首次出现于 2014 年的 Swift 在苹果开发领域已取代 Objective-C。尽管在标签为#swift 的 Stack Overflow 的问题中,“objective-c”被提及的频率(中右)可能代表了成千上万的 iOS 开发者希望 Stack Overflow 来更新他们的知识。c86ae84141c762e462d2b37407c756c5.png

PHP

ca2064bb68b6ae4d83af3e37af9fbe1e.pngPHP(1995)是用于Web开发的服务器端脚本语言。今天它仍然用于此目的,你可以从围绕语言“laravel ”框架(中左)的问题频率看到这一证据。40e18873f80f96742d0444afcb3971b7.png

SQL

1a8ee06dacbba1777b8625a67eaa341e.png与本研究中的其他一些语言相比,SQL 不是一种功能齐全的编程语言。它专为数据处理这一项工作而设计。由于这种特殊性,SQL 最常见的痛点都围绕数据库访问:“ sever ”,“ mysql ”,“ database ”,“ query ”,“ select ”。随着时间的推移,每种编程语言都已针对技术中的特定细分市场而设计。R代表数据科学,Swift 代表 iOS 开发,C++ 代表视频游戏开发,这解释了所出现问题类型的某些差异。这就解释了为什么我们看到在 SQL 中“ database ”是一个普遍被讨论的概念,但在 Objective-C 等语言中却不是这样。尽管存在这些明显的差异,但这些可视化表示不同领域内的一些基本相似之处。例如字符串和数组(显然不是整数、浮点数或布尔值)的基本数据类型是常见的痛点,这导致所有有信条的开发人员转向 Stack Overflow。本着团结精神,这是我们提取的所有 11000 个问题的词云:b1207d142df50b0378f0c79e502bf12b.pngGoogle 可以帮助解决一些问题......但其他事情,我们还要找 Stack Overflow。你对上述结果是不是有同感?欢迎留言曾经你遇到过的“令人头秃”的问题。原文链接:https://www.globalapptesting.com/blog/picking-apart-stackoverflow-what-bugs-developers-the-most【END】

31d9f2471728ab70291d1c3e5e72b67d.png

 热 文 推 荐 

☞三年一跳槽、拒绝“唯学历”,火速 Get 这份程序员求生指南!

☞丰巢回应小学生用照片“刷脸”取件;苹果明年或发布四款 5G 手机;Spring Boot 2.2.0 发布 | 极客头条☞如何在 Python 数据中清洗常用 4 板斧?☞在办公室装警报、参加杨超越编程大赛——“开发者之友”声网Agora团队是怎样炼成的?

☞巨头垂涎却不能染指,loT 数据库风口已至

☞【建议收藏】数据中心服务器基础知识大全

☞大规模1.4亿中文知识图谱数据,我把它开源了

☞“国家队”入局! 中移动、银联等宣布区块链服务网络(BSN)正式内测!

6a6da2fb2af87fd90efc296dce655e2e.png你点的每个“在看”,我都认真当成了喜欢

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/289038.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mybatis 返回 插入的主键

2019独角兽企业重金招聘Python工程师标准>>> 一般返回的是 数据库的 自增的 主键,,, 百度了一通,,我 刚开始 以后 可以 通过 插入的方法的,, 返回值 可以获取到 自增的主键&#xff…

Source Generator实战

前言最近刷B站的时候浏览到了老杨的关于Source Generator的简介视频。其实当初.Net 6刚发布时候看到过微软介绍这个东西,但并没有在意。因为粗看觉得这东西限制蛮多的,毕竟C#是强类型语言,有些动态的东西不好操作,而且又有Fody、N…

Linux Swap分区设定

因为准备在linux上面安装Oracle数据库,据说swap分区小于4G容易失败,天啦噜的我连swap分区是啥都不是非常清楚, 大概有个印象吧,但先搞大了再说。 测试证明Ubuntu14默认的swap分区是和初期设定的内存大小一样一样的。 最初因为手速…

java servlet https_javaweb项目对https的配置01

1.准备证书生成a.进入到jdk下的bin目录(如果配置了Java的环境,可以直接在cmd命令窗口中直接输入如下命令)keytool -v -genkey -alias tomcat -keyalg RSA -keystore d:/tomcat.keystore -validity 36500附:d:/tomcat.keystore是将生成的tomcat.keystore放…

OC开发_Storyboard——MapKit

一、Core Location 1、基本对象 propertys: coordinate, altitude, horizontal/verticalAccuracy, timestamp, speed, course property (readonly) CLLocationCoordinate2D coordinate; typedef { CLLocationDegrees latitude; // double型 纬度 CLLocationDegrees longitu…

pythonweb服务器怎么让别人访问_Django配置让其他电脑访问网站

其实在Django 带有一个内建的轻量级 Web 服务器,可供站点开发过程中使用。我们提供这个服务器是为了让你快速开发站点,也就是说在准备发布产品之前,无需进行产品级 Web 服务器(比如 Apache)的配置工作。 但是实际开发中…

C#求一元二次方程的根经典案例程序

目 录 1. 界面设计 2. C#源程序 1. 界面设计 界面说明: 输入一元二次方程的二次项、一次项及常数项,这样的话对应的一元二次方程表达式就确定了,点击【计算】,即可计算出该一元二次方程的根。 2. C#源程序 using System; using System.Collections.Generic; using S…

微软是如何解决 PC 端程序多开问题的

前言在公众号上看到一篇文章《C#中解决PC端程序多开的问题》。该文作者是通过创建互斥锁Mutex实现的:bool mutexCreated; var mutex new Mutex(true, "MyApp", out mutexCreated); if (mutexCreated) {Application.Run(new Form1()); } else {MessageBox.Show("…

磁盘和文件系统管理一

主要掌握规划硬盘中的分区,创建文件系统,挂载卸载文件系统。学会添加并进行分区,学会创建并挂载文件系统。 检测并确认新硬盘 fdisk –l [磁盘设备] 规划磁盘中的分区fdisk [磁盘设备] 用途:在交互是的操作环境中管理磁盘分区 交…

NodeJS-queryString

无论是前端还是后端,经常出现的应用场景是URL中参数的处理。nodeJS的queryString模块提供了一些处理 query strings 的工具。本文将详细介绍nodeJS中的queryStringvar querystring require(querystring);/*{ unescapeBuffer: [Function],unescape: [Function: qsUn…

ASP.NET和ASP.NETCore多环境配置对比

前言多环境配置应该都很熟悉了,最为常见的便是Debug和Release,例如下图是新建的一个asp.net项目,配置文件展开共有三个文件组成据我所知,大多公司从来没编辑过Web.Debug.config和Web.Release.config,一个Web.config文件…

d类功放芯片_应用于无滤波级D类音频功放的新型死区时间控制系统

在音频功率放大领域,由于D类音频功率放大器是基于脉冲宽度调制技术的开关放大器[1-4],用作放大的功率管几乎总是处于或者完全导通或者完全截止的状态,因此其功率损耗比传统的线性放大器小得多,这使得其效率非常高,符合…

【C语言简单说】三:整数变量和输出扩展(2)

尼玛。。。简直蛋了个翔。。。 没保存,,,, ( E___E ) 念昏了头 注:注意我们每一行代码后面的分号表示我们一句代码的结束,就像我们在写文字的时候的标点符号,一个句号表示一句话的结尾。 注…

UML 用例图

用例模型 用例模型用来记录系统的需求,它提供系统与用户及其他参与者的一种通信手段。 执行者 用例图显示了系统和系统外实体之间的交互。这些实体被引用为执行者。执行者代表角色,可以包括:用户,外部硬件和其他系统。执行者往往被…

MAUI初体验:爽

只是记录,只是Hello World体验,别期望太高。1. 前言经过几个小时折腾,Maui环境终于安装好了,先上Hello World截图:1.1 MAUI Windows上MAUI Windows1.2 MAUI Android上MAUI Android2. 今早看到一个群聊推送点击链接可以…

无法识别的属性“targetFramework”。请注意属性名称区分大写和小写。错误解决的方法...

“/CRM”应用程序中的server错误。 配置错误 说明: 在处理向该请求提供服务所需的配置文件时出错。请检查以下的特定错误具体信息并适当地改动配置文件。 分析器错误消息: 无法识别的属性“targetFramework”。请注意属性名称区分大写和小写。源错误: 行 24: 设…

windows之nslookup命令

1 问题 今天是特别傻逼,既然问了一个很愚蠢的问题,登录后台需要相关的ip,但是我只有域名,这么太突然来,我既然不知道用nslookup命令,好吧,先记录起来,希望下次不要犯这样的傻逼错误 2 查看电脑的所有配置 在windowd 终端输入如下命令 ifconfig/all 3 nslookup正…

动态轮播图

1 /// <reference path"jquery-1.10.2.min.js" />2 var i 0;3 var timer; //设置定时器4 $(function () {5 $("#dlunbo").hover(function () {6 $(".btn").show();7 }, function () {8 $(".btn").hide…

eos操作系统_EOS相机统一的用户界面

自EOS相机诞生起就未改变的基本布局精心设计的操作系统EOS数码单反相机从普及机型到高端机型的按钮布局都是共通的。快门按钮的位置自不必说&#xff0c;主拨盘位置和背面按钮的配置也基本相同。特点是在手柄一侧集中配置用于进行主要操作的按钮。实现了只用右手就能完成拍摄相…