赢得一个自定义的新Relic弹球机!只要让其他数据迷们注册FutureStack就行了。 现在注册

编程语言是一个迷人的话题:有成千上万的语言存在于今天,并且不断有新的东西出现。尽管广泛使用的主流语言只占总数的很小一部分,但它们仍然为开发人员提供了大量的应用程序构建选项。

每年,我们每年分析来自许多来源的数据,以了解今天的编程语言景观:哪些语言是今天使用的工程师?他们会更喜欢如果有选择的话?雇主在招聘开发人员时最可能提出哪些要求?

尽管这种做法的一些结果每年都保持相当一致——见证了Java多年来的统治最常请求的语言在求职公告栏上,其他趋势更好地反映了现代编程语言的多样性和动态性。

排名后面:手段和方法

今年,我们评估了各种知名的第三方资源,以及多种方法和排名标准,来评估当今顶级语言的相对流行程度。我们还咨询了New Relic团队的专家,以及受人尊敬的独立人士,为今年的排名提供一些见解——思考什么发生了改变,什么保持了相对一致,以及这一切对今天的专业开发者意味着什么。

当我们挖掘这些趋势时,保持重要的一点:相对术语中语言的普及(即与其他语言的普及的变化相比)并没有告诉你它在绝对人气和增长方面是如何做的。

“并不是说一种语言‘赢了’,其他语言就一定‘输了’,”他说本·埃文斯,主要工程师和Java VM Technologies架构师在新遗物。“软件市场正在迅速增长。这意味着可用开发人员的池不是静态但急剧增加。“

编程语言流行度:3个顶级趋势

就总体趋势而言,这里有几点值得注意:

1.开发人员在很大程度上满足他们目前的语言选择。今年排行榜前列的稳定再次表明,使用最广泛的语言激发了人们的信心;它们的有效性和用例已经得到了很好的确立,很少有企业愿意为了改变而改变。布达佩斯的Web和移动应用程序开发者最近对开发者和他们的经理进行了调查编码SAN,验证了这一观点:37%的接受调查的开发人员表示,他们不会在未来12个月内采用新的编程语言。去年,相比之下,只有29%的人表示他们会用已经在其开发工具集中的语言进行了粘合。

2.最流行的语言迎合关键的“利基”受众。没有人会否认今天使用的三种最流行的语言——JavaJavaScript, 和C- 每个都能够满足巨大的开发人员需求。然而,这些语言的每种语言也分享了主导特定和高度战略性的目标受众的能力。

老实说,最流行的编程语言列表并不令人感到意外。他们在行业中似乎都有自己的利基市场。预兆.“例如,Java锁定了Android原生应用环境。”

Paul Jansen,Software Chinese Company的创始人兼首席执行官TIOBE软件他对JavaScript在Web应用程序开发中的作用进行了同样的观察,很难想象一个团队在某些方面不使用它。“每个人都会在某个地方使用一些JavaScript。大多数情况下,这只涉及到几行代码,所以很多程序员都在使用它。”

最后,虽然C可能比目前使用它的大多数开发人员都要老,但它是另一种在炙手可热的行业利基上建立起来的流行语言的例子。“C语言似乎是商业嵌入式软件中使用最多的语言,”Jansen说,“使用软件的小型设备的数量只会不断增加。”

3.成功的新贵专注于整合,而不是颠覆。最成功的新兴语言之一是kotlin.,这是共同的谷歌非常适合Android开发。虽然这两个优势肯定不会损害Kotlin的前景,但语言的长期前景可能更多地取决于第三个卖点:它与现有Java环境的兼容性

“Java运行时环境变得比Java语言更重要,”说:“克里斯•汉森, New Relic产品管理总监。“开发人员可以选择用Java编写代码,Scala.,科特林语,或其他一些语言。”这些Android和Java的连接将有助于在未来的许多年里巩固Kotlin在最流行编程语言中的地位。

在行业排名里面

有大量的源代码对编程语言的流行程度进行排名,其中许多都相当有声誉。但一个更好的方法是从最佳名单中选择四个——每个都有自己的方法(可能也有自己的偏见)。我们的选择包括以开发者为中心的行业分析公司此次,它在审查中基于其编辑GitHub代码库和堆栈溢出讨论;堆栈溢出和developer-analyst公司SlashData,这两家公司都进行自己的开发者调查;以及TIOBE编程社区索引,该索引每月更新,并根据搜索引擎查询确定的全球熟练工程师、课程和第三方供应商的数量进行更新。

以下是对每个来源的十大语言列表的比较:

此次 堆栈溢出 SlashData TIOBE索引7/19
JavaScript JavaScript JavaScript Java
Java HTML / CSS. Python C
Python SQL. Java Python
PHP. Python c# c++
领带:c++ / c# Java C / c++ c#
#行宽# Bash / shell / powershell PHP. Visual Basic。净
CSS. c# 视觉工具 JavaScript
红宝石 PHP. 斯威夫特 PHP.
C 类型签字 红宝石 SQL.
类型签字 c++ kotlin. Objective - C

也许最明显的共同点是JavaScript和Java如何一直占据这些列表的前三名——这一趋势近年来并没有太大的改变。

随着流行node.js.反应本地在浏览器应用程序中,JavaScript无处不在。”“学校里会教这个,网上有很多资源,还有很多图书馆。它是唯一一种可以在典型软件栈的所有层次上轻松使用的语言。”

展望未来

然而,有趣的是,JavaScript的非常受欢迎程度实际上是提高了相关语言。According to Schaff, “TypeScript is slowly taking over from JavaScript,” although it clearly isn’t panic time yet: TypeScript just cracked the RedMonk list for the first time this year, and it recently regained its spot on the Stack Overflow list after dropping off in 2018.

相似地,Python继续挑战Java的主导地位.在我们的2018年分析,我们提到“Python似乎有一个时刻”——从Python在所有榜单上的前四名来看,这个时刻将持续到2019年。

为什么Python的个人资料继续成长?“Python的语法易于理解,设置得很快,它与Java这样的任何其他高级语言一样强大,”Schaff。“鉴于Python和Java之间的选择,我认为Python将赢得胜利。”

TIOBE的分析师对此表示赞同他们2019年6月的指数“如果Python可以保持这种步伐,它可能会在3到4年的时间内替换C和Java,从而成为世界上最受欢迎的编程语言。”原因是,分析师表示,软件工程是一个快速增长的领域,蟒蛇吸引了很多新人。

其他力量也在起作用。今年6月,Mozilla的火狐程序员Gregory Szorc介绍了火狐PyOxidizer,用于生成单文件Python可执行文件的实用程序。这可以帮助解决Python的一个弱点:无法打包和分发一个自包含的Python程序。

毫不奇怪,像Ben Evans这样的Java专家以更挑剔的眼光看待这些发展。“Python是一种非常简单的教学语言,”他说,“所以我对越来越多的大学使用它作为教学语言并不感到惊讶。Python让简单的事情变得容易,在现代计算领域中,开发人员想要做的很多事情都相对容易。

“另一方面,”埃文斯反击,“Python在架构复杂性或原始性能方面不符号,并且它相当令人信服地令人信服地令人信服地”在生态系统和工具支持等领域的杰瓦的优势。

战略性地思考你的职业生涯

像C和Java这样的顶级语言可能不会很快发展,但有证据表明,从长远来看,只知道这些语言的软件工程师可能会对他们的职业生涯不利。

考虑下表,它比较了工作地点的结果确实的现在雇主最需要的语言列表,职业市场Hired.com的看看2018年哪一种编程语言技能吸引了最多的面试请求(在前10名中,对知道的开发人员的面试请求有9个而对于那些懂HTML的人来说,则是6.4),以及Stack Overflow关于哪种语言技能与薪资最高的开发人员工作相关的判断:

(表id = 32 /)

第一列看起来很像“最常用”列表,它指出了该领域的基本稳定性:最大量的职位空缺是为那些掌握最广泛使用的语言的开发人员准备的,这是有道理的。但将这两份清单与其他两份进行比较,可以让我们看到影响开发人员未来工作前景的供需力量。这些面向未来的列表包括了本系列在前几年作为后起之秀所提到的语言。Scala和Kotlin一样,运行在JVM上。Clojure、Erlang、f#和Elixir都是函数式编程语言2017年,我们将这些语言确定为解决并发和国家管理等当前问题

编程语言是一个复杂的选择

当然,作为软件工程师不仅仅是你可以赚到多少钱。对于许多开发人员来说,它是关于他们享受的工作以及效率如何== WCAN - 并且可以与您使用的语言有很多关系。Maybe that’s why Stack Overflow also asks ask developers which languages they love (“proportionally, more developers want to continue working with these than other languages”) and which ones they dread (“a high percentage of developers who are currently using these technologies express no interest in continuing to do so”). Here are the two lists side-by-side:

(表id = 33 /)

从所有这些中得出明确的职业结论是很困难的。一方面,了解最常见的、已建立的语言——java、JavaScript、C等等——显然仍然是有益的。但是熟悉一些越来越流行的新语言可能也是一个好主意。

但是请记住,尽管在最流行的编程语言图表的顶端出现了僵局,但这个领域并不是静态的,并不是每个软件工程师都有相同的需求。Evans说:“并不是所有的语言都能被开发人员在职业生涯的每个阶段使用。“对于初学者来说,Scala是一门非常糟糕的语言,而Python和JavaScript则是显而易见的选择。”另一方面,他补充道,“即使是有经验的程序员也可能在他们的职业生涯中继续使用Python和JavaScript来完成一些任务。”