概述:今年,Java仍然是雇主们最需求的编程语言。和去年一样,JavaScript继续统治着程序员最常用的语言列表。但是,随着流行的框架和物联网(IoT)这一类技术趋势的发展,某些专业语言的知名度得到了很大提高,而所谓的“函数式语言”也吸引了越来越多人的兴趣。
科技不断进步,随着时间的推移,各种编程语言受欢迎程度也在不断的发生着改变。这就是为什么人们会对讨论这一类盘点编程语言受欢迎程度话题乐此不彼,通过盘点整理,人们会留意到新的发展趋势,可以发现从工作列表到开发人员论坛活动等各种度量标准和资源。
今年,Java仍然是雇主们最需求的编程语言。和去年一样,JavaScript继续统治着程序员最常用的语言列表。但是,随着流行的框架和物联网(IoT)这一类技术趋势的发展,某些专业语言的知名度得到了很大提高,而所谓的“函数式语言”也吸引了越来越多人的兴趣。
微服务倾斜的背景
这些趋势背后的另一个驱动力是微服务体系结构的不断采用。“在八年前,流行的是整体项目。”New Relic APM公司的产品经理Neha Duggal如此谈到。“现在人们转向微服务,将应用程序的概念分解成可管理的部分。”这激发了人们对许多不同编程语言的兴趣,包括在Java虚拟机(JVM)上运行的Scala、Kotlin和Apache Groovy等新语言。Neha说,微服务通常使用异步通信,而新语言通常比Java更善于处理这种通信。随着可让你使用任何基于jvm语言的Eclipse Vert等框架越来越受欢迎,这一趋势将进一步加强。
雇主最需要的是哪些语言?
为了考察这一点,让我们来仔细看看雇主目前正在网站上寻找的编程语言技能。我们统计了从2016年7月到2017年6月求职网站Indeed上关于软件开发岗位上最常出现的语言技能,以及2017年6月Dice和CareerBuilder求职网站上IEEE Spectrum发布的语言需求列表,结果如下所示:
2017年最需要的语言
Java在这两张表上都排在首位,“年复一年,Java仍然是最受欢迎的编程语言”Indeed公司高级副总裁Doug Gray说。“这并不奇怪,因为Java非常稳定,而且伸缩自如,这对于大公司来说尤其重要。”
事实上两张列表非常相似,只有一些小的出入——.NET, SQL, Node.js, Swift和一些C语言的变体。但即使是这些微小的差异,也能够反映出由于定位和方法的区别,结果会有所不同。Node.js没有出现在IEEE列表里中,可能是因为JavaScript运行框架包含在JavaScript中;SQL位于Indeed列表的第6位,而在IEEE列表上它处于第16位,这大概是因为在IEEE中它被分为了Web和Mobile两类。(IEEE的排名让你可以通过各种过滤器来排序)。此外,有些人可能会说,JavaScript与其说是编程语言,不如说是脚本语言。
同样值得注意的是,2017年的榜单中包括了去年十大雇主要求的语言中的8种,这表明编程工作需求相对稳定。关于Node.js受欢迎程度的提升的原因,这也可以解释为什么JavaScript的受欢迎度从去年的第四名跃升到目前的第二名,那就是JavaScript运行框架在去年开始被广泛应用于包括物联网在内的多个领域,它也成为了今年Stack Overflow开发者调查所使用的最常用的框架。同样的,Indeed列表中的.NET跃居到了第三的位置,那是因为它是从C和C++中分割出来的单独条目,而在去年的榜单上C#、C++和C都是前10名。
虽然看起来前10名语言的地位非常稳固,但这并不意味着就不会产生一些新的变化了。“随着物联网和机器学习的融合,R和Python正在兴起。”开发社区提供商DZone.com的市场总监Kellet Atkinson说。“‘大数据’是我们求职板报上出现频率最高的搜索词,而Python则是组成其最热门的五种语言之一。”在IEEE的排名中,Python语言的发展速度最快,而R语言的发展速度排行第8。
程序员最常用哪些语言?
为了了解开发人员在使用方面最感兴趣的语言,我们来看看RedMonk的编程语言排名,它的数据结合了GitHub的代码提取和Stack Overflow的讨论。此外,Stack Overflow对开发人员实际使用的语言进行了自己的开发调查:
2017年最常用的语言
这列表是否似曾相识?开发人员所使用的语言与雇主正在所寻找的相匹配,这是有一定道理的。(有一个例外,TypeScript出现在了Stack Overflow的列表中,由于它被编译为JavaScript,所以它被包含在其它排名第一的JavaScript中)
程序员最喜欢哪些语言?
也许,更有趣的是开发人员真正喜欢的语言。根据New Relic的首席软件工程师Todd West的说法,工程师们倾向于优先学习他们首先学习的语言,以及那些容易使用和提供尖端创新和快速性能的语言。Stack Overflow发不了对最受喜爱(most-loved),最想学习(most-wanted)和最令人害怕(most-dreaded)语言的统计结果:
2017年最喜欢的语言
很显然,开发人员不仅经常使用JavaScript / TypeScript、Python和C#,而且实际上也喜欢它们。至于Rust,也许开发人员喜欢系统编程语言的速度,预防segfault的能力以及能保证线程安全。(对于为什么1980年的Smalltalk仍然如此受人喜爱,我们没有什么可说的。)
哪些语言处于上升期?
作为coding bootcamp集团的首席执行官,Roshan Choxi很关注开发者在论坛上谈论的内容,比如黑客新闻和Reddit的r/编程以及初学者们感兴趣的内容。他说,“过去一年的新趋势是函数式编程的影响力越来越大。”他指的是Haskell、Erlang、Elixir、Elm和Clojure等语言。(其中一些选择出现在上面的列表中。)
“这似乎是开发人员今天面临的并发性、状态管理和可靠性等诸多常见问题的一个答案,JavaScript可能与此有关。”Roshan解释道。“虽然它并不是一种功能语言,但它确实强调了功能的第一性,并且有一些流行的项目支持将函数式编程特性引入到JavaScript代码中,Redux介绍了消息传递的概念,TypeScript允许您插入静态类型,这两者在函数语言中都很常见。”
多语言编程仍然是赢家
我们去年发现的另一个趋势依旧在延续:使用超过一种的语言进行协同合作。多语言程序员和/或组织为了不同的目的利用不同的语言。“我们看到越来越多地组织在他们的生态系统中使用不止一种语言。”New Relic的Neha Duggal说。“你可能会有编写微服务的不同团队,每个团队都可以选择一种他们愿意使用的语言。”
DZone的Kellet Atkinson也注意到了同样的事情:“随着向DevOps的推进,‘全栈开发人员’的想法已经有了很大的发展,他们知道多种语言。”DZone几个月前推出了一个工作委员会,他补充说,“很多工作都要求有全面的开发人员,而且我们的很多人都倾向于考虑自己成为全栈的开发人员。”
变化意味着什么?
乍一看,在过去的一年里,编程语言的世界似乎没有什么变化。但是,不要被坚挺在榜单前面的主流语言所迷惑,事实上,更新的语言和不断变化的趋势正在显著地影响程序员个体和软件开发团队的选择。
因此,尽管熟练使用Java、JavaScript、.NET、Python、各种C、Ruby、PHP、HTML和CSS仍然是安全的选择,有远见的开发人员可能还希望熟悉Haskell、Erlang、Elixir、Elm和Clojure等新的竞争者。展望未来,了解不止一种语言似乎会变得越来越有价值,因为越来越多的雇主会寻找那些在全堆栈中轻松工作的开发人员。
深圳 · 龙岗 · 大运软件小镇22栋201
电话:400 182 8580
邮箱:szhulian@qq.com