Python最抢手、Go最有前途,7000位程序员揭秘2019软件开发现状
作者 | 屠敏 整理
报告来源 | JetBrains
转载自 CSDN(ID:CSDNnews)
互联网的下半场,科技公司为面对更加严峻的竞争环境,越来越重视开源节流。而对于身处其中且撑起 IT 半边天的技术人,如今如何了?从技术角度来看,其又该作何改变顺应潮流?
接下来,我们将从 JetBrains 最新发布的《2019 开发人员生态系统现状》报告中一窥究竟。
JetBrains 通过调查全球 7000 名开发者,解析出开发者们在日常软件开发中最常使用的语言、框架,从而探索各种编程技术的最新趋势,希望可以帮助更多的开发者获取适合自己的技能。
过去一年,哪些编程语言被使用?
工欲善其事,必先利其器。作为程序员们的看家利器之编程语言,倘若开发者们对其掌握得越深那么对自己的职业发展越有益。但是由于每一年不同行业的技术发展各有偏重,导致数百种编程语言的流行度也会受到影响。
那么在过去一年中,开发者主要使用的编程语言有哪些?
对此,JetBrains 根据最新的数据报告结果得出,最受欢迎的编程语言是 Java 和 Python。其后是 C# 和 JavaScript,两者不相仲伯。但如果结果按示例大小标准化,那么 C# 是最受欢迎的语言。详情如下所示:
首选的编程语言有哪些?
在使用的编程语言中,并不意外,JavaScript 当选最常用的语言。其次为 Java、Python。
除此之外,JetBrains 还发现,似乎有一些“辅助”语言 即主要用作其他语言,包括:HTML、SQL 和 Shell 脚本语言。很多软件开发人员练习过这些辅助语言,但很少有人将它们作为主要语言。例如:56% 的人练习过 SQL,但只有 19% 的人称它为主要语言,仅 1.5% 的人将它作为第一语言。
从另一方面而言,Java 是独占鳌头的语言。其用户中有 44% 只使用或首先使用 Java。其后是 JavaScript,份额“仅有” 17%。
接下来,我们将详细解析。
最常用的整体编程语言——JavaScript
从上面的结果中,除了有 69% 的使用者外,还有 5% 的开发者计划采用/迁移到 JavaScript 语言。
其实一直以来,JavaScript 横扫了很多编程语言榜单,而它之所以如此流行,主要是因为在 Web 前端、客户端乃至物联网等项目开发中都避不开 JavaScript 的使用,且凭借简单易学、丰富的扩展功能等特性,JavaScript 也吸引了不少开发者的关注。
在 JavaScript 语言中,JetBrains 还针对常用的框架做了调查。根据报告显示,React 是业界流传的前端主流三大框架 React、Vue.js、Angular 中使用率最高的,占比高达 58%。同时,JetBrains 也表示,Vue.js 的流行度正逐年增长,自去年以来,份额已经占到 11%,几乎是 2017 年的一倍。在本次受访者中,也有 41% 的开发者表示主要使用 Vue.js 框架。
对于编辑器的选择,使用 JavaScript 的开发者中有 51% 的受访者称常用的 IDE 为 VS Code。
此外,还有 44% 的 JavaScript 开发人员经常使用 TypeScript。2019 年开发人员总计 1/4 在用它,而去年为 17%。在前端开发中,程序员们大多喜欢使用 CSS 为样式表语言。
最流行的编程语言——Java
如今已有 24 岁的 Java,早已不再年轻,但依然是最流行的编程语言。
不过,自从 Oracle 将 Java 的更新周期改为一年两次之后,很多开发者“苦不堪言”。这不 Java 12 刚发布了三个月,Java 13 就已进入了特性冻结阶段。但是根据报告调查结果显示,无论 Java 怎么更新,Java 8 依然是开发者最常用的版本,占比高达 83%。另一个长期版本 Java 11 的使用率仅占 22%。
另外,Java EE 8 版本也是开发者最常使用的,占比 39%。其次,有 14% 的受访者称经常使用 Java EE 7。
在 Java 开发者中,常用的应用程序服务器为 Apache Tomcat。
对于不用应用服务器的程序员而言,有 61% 的受访者表示会选用 Spring Boot 框架。与此同时,Spring Boot 也是最流行的 Java Web 框架,相较去年,其使用率增长了 14%。
根据 JetBrains 官方统计,有 93% 的 Java 开发人员使用 JUnit 进行单元测试,而 51% 的人使用 Mockito。
此外,与 JavaScript 开发者有所不同,Java 开发者更习惯使用 IntelliJ IDEA IDE。另外,使用 Eclipse 或基于 Ecplise 的开发者占比 17%。
最有前途的编程语言——Go
为软件开发而生的 Go 语言,可以在不损失应用程序性能的情况下降低代码的复杂性。而在一众编程语言中,Go 成为最有前途的语言。因为在 2017 年时,Go 语言的份额只有 8%,现如今在 Google 的不断扶持以及更多项目的应用下,Go 已经达到了 18% 的份额。此外,有 13% 的受访者还表示愿意采用或迁移到 Go 语言。
对于 Go 语言的使用,JetBrains 表示,多数人使用单个全局 GOPATH。在同时编辑多个项目的人中,甚至有 2/3 的人仍不倾向于每个项目使用一个 GOPATH。
据报告结果显示,才出现不久的 Go 模块,如今已经有 40% 的 Go 开发者已经在使用它,还有 17% 的人希望迁移过来。
此外,Gin 是 Go 程序员常用的 Web 框架。
学习最多的语言——Python
要论过去一年间最火的领域是哪个?
想必不少业界人士都有所了解,那就是人工智能领域。
要问最火的编程语言是哪种?
那么非 Python 莫属了。
在近几个月的 TIOBE 编程语言排行榜中,Python 更是力压 C++,占据最受欢迎排行榜的 Top 3。而在这次的调查中,Python 成为开发者最想要掌握的技能之一。且有 27% 的受访对象表示在过去 12 个月中开始或仍在持续学习 Python。对此,或许不少开发者发问,使用 Python 到底可以做什么?
据报告显示,49% 的开发者使用 Python 做数据分析,其次,46% 的受访者将其用于 Web 开发,还有 42% 的人用于机器学习方面。
而除了 Python 之外,58% 的受访者称还会使用 Numpy 数据科技框架。
相比 Java,Python 版本的碎片化显然没有那么严重。对于主流的 Python 2 和 Python 3 版本,越来越多的开发者开始向更新的 Python 3 版本迁移:去年还有 1/4 的人使用 Python 2,而今年有 9/10 的开发者宣布将使用 Python 3。探究其缘由,主要是因为 Python 2 和 3 版本之间存在诸多的不兼容性。
开发者常用的操作系统
因微软战略的改变,Windows 已从软件之列成为用户的一种服务。不过,大多数开发者的开发环境还是建立于 Windows 操作系统之上,其次 49% 的用户使用 macOS,48% 的受访者使用 Unix 或 Linux。整体而言,这三种操作系统的使用率相差并不大。
在移动领域,还是以 Android 系统为主。
工具
对于工具的选择,JetBrain 官方表示,89% 的开发人员在某种程度上自定义其 IDE。此外,据调查数据显示,多数开发人员投入暗黑的阵营:83% 的人更喜欢暗色调主题的 IDE 编辑器。
软件开发现状
一直以来,程序员这一行业是以高薪出了名,那么对于开发者而言,何种开发工作最受欢迎?其从事 IT 行业究竟是兴趣使然还是为了养家糊口?
根据《2019 开发人员生态系统现状》报告显示,Web 后端在程序员岗位中最受欢迎,有 60% 的受访者称选择 Web 后端以谋生,其中 39% 的 Web 后端开发者表示兴趣使然选择了该职位。
其次,受欢迎的岗位分别有 Web 前端、移动应用程序、库/框架。
在各大科技公司纷纷拥抱开源之际,事实上,很多开发者因工作、时间、后期维护等因素并不能完全拥抱开源。对此,仅有 21% 的受访者表示每年会有几次参与开源项目。
此外,有 16% 的开发者表示,在他们的项目中不做任何测试。但在全职高级开发人员中,这个统计数据降至 8%。
AI 是否会取代程序员?
古人有句谚语叫日有所思夜有所梦,据报告显示,工作中编程越多(作为主要活动)的人就越有可能在梦中编程。
在 AI 逐步渗透至各个领域之际,AI 威胁论一直从未停歇,就连英国著名物理学家史蒂芬·霍金曾经在采访时也表示过担忧,人工智能(AI)很快会成为一种新的生命形态,甚至某一天会超越人类。那么在相当于创造 AI 的开发者群体中,他们会怎么看?
据调查显示,57% 的受访者感受到了危险,并认为未来有一天 AI 会取代开发者的位置。不过也有 27% 认为 AI 绝不可能取代开发人员。
《2019 开发人员生态系统现状》更多内容可参考:https://www.jetbrains.com/zh-cn/lp/devecosystem-2019/
(*本文为 AI科技大本营转载文章,转载请联系原作者)
◆
公开课精彩推荐
◆
想跟NVIDIA专业讲师学习TensorRT吗?扫码进群,获取报名地址,群内优秀提问者可获得限量奖品(定制T恤或者技术图书,包邮哦~)
NVIDIA TensorRT是一种高性能深度学习推理优化器和运行时加速库,可以为深度学习推理应用程序提供低延时和高吞吐量。通过TensorRT,开发者可以优化神经网络模型,以高精度校对低精度,最后将模型部署到超大规模数据中心、嵌入式平台或者汽车产品平台中。
推荐阅读
西交出身,辛书冕获CVPR 2019最佳论文,李飞飞团队获经典论文奖
媲美Pandas?Python的Datatable包怎么用?
蔡徐坤1亿转发量幕后推手被封,能否动摇饭圈文化?| 数据会说话
解密Kernel:为什么适用任何机器学习算法?
Python最抢手、Java最流行、Go最有前途,7000位程序员揭秘2019软件开发现状
一张图告诉你到底学Python还是Java!
10分钟读懂什么是容器云?
倒计时10天 | 堪称年度中国最具影响力的以太坊技术盛宴,为何不容错过?
技术面试别扯智力题!

相关文章:

main函数参数
参考:Where Does GCC Look to Find its Header Files? 命令行参数 VS 程序参数 ./a.out 1 2 3 4 5 6 1 2 3 4 5 6是程序参数,是传给a.out这个程序处理的,main里面的argv来接收 ./a.out 1 2 3 4 5 6完整的这一串才是命令行参数 代码演示 如下…

转载 load-on-startup的用法
转载于:http://www.ituring.com.cn/article/50477 Web.xml中的Servlet中的配置: <servlet><servlet-name>createBlog</servlet-name><servlet-class>com.cnblogs.CreateBlog</servlet-class><load-on-startup>0</load-on-s…

商汤62篇论文入选CVPR 2019,一览五大方向最新研究进展
(图源自视觉中国)作为与ICCV、ECCV并称为计算机视觉领域三大国际会议之一,本届CVPR大会共收到5265篇有效投稿,接收论文1300篇,接收率为25.2%。商汤科技CVPR 2019录取论文在多个领域实现突破作为国内CV领域的明星公司&a…

cvSaveImage保存图像
转自:http://blog.csdn.net/luhuillll/archive/2009/10/28/4739471.aspx opencv保存图象直接使用cvSaveImage,这个函数.但是windows位图的图象格式是RGBt格式,而opencv的图象存储格式是BGR. 这样导致保存的图象失真.在windows下查看图象好象变绿色了.所以在保存图象…

软工实践原型设计——PaperRepositories
软工实践原型设计——PaperRepositories 写在前面 本次作业链接队友(031602237吴杰婷)博客链接pdf文件地址原型设计地址(加载有点慢...)结对成员:031602237吴杰婷 & 031602636许舒玲原型设计工具:Axure RP 8PSP表格 PSP3.1Personal Software Process…

nagios+sendmail配置
以下为自己安装测试过的,如果有问题,大家一起讨论 系统环境:centos6.2 64位 最小化安装 一 安装nagios 见附件:nagios官方文档(nagios_nrpe20120929_web.pdf) 二 安装配置sendmail 我用hotmail邮箱接收nagi…

真正的博士是如何参加AAAI, ICML, ICLR等AI顶会的?
(图源自视觉中国)整理 | 一一出品 | AI科技大本营(ID:rgznai100)源于对学术的热爱,让很多人走上了博士这条求索之路,而热爱会让他们勤奋付出,勤奋让他们成为佼佼者。在刚刚过去的 ICML 大会上&a…

matlab图像滤波
转自:http://hi.baidu.com/wang%5Fpw/blog/item/36354a637ac87b48eaf8f879.html clc; clear all; Iimread(eight.tif); % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % %用中值滤波,多维滤波,使用中心为-4,-8的拉普 % %拉…

2018你不得不看的国内CRM软件排行榜
2018你不得不看的国内CRM软件排行榜短短几年时间,CRM在中国的发展就已经非常迅猛,现在已经成为了管理软件增长最快的产业。在我们总结的CRM软件排行榜中,腾讯企点的CRM软件赫然摆在前列。而CRM在中国中小企业已经突破千万家,占全国…

二维物体形状识别方法比较
二维物体形状识别方法比较 摘 要 针对模式识别中二维物体的形状识别问题,以二值图像中的物体形状为主要研究对象,依次从特征提取、分类器设计两个主要层面对形状识别方法进行了全面综述,并分析了国内外研究现状,特别是近年来所取…

个人知识管理的10个误区
100个人,有100个对个人知识管理的理解。 当我们热烈的讨论“个人知识管理”的时候,也许我们讨论的根本不是一个东西:你理解的个人知识管理和他理解的个人知识管理根本不同。 拙作《你的知识需要管理》试图去建立一个个人知识管理内容的框架&a…

关于比特币现金升级问题讨论不断升温
过去几周,比特币现金的支持者一直在讨论定于今年11月15日推出的硬叉。大多数人都明白,目前有两个阵营有着完全不同的愿景。看来双方在短期内不会达成妥协。最近,随着时间的推移,双方都在测试某些特性,并发表了关于特定…

阿里AI摘图像识别竞赛WebVision桂冠,万物识别准确率创世界纪录
近日,第三届图像识别竞赛WebVision中,阿里AI击败了全世界150多支参赛队伍,获得冠军。 WebVision由谷歌、美国卡耐基梅隆大学、苏黎世联邦理工大学等机构联合全球视觉技术领域顶级学术会议CVPR发起,是目前图像识别领域最权威的竞赛…

做人工智能必看的45篇论文 | 附下载地址
而AI领域的发展会是IT中最快的。我们所看到的那些黑客技,其后面无不堆积了大量的论文。而且都是最新、最前沿的论文。从某种调度来讲,他们所用的技术跟书籍里的内容确实不是一个时代。要想与时俱进,就必须改变思路——从论文入手。今天给大家…

C# Socket编程(5)使用TCP Socket
TCP 协议(Transmission Control Protocol,传输控制协议)是TCP/IP体系中面向连接(connection oriented)的传输层(transport layer),TCP协议能够检测和恢复IP层提供的主机到主机的信道中可能发生的报文丢失、重复以及其他错误。由于TCP协议是一种面向连接协议:在使用它…

opencv 检测直线、线段、圆、矩形
转自:http://blog.csdn.net/byxdaz/archive/2009/12/01/4912136.aspx 检测直线:cvHoughLines,cvHoughLines2 检测圆:cvHoughCircles 检测矩形:opencv中没有对应的函数,下面有段代码可以检测矩形ÿ…

kaldi 源码分析(十) - gmm-init-mono.c分析
一直没有搞明白 hmm-gmm 之间是通过什么联系起来的,花了些时间查代码,看到最直观联系的就是 gmm-init-mono 工具。 gmm-init-mono 基础类通过上述看到,主要的配置都是 在 topo 文件中, 这里需要将一些常见的名称理解下来,这里直接…

你最需要了解的H3C交换机端口安全模式
以下内容摘自正在全国热销的《Cisco/H3C交换机高级配置与管理技术手册》一书(畅销经典——《Cisco/H3C交换机配置与管理完全手册》(第二版)的配套姊妹篇)。目前京东网和卓越网上都有“满150元减50元,满300元减100元”的…

TCL发布7项AI合作项目,聘任蒋涛为技术顾问
作者 | 夕颜出品 | AI科技大本营(ID:rgznai100)2019 年 6 月 14 日,TCL 举办了以“技术无疆界,合作赢未来”为主题的技术合作开放大会。会上,TCL 面向全球发布了 13 项技术合作项目,其中包括 7 项人工智能技…

Microsoft Platform SDK Febrary 2003更新vc6的SDK网址
Microsoft Platform SDK Febrary 2003更新vc6的SDK网址,目前找到3处,分别为: 1、http://www.x86pro.com/plus/view.php?aid100 2、http://blog.csdn.net/Mobidogs/archive/2007/02/22/1512620.aspx 3、http://blog.chinaunix.net/u1/34831…

11岁姑娘挑战8分钟编程小程序!蚂蚁金服董事长井贤栋:欢迎加入
小蚂蚁说: 9月19日,在阿里巴巴云栖大会现场,一位年仅11岁的小学生万海妍报名参加了支付宝8分钟小程序挑战赛,成为现场最年轻选手。据悉,蚂蚁金服董事长兼CEO井贤栋在会后对万海妍十分赞赏,向她发出邀请&…

MST配置详解
一、 组网需求1. 网络中所有设备都属于同一个MST域。SW1和SW2为汇聚层设备,SW3和SW4为接入层设备。 2. 通过配置MSTP,使不同VLAN的报文按照不同的MSTI转发: VLAN10的报文沿MSTI1转发,VLAN30沿MSTI3转发&#…

CImg库的一个简单例子
转自:http://www.cppprog.com/2009/0424/106.html CImg是一个跨平台的C的图像处理库,提供了加载、处理、显示、保存等一系列功能,其中的图像处理功能尤其强大。 首先,建议先到这里欣赏一下使用CImg代码做的Demo,就是它…

继AutoML后,第四范式发布软硬一体化AI集成系统SageOne
作者 | 夕颜出品 | AI科技大本营(ID:rgznai100)6 月 20 日,AI产品和服务提供商第四范式宣布发布最新 AI 系列产品SageOne Appliance软硬一体化AI集成系统,性能较市面开源工具或GPU解决方案至少提高6倍。这是继 2018 年9 月 18 日第…

Apache 基金会宣布 Apache Pulsar 毕业成为顶级项目
开发四年只会写业务代码,分布式高并发都不会还做程序员? Apache 软件基金会宣布,Apache Pulsar 已经成功地从孵化毕业,成为基金会的一个新的顶级项目。Pulsar 是一个分布式的消息发布/订阅传递平台,旨在实现可扩展性…

CI报Disallowed Key Characters的解决
用CI框架时,有时候会遇到这么一个问题,打开网页,只显示 Disallowed Key Characters 错误提示。有人说 url 里有非法字符。但是确定 url 是纯英文的,问题还是出来了。但清空浏览器历史记录和cookies后。 刷新就没问题了。有时候。打…

刷新中文阅读理解水平,哈工大讯飞联合发布基于全词覆盖中文BERT预训练模型...
作者 | HFL来源 | 哈工大讯飞联合实验室(ID:rgznai100)为了进一步促进中文自然语言处理的研究发展,哈工大讯飞联合实验室发布基于全词覆盖(Whole Word Masking)的中文BERT预训练模型。我们在多个中文数据集上得到了较好…

CImg库中部分函数的作用和用法
部分内容来自于CImg参考手册或CImg的Doxygen手册 1、宏cimg_usage(usage):可以被用来描述程序的目的和使用情况。它通常被插入到 int main(int argc, char **argv)的定义之后。 参数:usage:描述程序目的和使用情况的字符串。 前置条件:使用ci…

golang通过itemid获取zabbix graph监控图
2019独角兽企业重金招聘Python工程师标准>>> #简述 本文将使用golang和第三方http client 库gorequest编写。如需要只使用golang 标准库可以参考我的另外一篇文章golang通过itemid获取zabbix graph监控图 #F&Q 为什么是golang? 网上很容易就能找到使…

n后问题-回溯法
问题描述: 在n*n的棋盘上放置彼此不受攻击的n个皇后。按国际象棋的规则,皇后可以与之处在同一行或者同一列或同一斜线上的棋子。 n后问题等价于在n*n格的棋盘上放置n皇后,任何2个皇后不放在同一行或同一列的斜线上。 算法设计: |i…