除了 Python 之外,从 2018 年到 2019 年所有语言的流行度都在下降。1. PythonPython 是过去五年来人气不断上升的唯一语言。这是一门通用语言,如果你希望在 2020 年只学习一门编程语言,并希望涵盖更广泛的软件开发领域,不妨考虑 Python。2. JavaJava 的市场占有率一直在不断上升,但在 2019 年有所下降,原因是背靠 Google 的 Kotlin 在 Android 开发领域获得了极大的普及。毫无疑问 Java 是一个不错的选择,但它现在属于 Oracle 公司,由于公司的商业利益冲突,谷歌正在推广 Kotlin。事实上,由于使用 Java 的庞大开发群体、框架和遗留应用程序,大量公司仍在使用 Java 并将继续使用 Java。3. C/C++C 和 C++ 仍然保持着大约 20% 的市场占有率,并且由于其固有的功能和遗留系统,它将会继续存在。4. JavaScriptJavaScript 的受欢迎程度可归因于诸如 Node.js 等流行的 JavaScript 库和框架的增长。JavaScript 是用于构建动态网站的语言,它将成为未来几年 Web 开发的首选语言。而且,如果我们想要进行 Web 开发,绝对无法绕开 JavaScript。5. R 语言R 语言近年来越来越受欢迎,原因在于数据分析需求的增长和普及。R 语言主要是数据科学家在使用,与 Python 这种通用语言相比,它拥有贡献了大量数据科学库和模块的活跃开发者。不过如果只能选一个的话,相信更多的数据科学家会倾向于 Python。6. Ruby与 PHP 一样,在 Web 开发的后端构建方面,Ruby 也面临来自 JavaScript 甚至 Python 的激烈竞争。因此,对于 Web 开发而言,JavaScript 和 Python 会是比 Ruby 更好的选择(Python 的服务端框架 Flask 和 Django),而且更加灵活。7. PHP2019 年,PHP 流行度急剧下降,这可以追溯到服务器端对 JavaScript 和 Python 的接受程度。如果有人想要进行服务器端 Web 开发,PHP 仍然是一个很好的选择 —— 有大量流行的框架,如 CakePHP,Codeigniter 等,否则选择通用编程语言会更好。8. Objective-C在 Apple 迁移到 Swift 语言之前,Objective-C 是开发 Apple 软件(如 macOS,iOS 等平台)的主要语言。因此,这种转变反映在两种语言的流行中,即 Objective-C 的受欢迎程度下降,而 Swift 的普及率正在上升。所以,如果有人希望成为 Apple 产品的开发者,Swift 理所当然应该是首选语言。
第二组观察结果
1. Swift
Swift 取代了 Objective-C 作为 Apple 相关软件和应用程序开发的主要语言。由于 Apple 的支持推广,因此自成立以来 Objective-C 的受欢迎程度越来越高,Apple 也将继续使用它。如果有人正在寻找特定于 Apple 的开发平台,那么 Swift 将成为一种必须知道的编程语言。不过 Swift 主要是面向特定供应商和产品的语言,在 Apple 生态系统之外的使用率非常低。2. GoGoogle 不断地在维护、使用和推广 Go 语言。而它最初的开发动机是解决对一些流行语言的不足,同时将最好语言的特性集于一身。自 2017 年以来,Go 的受欢迎程度越来越高,并且在 Google 的支持下,它在未来几年内都将会继续保持高速发展。Google 也将 Go 作为新项目的主要语言并用 Go 取代其他语言,这种趋势在未来几年会继续保持,因此如果想学习一门新的编程语言,Go 值得拥有。3. KotlinKotlin 最初作为用于 Android 开发的 Java 替代方案而迅速“上位”。凭借着 Android 的增长、Google 的支持以及其简洁的语法,它成为了 Android 开发者的一个可选方案,更是学习 Android 开发的不错选择。Kotlin 将成为 Android 开发的“最优”方案。4. ScalaScala 试图取代 Java,但开发者似乎不太认可。它没有来自任何大公司的大力支持,另外,由于 Scala 是一门函数式编程语言,以及对 JVM 的依赖,使得它并没有得到太多的普及,虽然会有稳定的增长,但速度很慢,而且肯定不是适合初学者学习的语言。5. JuliaJulia 旨在将 C 的速度和 Python 的简便集成在一起,但奇怪的是,在 Stackoverflow 调查中并没有体现 Julia 的受欢迎程度,但它在数据科学领域颇受欢迎,并且从长远来看它也被视为 R 和 Python 的挑战者。当然,Julia 会继续增长,但对于工作和成长来说,Python 或 R 更好。6. C#C# 是用于 .NET 框架的编程语言,由微软开发。它的受欢迎程度在过去几年中基本保持不变,并将继续保持类似的趋势。这是特定于供应商的语言,因此如果需要在微软提供的开发环境中工作,可以选择此语言。最近,微软已开源 .NET,因此它会出现一些上升趋势,但它毕竟是特定于供应商的,因此不会受到太大影响。7. RustRust,Clojure 等是具有用户基础但不那么流行的语言,所以人气方面不会有太大的上升。
一图胜千言
要了解头部编程语言增长的清晰趋势和现状,可通过各种图表来了解它。下图描绘了一个非常清晰的现状,即在旧的语言栈中,JavaScript 远远领先于其他的语言,并且将继续在 Web 开发中占据一席之地。C 和 C++ 共同与 Java 竞争,并且非常接近后者的地位。Python 的受欢迎程度也越来越高,而且在过去的五年里,它是唯一一个人气不断上升的语言。新语言越来越流行,其中大多数语言都受到跨国公司如微软、Google 和 Apple 等 IT 巨头的支持。
薪酬取决于产品的地理区域和需求,基于编程语言的薪资比较只是预测或估计薪资趋势的工具。我们根据编程语言的流行调查对薪资进行了汇总,即 2018 年的 Dice 薪资调查和 2018 年和 2019 年的 Stackoverflow 薪资调查。从上表可以看出,Go 开发是市场上薪酬非常高的工作,在 2019 年的 Stackoverflow 调查和 2018 年 Dice 薪资调查中,它都在高薪工作中排名第一。原因其实很简单,因为 Go 是 Google 支持的语言,主要用于 Google 内部,另外 Google 希望推广这种语言所以自然会用高薪来吸引开发者。这里要提一个经济术语——价格弹性,企业对岗位的需求具有弹性,这就导致岗位的薪酬不稳定。因此很明显,全球平均工资不是选择语言的合理因素。假如存在一门接近衰亡的编程语言,但应用它的遗留系统很少,因此为了维护这些产品,公司往往提供非常高的薪酬,不过这些职位总是十分稀有。另一方面,由于主流语言提供了大量的工作岗位,平均工资自然就会下降。作为结束语,可以看到预测编程语言的趋势十分简单,但只选择一门语言来学习是一个非常艰难的抉择,这完全取决于个人选择和他们未来的计划。例如,如果你想从事 Web 开发工作,那么你就不能忽视 Javascript;如果你想从事 Apple 产品的开发工作,绝对不能无视 Swift;如果你青睐于系统的底层开发,那么 C 和 C++ 会是你的好朋友。Python 则会让你在很多领域跑得更快,不过目前主要用于数据科学。所以,每种语言都会带您踏上不同的旅程。选择目的地,你需要做的就是使用通往终点的语言。