云社区 博客 博客详情

编程语言流行趋势

云上有未来 发表于 2019-10-08 10:51:00 2019-10-08
0
1

【摘要】 目前用的最多的语言是啥?一直以来有很多争论哪种语言用的最多,众说纷纭。其实这个问题要看从啥视角来看:从雇主的视角,他们更多想要的语言是能支撑基础设施的强度、安全性和可扩展性等,切换到很时髦的语言常有伴随的风险和成本,所以中大企业常有滞后。从业界很有名的软件编程工作岗位招聘网站……

1. 目前用的最多的语言是啥?


一直以来有很多争论哪种语言用的最多,众说纷纭。其实这个问题要看从啥视角来看:

从雇主的视角,他们更多想要的语言是能支撑基础设施的强度、安全性和可扩展性等,切换到很时髦的语言常有伴随的风险和成本,所以中大企业常有滞后。从业界很有名的软件编程工作岗位。


招聘网站Indeed的2019年1月 数据来看:

1    Java – 65,986 jobs

2    Python – 61,818 jobs

3    Javascript – 38,018 jobs

4    C++ – 36,798 jobs

5    C# – 27,521 jobs


Java还是很有市场,位列第一,HackerRank 几年前统计过3000多公司软件面试,其中被雇主要求最多的编程语言也是Java。Java流行至少有4个原因:Java长久的被开发者所用(20多年)有很庞大的社区,JVM(Java Virtual Machine)的可移植性使其广泛应用,最流行的操作系统Android的成功,Big Data 处理中Hadoop MapReduce, HDFS 的广泛应用。从开发者的视角,很多开发员是非常喜欢尝试新语言和新技术的,HackerRank 2019的调研显示,开发员在工作中最渴望的就是学到和尝试新东西。目前研究者有很多方法企图了解开发者喜欢使用哪些语言,研究方法包括搜索引擎关键词,代码库统计,问卷调研,综合处理等。


看业界权威性关于编程语言2018-2019年的调研

TIOBE (2019)

频率:每月。这个荷兰公司的指数在业界被应用的较多。

方法:根据Google,Bing,Yahoo,Wikipedia,Amazon,YouTube和百度等热门搜索引擎中的查询数量,使用+“<language> programming”搜索词。 

TIOBE.png


TIOBE测量每种语言的搜索次数与感兴趣的程度相关。C 语言多用于嵌入式系统,C的成功在于长期历史和一些成功公司和平台的采纳,如苹果,微软,Linux, Oracle 等,因其性能和可控性,很多Security公司都喜欢用C,最近的IOT的流行也使C语言有所回暖。 C++面向对象的编程语言是在20世纪80年代开发的,并且仍然存在于从桌面Web应用程序到服务器基础结构的众多系统中。C ++的灵活性,性能和多种环境的应用有助于获得低级别的系统内存操作,在游戏业, VR, 图像等领域应用广泛。


PYPL (2019)

频率:每月。

方法:基于Google趋势的“<语言>教程”搜索词。 

PYPL.jpg


PYPL衡量的是想要学习这些语言的人们的兴趣程度,也可以显示增长趋势。PYPL还有根据不同的国家/地区(美国,印度,德国,英国,法国)的数据。C#在业界的游戏业运用广泛,Python在金融业有很广的应用。PHP在企业Web后端框架应用较广,虽然目前排名第五,在很多调研中总体是呈下降趋势的。


IEEE Spectrum (2018)

频率:每年。IEEE的杂志和网站有40万+会员

方法:排名由10个来源合成(谷歌搜索“X编程”;谷歌趋势;推特; GitHub; StackOverflow; Reddit;黑客新闻; CareerBuilder;Dice; IEEE Xplore数字图书馆)。

IEEE Xplore数字图书馆.png

汇总许多不同类型的统计数据,希望产生最可靠的排名。R 的名列第五反应了AI和ML的广泛应用, Go上升到前十位。


GitHub (2018)

频率:每年。

方法:基于过去12个月内打开的GitHub 的PR(Pull Request)请求的数量

请求的数量.png

请求的数量1.png

这是一种衡量GitHub上活动水平的方法,它应该反映每种语言的开源使用水平。但是,它忽略了商业和私有项目。

JavaScript 非常流行,因为很多应用,特别是在前台开发,而且有很多框架 如Angular, React等,微软的基于JavaScript的TypeScript也逐渐有较大的采纳。Jetbrain 的新兴语言Kotlin也在迅速增长。


HackerRank (2018/2019)

频率:每年。可能是业界最大的编码练习平台, 有大量的使用者(>6+million)。

方法论:年度开发者调研报告如下:

HackerRank1.png

HackerRank2.jpg


JavaScript 应用广泛,JavaScript主要是轻量级,并在前端开发中起主要作用。甚至一些主要的社交媒体平台也认为JavaScript提供了一种轻松创建交互式网页的方式,JavaScript目前是最受欢迎的,因为它与所有主流浏览器兼容,并且它的语法非常灵活很容易上手。作为前端语言,JavaScript也通过Node.js在服务器端使用。雇主也在迅速采用JavaScript。最重要的是在初学者中JavaScript是最被接受的编程语言。


StackOverflow开发人员调查 (2019)

频率:每年。业界最大的技术Q&A平台。

方法:对173个国家的9万名编码员进行了调查。

StackOverflow开发人员调查.png

StackOverflow可以获得全球语言偏好, 地域选择偏差可能较大, StackOverflow 的调研还提到Python 是目前增长速度最快的语言。


Redmonk公司 (2019)

频率:每半年一次。业界知名分析公司

方法:基于GitHub存储库和StackOverflow语言标记中的原始代码行。

排名:

Redmonk公司 (2019).png

它将GitHub汇总信息与StackOverflow对每种语言的兴趣水平结合在一起,根据对开源社区的兴趣以及在使用该语言时解决问题的开发人员数量创建可靠的排名。然而,应该注意的是,由于GitHub仅代表开源项目,因此专有项目在其索引的维度上被忽略掉。


小结:

1.这些语言排名方法中的每一种都有其优点和缺点。例如TIOBE对在其他指数中占据突出地位的语言统计和呈现不足,例如直到最近,才对Go有较好的体现。


2.求职网站不能准确的体现语言应用,因为开发人员往往不是发布工作岗位的人,因此工作岗位描述可能有不准确性。但就业并不是唯一决定语言“流行”的因素。


3.成熟和具规模的公司的雇主和开发员对语言的选择可能是有冲突的。大多数开发人员在编写软件时都对能够帮助他们轻松完成工作的语言感兴趣,这些语言可以更快地提供结果,使软件更安全,更可靠。而雇主则通常更关注保护既有投资和变更语言的成本等。只要有可能,雇主就想着规避风险,会保持已使用的或采用被广泛运用的语言,而不是转向很时髦的新语言。


4.雇主也受时尚的影响。当前的 Python/JavaScript趋势就是一个很好的例子。开发人员的意见和感受确实影响了雇主,并提供了一个更好的指标,表明在未来几年中哪些语言可能会突出。这也反映在开源项目中,开发人员通常在自己的时间尝试流行的新语言和项目。因此,GitHub是一个重要的指标。Python 和 JavaScript 在创业领域很热门。许多初创公司使用 Pyton 的Django 、Flask 和 JavaScript的 Node.JS 作为后端框架。Python 和 JavaScript 易于学习,因此被认为是初学者学习的最佳编程语言。此外,它们也提供了巨大的市场机会, 这也反映在前面提到的Indeed的招人网站的数据上了。


另外,Java和PHP在企业界是较热门的。许多公司使用 Java(Spring) 和PHP(Codeigniter) 作为他们的 Web 后端框架。C/C++ 和 Go 是构建低延迟和可扩展系统的首选。R 和 MATLAB 在分析领域是热门。


综合以上数据和分析,我个人认为编程语言目前排名可能是:

1 Java

2 Python

3 JavaScript                      

4 C/C++

5 C#/PHP


2. 下一个语言是啥?

业界对语言的发展趋势曾有过不少研究,其中令人信服的有狄金森州立大学莫利纳·德克教授2011年的研究。她从一个历史的维度解剖了这个趋势,并得出了一个深刻的结论:每一种“超级明星”编程语言,会出现在一个“大事件”的背后,伴随着它的应用及大环境而产生。莫利纳·德克教授的研究提供以下核心例子供参考:

下一个语言是啥.png


自2011年后,我们知道云和AI技术逐渐走向成熟和普及,从众多的调研结果中普遍显示Python变得非常流行,是增长最快的语言(以下2019CodeScan语言趋势的调研),因为它非常的容易学,有跨平台易扩展等能力和有强大的开源社区支持,且在云,AI,大数据,机器人等领域应用广泛,如 Open Stack, NLP(Natural Language Processing) SDK等很多是用Python写的,要想加入初创公司,好像Python几乎是不可缺技能, Python 应该是目前“Big Thing”的首选. 另外, 值得注意的是Go 在云上的应用也日益呈现上升势头,因为Go对分布式系统及并发的支持而且运行通常非常的快。

分布式系统及并发的.png


本文作者吴昊

登录后可下载附件,请登录或者注册

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请发送邮件至:huaweicloud.bbs@huawei.com;如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
评论文章 //点赞 收藏 1
点赞
分享文章到微博
分享文章到朋友圈

上一篇:谈编程中最重要的技能

下一篇:软件行业角色和技能趋势:对软件人员能力提升的启示

评论 (0)


登录后可评论,请 登录注册

评论