Python超越Java,Rust持续称王!Stack Overflow 2019开发者报告

「2019 Python开发者日」明日开启,扫码咨询 ↑↑↑
作者 | 郭芮
出品 | CSDN(ID:CSDNnews)
导语:2019 年 Stack Overflow 开发者调查报告最新出炉了!今年,近 90,000 名开发人员参与了调查,共同分享学习、工具以及未来技术规划上的经验。
程序员有很多必备的技能网站,Stack Overflow 就是其中之一——作为全球 IT 界最受欢迎的技术问答社区,很多编程问题都能在上面找到专业的答案,也吸引了大量程序员聚集其中。此前,在《作为程序员,制霸了 Stack Overflow 是一种怎样的体验?》一文中,我们就分享了 Stack Overflow 上首位声望值超过 100 万的程序员故事,引来了热烈围观。
而 Stack Overflow 一年一度的开发者报告,则是以全球程序员为对象的规模最大、最全面的调查,今年已经进行到了第九年。每年,报告都会涵盖从开发人员最喜欢的技术、到工作偏好的所有内容。
今年的调查中主要包括以下内容:
Python 是增长最快的编程语言,今年逐渐淘汰了 Java,成为第二个最受欢迎的语言(仅次于 Rust,其在 CSDN 此前的《Rust 逆袭!位列 Stack Overflow 2018 最受欢迎编程语言榜首》一文中也卫冕)。
五成以上的开发者在他们十六岁时就编写了第一行代码。
DevOps 专家和网站可靠性工程师(SRE,Site Reliability Engineer,软件工程师和系统管理员的结合)是薪酬最高、经验最丰富的开发人员,同时也是工作满意度最高的工程师。
在受访程序员所处国家中,中国对互联网环境持有最乐观的态度,而法国和德国等西欧国家的企业对未来最不乐观。
2019 开发者画像
报告显示,51.9% 的受访者是全栈开发,占比最高,其次为后端开发和前端开发,另外 18.1% 为移动开发者。开发者最常见的技能组合为后端、前端和全栈开发,数据库管理员和系统管理员、DevOps 专家和网站可靠性工程师、学术研究员和科学家等受访者之间的占比则基本等同。
在开源层面,报告显示大约 65% 的专业开发人员每一年或以上的频率会为开源项目做出贡献。参与的开源项目多少因语言而异:使用 Rust、WebAssembly 和 Elixir 的开发人员贡献次数最多,而使用 VBA、C# 和 SQL 的开发人员只能达到一半的数量。
受调查者的工作年限不一,报告显示 5~10 年的开发者占比最重,达三成之多。5 年以上和 10~14 年的开发者分别次之,占比为 20.5% 和 19.0%。
其中——在编程语言层面:使用 VBA、F# 和 Clojure 等语言的开发人员编码经验最多,而使用 Python、PHP 和 Kotlin 等语言的开发人员数量最少。在开发领域层面,嵌入式设备构建的 开发人员拥有最丰富的经验,而学术研究人员和数据科学家的经验最少。
在性别层面,报告进行了更为详细的分析。
在所有类别的开发人员调查中,男性的数量均高于女性,但男性与女性的比例各不相同。男性数据科学家或学术研究人员的数量是女性的 10 倍,而系统管理员或 DevOps 专家则是女性的 25~30 倍。对于女性来说,前端开发者、设计师、数据科学家、数据分析师、测试开发人员、科学家和教育工作者等领域的代表性最高。
而开发者的第一行代码,据报告显示,超过一半的受访者在他们十六岁时编写了代码,包括制作网页或是向世界打招呼。
在这一部分,报告还对“对开发者影响最大的公众人物”进行了调查。结果显示,Space X 首席执行官兼首席设计师、特斯拉汽车首席执行官兼产品架构师伊隆·马斯克荣膺第一,占比三成之多,远超第二名亚马逊公司创始人杰弗里·贝索斯。此外在榜单上,业界耳熟能详的微软公司首席执行官萨蒂亚·纳德拉、Google 首席执行官·皮柴、Facebook 创始人马克·扎克伯格、斯坦福人工智能实验室的主任吴恩达以及阿里巴巴集团董事长马云等均在列。
开发者技能解读
调查显示,JavaScript 已经连续第七年登顶最流行的编程语言,Python 再次上升,位列第四。今年,Python 在整体排名中超过了 Java,就像去年超过 C#和前一年超过 PHP 一样——Python 增长极快。
此外,jQuery 是 Web 框架中使用最广泛的;深度学习框架 TensorFlow 比 Torch、PyTorch 更受欢迎;与 2018 年一样,MySQL 是最常用的数据库,PostgreSQL 排名第二;Linux 和 Windows 毋庸置疑是开发工作最常见的平台,Docker 是第三个使用最广泛的平台。
Rust 连续第四年成为开发者最受欢迎的编程语言,紧随其后的是 Python,Python 已经连续第三年上榜最受欢迎的语言。
此外,React.js 和 Vue.js 是开发人员最喜欢和最想要使用的 Web 框架,而 Drupal 和 jQuery 是最令开发者失望的。Redis 连续第三年成为最受欢迎的数据库,MongoDB 则连续第三年上榜。Linux 再次卫冕最受欢迎的开发平台,今年 Docker 和 Kubernetes 也非常受欢迎。
报告显示,Visual Studio Code 是今年最受欢迎的工具。移动应用开发更偏爱 Android Studio 和 Xcode,DevOps 和 SRE 更喜欢 Vim,数据科学家更愿意在 IPython、Jupyter、PyCharm 和 RStudio 中工作。
在区块链的使用上,报告也进行了统计。数据显示,大多数受访者所在的公司没有使用或实施区块链技术,占比达八成,区块链的普及仍任重而道远。
薪资概况和技能规划
在全球范围内,使用 Clojure、F#、Elixir 和 Rust 的开发者工资最高,薪水中位数高于 70,000 美元。但是区域的差异也会影响到薪酬,美国的 Scala 开发商收入最高,而 Clojure 和 Rust 在印度的收入最高。
具体来看,使用 Clojure、Scala、Go、Rust 和 R 语言的开发人员,即使他们拥有的经验不多,也会获得丰厚的报酬。然而,使用 PHP、汇编和 VBA 的,即使有多年的经验也会得到较少的报酬。
此外,工程经理、SRE、DevOps 专家和数据科学家、工程师们获得的薪水最高,他们的工作也最稳定,而学术界和数据科学家们换工作最积极。
完整报告链接:
https://insights.stackoverflow.com/survey/2019
(本文为AI科技大本营转载文章,转载请联系原作者)
◆
精彩推荐
◆
◆
倒计时1天
◆
「2019 Python开发者日」演讲议题全揭晓!这一次我们依然“只讲技术,拒绝空谈”10余位一线Python技术专家共同打造一场硬核技术大会。更有深度培训实操环节,为开发者们带来更多深度实战机会。目前大会倒计时 1 天,更多详细信息请咨询13581782348(微信同号)。
推荐阅读:
抵制996!Python之父发声背后,这个社区一呼百应!
39个国外SCI抢发6万篇中国英文论文?然而,真正的问题是……
什么是网络爬虫?有什么用?怎么爬?终于有人讲明白了
“重构”黑洞:26岁MIT研究生的新算法 | 人物志
程序员 996 再上热搜,黑名单增至 84 家!
京东“地震”
V神玩起freestyle! 5位以太坊核心大咖在悉尼的演讲精华全在这了!| 直击EDCON
为什么给黑洞拍照需要这么长时间?
刺激!我31岁敲代码10年,明天退休!
❤点击“阅读原文”,了解「2019 Python开发者日」
相关文章:
electron打包可选择安装位置,可自动更新
Electron打包调参软件(windows版) ----------------------------------可选安装位置,可自动更新,手动更新 一:引包:electron,electron-builder,electron-updater** npm i electron --save-dev n…

osi 模型 tcpip网络模型
OSI网络分层参考模型 网络协议设计者不应当设计一个单一、巨大的协议来为所有形式的通信规定完整的细节,而应把通信问题划分成多个 小问题,然后为每一个小问题设计一个单独的协议。这样做使得每个协议的设计、分析、时限和测试比较容易。协议划分的一…

我在旷视研究院做检测 | 技术头条
作者 | 俞刚,旷视研究院Detection组负责人。2014年博士毕业于新加坡南洋理工大学,加入旷视。主要负责检测,分割,跟踪,骨架,动作行为等方面的研究以及算法落地工作。俞刚博士带队参加 2017 COCOPlaces 挑战赛…

【Ubuntu】ubuntu设置GUI程序自启动
1、在启动脚本中添加 在脚本中添加,如“/etc/rc/”“etc/rc.d”“/etc/rc?.d”“/ect/profile”“.bash_profile”等等。 百度下有很多讲解,这里不再赘述。 2、利用ubuntu界面系统启动 终端中执行:gnome-session-properties,出…

(转)关于数据库主键和外键(终于弄懂啦)
一、什么是主键、外键: 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键 比如 学生表(学号,姓名,性别,班级) 其中每个学生的学号是唯…

浏览器兼容:IE6,IE7,IE8,FIREFOX,Chrome
javascript部分1. document.form.item 问题问题:代码中存在 document.formName.item("itemName") 这样的语句,不能在FF下运行解决方法:改用 document.formName.elements["elementName"]2. 集合类对象问题问题:…

如何将DynamoDB的数据增量迁移到表格存储
为什么80%的码农都做不了架构师?>>> 摘要: AWS 的 Amazon DynamoDB 和阿里云的表格存储 TableStore 都是完全托管的NoSQL数据库服务,提供快速的、可预期的性能,并且可以实现无缝扩展。本篇文章介绍了如何使用 Lambda …

【Ubuntu】ping: unknown host www.baidu.com
1、问题描述 每次重新设置网络后,ping百度总是报错: $ ping www.baidu.com ping: unknown host www.baidu.com2、原因分析 原因是:查看/etc/resolv.conf,发现没有设置DNS服务。 $ cat /etc/resolv.conf # Dynamic resolv.con…

马云:“996 是一种巨大的福气”
作者 | 伍杏玲出品 | CSDN(ID:CSDNnews)【导语】自3月27日996.ICU话题诞生以来,目前GitHub已获得21万的Star,引发国内外的广泛关注和热议。很多人质疑996工作制,Python之父Guido Van Rossum更直言“996反人…

Firebug Console 与命令行全集
Console API 当打开 firebug (也包括 Chrome 等浏览器的自带调试工具),window 下面会注册一个叫做 console 的对象,它提供多种方法向控制台输出信息,供开发人员调试使用。下面是这些方法的一个简单介绍,适时地运用它们,…

100%的程序员都想挑战的算法趣题!| 码书
计算机的世界每天都在发生着深刻的变化。新操作系统的发布、CPU性能的提升、智能手机和平板电脑的流行、存储介质的变化、云的普及……这样的变化数不胜数。在这样日新月异的时代中,“算法”是不变的重要基石。要编写高效率的程序,就需要优化算法。无论开…
【Qt】qss样式表之:QCalendarWidget,日历窗口样式表设置
1、效果图: 2、qss样式表 其中表头的背景颜色等设置不起作用,只好在下面的代码中实现。 /*日历*/ QCalendarWidget QHeaderView {qproperty-minimumSectionSize:0; } QCalendarWidget QMenu{background-color: rgb

BZOJ5324 洛谷4563 LOJ2545:[JXOI2018]守卫——题解
https://www.lydsy.com/JudgeOnline/problem.php?id5324 https://www.luogu.org/problemnew/show/P4563 https://loj.ac/problem/2545 题目见上。 参考:https://blog.csdn.net/dofypxy/article/details/80196942 区间dp,设f[i][j]为[i,j]的答案…

构建高可靠性网络
拓补图如下: 1. 浮动静态路由配置一条主链路,一条辅助链路!正常情况使用主链路,主链路出现故障,切换到辅助链路!H3C主线路 s0-s0 采用ospf 默认度量值是10,辅助线路 s1-s1 配置静态路由,默认度量值是10,无需调整,数据包默认值走s0-s0链路CISCO主线路 s0-s0 采用ospf 默认度量…

LeetCode上最难的链表算法题,没有之一
作者 | 程序员小吴转载自五分钟学算法(ID: CXYxiaowu)该题在 LeetCode 官网上有关于链表的问题中标注为最难的一道题目:难度为 Hard ,通过率在链表 Hard 级别目前最低。题目描述合并 k 个排序链表,返回合并后的排序链表…
【Qt】qss样式表之:自定义属性实现动态切换样式
1、问题描述 例如在播放器中播放按钮,由“播放”状态切换成“暂停”状态后,响应的图标要跟着状态切换。 2、解决方法 使用qss样式表中的属性功能,自定义一个属性,当按钮动作时,改变它的属性值。 在qss中分别对不同的属性值设置 样式。 但是qss不能自动监听属性值的变…

深入学习Lock锁(2)——LockSupport工具类
2019独角兽企业重金招聘Python工程师标准>>> 在同步组件中,当需要阻塞或唤醒一个线程的时候,都会使用LockSupport工具类来完成相应 工作。LockSupport定义了一组的公共静态方法,这些方法提供了最基本的线程阻塞和唤醒功能…

受用一生的高效PyCharm使用技巧(二)
本文转载自公众号Python编程时光(ID: Python-Time)今天又来给大家推荐一些我自己的用的小技巧,大家择需所取即可。如果你还没看过,可以下面的传送门,直接访达:受用一生的高效 PyCharm 使用技巧(…

【GStreamer】基本概念及安装
一、参考网站 官方主页 https://gstreamer.freedesktop.org/ 官方手册 https://gstreamer.freedesktop.org/data/doc/gstreamer/ 官方教程: https://gstreamer.freedesktop.org/documentation/tutorials/index.html 官方基础教程 https://gstreamer.freedesktop.org/docum…

python学习day3
1丶 用户先进行登陆如果用户名在文件中且用户密码也正确就登陆成功调用购物车函数,如果用户用户名输入正确密码错误,提示用户密码错误且重新输入,如果用户 输入用户名不存在,提示用户是否创建该用户,调用注册函数。 1.…

Visual Studio 2010构建Web浏“.NET研究”览器应用程序
2001年,我使用C#中的WebBrowser ActiveX控件编写了我的第一个应用程序,点此阅读,Kapil Sony写了一篇文章介绍了C# 2.0中上海企业网站制作的WebBrowser控件,每一次.NET新版本发布,控件和功能都会发生一些变化࿰…

如何通过结构化智能体完成物理构造任务?| 技术头条
作者 | Victor Bapst, Alvaro Sanchez-Gonzalez,Carl Doersch, Kimberly L. Stachenfel译者 | Linstancy编辑 | 一一出品 | AI 科技大本营(ID:rgznai100)摘要物理构造 (physical construction) 是根据物理动力学原理构造带有一些功能的物体的能力&#x…

【GStreamer】gstreamer工具详解之:gst-launch-1.0
一、gst-launch-1.0 1、简介: gst-launch-1.0构建和运行基本GStreamer管道的工具 官网:https://gstreamer.freedesktop.org/documentation/tools/gst-inspect.html?gi-language=c 命令格式: gst-launch-1.0 [OPTIONS] PIPELINE-DESCRIPTION2、OPTIONS参数选项: –help…

WPF查找子控件和父控件方法
原文:WPF查找子控件和父控件方法public List<T> GetChildObjects<T>(DependencyObject obj, string name) where T : FrameworkElement{DependencyObject child null;List<T> childList new List<T>();for (int i 0; i < VisualTreeHelper.GetCh…

ARP(Accounting Resource Planning)项目感想
ARP是Accounting Resource Planning(会计资源计划)的简称。转载于:https://blog.51cto.com/lya041/690079

【GStreamer】gstreamer工具详解之:gst-inspect-1.0
二、gst-inspect-1.0 1、简介 gst-inspect-1.0 打印插件列表、指定插件或指定元素的信息 2、命令格式: gst-inspect-1.0 [OPTION...] [PLUGIN|ELEMENT]3、OPTION参数选项: --help --gst-info-mask=FLAGS 设置GStreamer信息标志?? -a, --print-all 打印所有插件和元…

心酸科研路:3年前CVPR论文,仅被引用11次,如今成就黑洞照片!
众所周知,黑洞照片已经朋友圈刷屏了,可你也许不知道这张照片背后的一个故事。 译者 | Linstancy、Major 编辑 | 琥珀 出品 | AI科技大本营(公众号ID:rgznai100) 近日,由天文学家公布的人类首张黑洞照片引…

Redis和Memcache的区别是什么
Redis和Memcache都是内存数据库,但它们之间还是有区别的,跟着ytkah看看Redis和Memcache的区别吧 Redis 支持多种数据结构,如string,list,dict,set,zset,hyperloglog 单线程请求,所有命令串行执行,并发情况下不需要考虑…

windows加载符号小计
1、如果当前并没有设置符号路径和符号服务器,且当前正在调试, 则需要设置符号服务器和路径后,重新调试生效 2、如果当前有些pdb没有加载,因为这些pdb放在其他路径了,未加载,当把pdb拷到程序启动目录时&…

谈谈Python那些不为人知的冷知识(一)
本文转载自公众号Python编程时光(ID:Python-Time)小明在日常Code中遇到一些好玩,冷门的事情,通常都会记录下来。现在已经积攒了一些了,最近打算整理一波,发出来给大家补补。一篇只分享五个,有时…