目前主流的编程语言有哪些(现代编程语言哪家强)(1)

图片由 h heyerlein 发布在 Unsplash 上

如果我们把人类的现代文明看作一辆汽车,那么软件开发行业就像汽车的发动机,编程语言就像发动机的燃料。那么问题来了,你应该学哪种编程语言?

学习一门新的编程语言在时间、精力和脑力上的投入都非常巨大,但它可以提高你的软件开发技能,并给你的职业生涯带来提升,正如我在另一篇博客中所写的:

目前主流的编程语言有哪些(现代编程语言哪家强)(2)

博客网址:https://medium.com/@md.kamaruzzaman/5-reasons-to-learn-a-new-programming-language-in-2020-bfc9a4b9a763

通常,你应该选择一种能有助于你事业发展的编程语言。另外,你还可以学习一门受欢迎程度正在上升的语言。

我对主流编程语言非常尊重。但在这里,我列出现代编程语言,这些语言可以提高你的工作效率,使你成为一个更好的开发人员。此外,我还将涉及更广泛的领域:系统编程,应用程序开发,网络开发,科学计算。

目前主流的编程语言有哪些(现代编程语言哪家强)(3)

「现代编程语言」这个词是模棱两可的。许多人认为像 Python、JavaScript 这样的语言是现代编程语言。但同时,他们认为 Java 是一种古老的编程语言。事实上,它们都出现在同一时间:1995 年。

大多数主流的编程语言是在上个世纪发展起来的,主要是在 20 世纪 70 年代(例如 C)、20 世纪 80 年代(例如 C )、20 世纪 90 年代(例如 Java、Python、JavaScript)。这些语言不是为了利用现代软件开发生态系统而设计的。尽管其中的许多语言中有改进特性,比如并发性和自我调整,但是它们也提供了向后兼容性,并且不能丢弃旧的、过时的特性。

在这一点上,Python 做的很好,它在 Python 2 和 Python 3 之间做了一个明确的划分。这些语言通常提供 10 种方法来做同样的事情,而不关心开发人员用起来是否方便。根据 StackOverflow developer 的调查,大多数主流的旧编程语言都在「最可怕的语言」类别中占据了榜首:

目前主流的编程语言有哪些(现代编程语言哪家强)(4)

图片来源:Stackoverflow

我将以第一款 iPhone 发布的时候,也就是 2007 年 6 月 29 日作为新旧编程语言之间的界限时间点。在 iPhone 发布之后,一切都发生了变化。在这个列表中,我主要考虑 2007 年后的编程语言。

目前主流的编程语言有哪些(现代编程语言哪家强)(5)

首先,开发现代编程语言是为了充分利用现代计算机硬件(多核 CPU、GPU、TPU)、移动设备、大数据集、快速网络、容器和云。此外,大多数现代编程语言使用起来都更容易,主要体现在:

其次,列表中的许多编程语言都具有破坏性,将永远改变软件行业。其中一些已经成为主流编程语言,而另一些则等待取得突破。至少作为第二种编程语言来学习这些语言是明智的。

在之前的一篇博文「20 个 2020 年软件发展趋势预测」中,我预测了 2020 年许多现代编程语言的突破:

目前主流的编程语言有哪些(现代编程语言哪家强)(6)

文章网址:https://towardsdatascience.com/20-predictions-about-software-development-trends-in-2020-afb8b110d9a0

Rust

目前主流的编程语言有哪些(现代编程语言哪家强)(7)

图片来源:Thoughtram

系统编程语言是由 C、C 等主导的,尽管它们可以完全控制程序和硬件,但它们缺乏内存安全性。即使它们支持并发性,但是在比你保证并发安全性的情况下,使用 C/C 编写并发程序是很有挑战性的。其他流行的编程语言是可解释性的语言,如 Java、Python、Haskell,它们提供安全性,但需要很多的运行时间或虚拟机。由于运行时很大,像 Java 这样的语言不适合系统编程。

有很多人尝试过将 C/C 的特性和 Haskell,Java 的安全性结合起来,但目前看来,Rust 是第一个实现这一目的的产品级编程语言。

Graydon Hoare 最早将 Rust 作为一个副产品开发出来。他受到了研究性的编程语言 Cyclone 的启发。Rust 是开源的,Mozilla 与许多其他公司和社区一起进行语言开发。Rust 于 2015 年首次发布,很快就引起了社会各界的关注。在以前的文章中,我深入研究了 Rust,并论证了为什么在大数据域中使用 Rust 来代替 C 、Java 是一个更好的选择:

目前主流的编程语言有哪些(现代编程语言哪家强)(8)

文章网址:https://towardsdatascience.com/back-to-the-metal-top-3-programming-language-to-develop-big-data-frameworks-in-2019-69a44a36a842

主要特性:

受欢迎程度:

自 2015 年首次亮相以来,Rust 一直被开发者所喜爱,并在 StackOverflow 开发者调查中连续四年(2016、2017、2018、2019)被评为最受欢迎的语言:

目前主流的编程语言有哪些(现代编程语言哪家强)(9)

图片来源:Stackoverflow

根据 GitHub Octoverse 的说法,Rust 是仅次于 Dart 的增长第二快的语言:

目前主流的编程语言有哪些(现代编程语言哪家强)(10)

图片来源:Octoverse

流行编程语言网站 PyPl 也将 Rust 排在第 18 位,并呈上升趋势:

目前主流的编程语言有哪些(现代编程语言哪家强)(11)

图片来源:PyPl

对比它提供的功能集,难怪像微软、亚马逊、谷歌这样的科技巨头最终宣布将 Rust 作为一种长期的系统编程语言。

在过去的 5 年里,Rust 的吸引力每年都在增加:

目前主流的编程语言有哪些(现代编程语言哪家强)(12)

图片来源:Google Trends

主要用在:

主要竞争语言:

Go

目前主流的编程语言有哪些(现代编程语言哪家强)(13)

图片来源:Wikimedia

谷歌是最大的网络公司之一。本世纪初,Google 面临着两个扩展问题:开发扩展和应用程序扩展。开发扩展意味着他们不能通过增加开发人员来增加更多的功能,应用程序扩展意味着他们无法轻松开发一个可以扩展到「Google」级机器集群的应用程序。2007 年左右,谷歌开始创建一种新的「实用」编程语言,这种语言可以解决这两个问题。在 Rob Pike(UTF-8)和 Ken Thompson(UNIX 操作系统)中,两个世界上最有才华的软件工程师创建了一种新的语言。

2012 年,谷歌发布了 Go 编程语言的第一个官方版本。Go 是一种系统编程语言,但不同于 Rust。它也有一个运行时和垃圾收集器(几兆字节),但与 Java 或 Python 不同的是,这个运行时包含了生成的代码。最后,Go 生成一个本机二进制代码,可以在没有附加依赖项或运行时的情况下在计算机中运行。

主要特性:

受欢迎程度:

自 Go 首次问世以来,软件开发社区已经欣然接受了它。在 2009 年(首次亮相)和 2018 年,Go 通过 TIOBE 指数进入编程语言名人堂排行榜。难怪 Go 的成功为 Rust 这样的新一代编程语言铺平了道路。

Go 已经是一种主流编程语言。最近,Go 团队宣布了「Go 2」的计划,目的只是让语言更加稳固。

在几乎所有流行编程语言比较网站,Go 的排名很高,超过了许多现有的语言。以下是 2019 年 12 月的 TIOBE 指数评级,Go 排名第 15 位:

图片来源:TIOBE

根据 Stackoverflow 的调查,Go 是十大最受欢迎的编程语言之一:

目前主流的编程语言有哪些(现代编程语言哪家强)(14)

图片来源:Stackoverflow

根据 GitHub Octoverse 的统计,Go 也是增长最快的十大语言之一:

目前主流的编程语言有哪些(现代编程语言哪家强)(15)

图片来源:Octoverse

谷歌还显示,过去五年里,Go 的吸引力不断增强:

目前主流的编程语言有哪些(现代编程语言哪家强)(16)

图片来源:Google Trends

主要用例:

主要竞争语言:

Kotlin

目前主流的编程语言有哪些(现代编程语言哪家强)(17)

Java 是企业软件开发中无可争议的王者。近年来,Java 已经受到了很多批评:冗长,需要大量的样板编码,复杂,容易发生意外。然而,关于 Java 虚拟机(JVM)的争论很少。JVM 是软件工程领域的杰作,它提供了一个经过时间考验的运行时。在上一篇文章中,我详细讨论了 JVM 的优点:

目前主流的编程语言有哪些(现代编程语言哪家强)(18)

文章网址:https://towardsdatascience.com/programming-language-that-rules-the-data-intensive-big-data-fast-data-frameworks-6cd7d5f754b0

多年来,像 Scala 这样的 JVM 语言试图回答 Java 的缺点,并希望成为更好的 Java,但是失败了。最后,Kotlin 出现了,寻找更好 Java 的旅程似乎已经结束。Jet Brains(流行 IDE IntelliJ 背后的公司)开发了 Kotlin,它运行在 JVM 上,解决了 Java 的缺点,并提供了许多现代特性。与 Scala 不同,Kotlin 比 Java 简单得多,并在 JVM 中提供 Go 或 Python 式的开发效率。

谷歌宣布 Kotlin 是开发 Android 的一流语言,并提高了 Kotlin 在社区的接受度。同样流行的 Java 企业框架 Spring 也从 2017 年开始在 Spring 生态系统中支持 Kotlin。

主要特性:

受欢迎程度:

自 2015 年首次发布以来,Kotlin 的受欢迎程度正在飙升。根据 Stack Overflow,Kotlin 是 2019 年第四受欢迎的编程语言:

目前主流的编程语言有哪些(现代编程语言哪家强)(19)

图片来源:Stackoverflow

Kotlin 也是增长最快的编程语言之一,排名第四:

目前主流的编程语言有哪些(现代编程语言哪家强)(20)

图片来源:Github Octoverse

热门编程语言排名网站 PyPl 将 Kotlin 列为第 12 位最受欢迎的编程语言,并有很高的上升趋势:

目前主流的编程语言有哪些(现代编程语言哪家强)(21)

图片来源:Pypl

自从谷歌宣布 Kotlin 是开发 Android 应用程序的一流语言以来,Kotlin 的受欢迎程度快速上升,如下图所示:

目前主流的编程语言有哪些(现代编程语言哪家强)(22)

图片来源:Google Trends

主要用例:

主要竞争语言:

TypeScript

目前主流的编程语言有哪些(现代编程语言哪家强)(23)

JavaScript 是一种优秀的语言,但 2015 年以前的 JavaScript 有许多缺点。甚至著名的软件工程师 Douglas Crockford 也写过一本书《JavaScript: The Good Parts》,并暗示 JavaScript 有很多不好的部分。由于没有模块化和「回调地狱」,开发人员不喜欢维护特别大的 JavaScript 项目。

Google 甚至开发了一个平台,将 Java 代码转换为 JavaScript 代码(GWT)。许多公司或个人试图开发更好的 JavaScript,例如 CoffeeScript、Flow、ClojureScript,但微软的 TypeScript 无疑是其中最突出的。由 Delphi 的创建者 Anders Hejlsberg 领导的一组微软工程师创建了 TypeScript,把它作为 JavaScript 的静态类型的模块化超集。

在编译期间,TypeScript 被编译为 JavaScript。2014 年首次发布以来,TypeScript 迅速引起社会关注。当时谷歌还计划开发一个静态类型的 JavaScript 超集。谷歌对 TypeScript 印象深刻,他们没有开发新的语言,而是与微软合作改进 TypeScript。

Google 使用 TypeScript 作为其 SPA 框架 Angular2 的主要编程语言。另外,流行的 SPA 框架 React 提供了对 TypeScript 的支持。另一个流行的 JavaScript 框架 Vue.js 声明他们将使用 TypeScript 开发新的 Vue.js 3:

图片来源:Vue.js Roadmap

此外,node.js 的创建者 Ryan Dahl 决定使用 TypeScript 开发一个安全的 node.js 替代品 Deno。

主要特性:

受欢迎程度:

开发人员喜欢 TypeScript 优雅的语言设计。在 Stackoverflow 开发者调查中,它在最受欢迎的语言类别中与 Python 并列第二:

目前主流的编程语言有哪些(现代编程语言哪家强)(24)

图片来源:Stackoverflow

TypeScript 是增长最快的 Web 编程语言之一,在 GitHub Octoverse 上排名第五:

目前主流的编程语言有哪些(现代编程语言哪家强)(25)

图片来源:Octoverse

根据 GitHub 贡献,TypeScript 也进入了前 10 名(排名第 7):

目前主流的编程语言有哪些(现代编程语言哪家强)(26)

图片来源:Octoverse

TypeScript 在过去的一年中吸引了越来越多的眼球,这反映在 Google 趋势上:

目前主流的编程语言有哪些(现代编程语言哪家强)(27)

图片来源:Google Trends

主要用例:

主要竞争语言:

Swift

目前主流的编程语言有哪些(现代编程语言哪家强)(28)

Steve Jobs 拒绝在 iOS 中支持 Java(和 JVM),因为他认为 Java 将不再是一种主要的编程语言。我们现在知道 Steve Jobs 对 Java 的评价是错误的,但是 iOS 仍然不支持 Java。相反,苹果选择 Objective-C 作为 iOS 中的主流编程语言。Objective-C 是一门很难掌握的语言。而且,它具备现代编程语言所要求的高开发效率。

在苹果,Chris Lattner 和其他人开发了 Swift ,它是一种多范式、通用、可编译的编程语言,为 Objective-C 提供了一种替代方案。Swift 的第一个稳定版本于 2014 年发布。Swift 还支持 LLVM 编译器工具链(也由 Chris Lattner 开发)。Swift 与 Objective-C 代码库具有良好的互操作性,并且已经成为 iOS 应用程序开发的主要编程语言。

主要特性:

受欢迎程度:

和许多其他现代语言一样,开发人员也非常喜欢 Swift。根据 StackOverflow 的调查,Swift 在最受欢迎的编程语言中排名第六:

目前主流的编程语言有哪些(现代编程语言哪家强)(29)

在 TIOBE 的编程语言排行榜中,Swift 在 2019 年已升至第 10 位。考虑到这门语言才 5 岁,这是一个相当了不起的成就:

图片来源:TIOBE Index

Google trends 还显示,Swift 的受欢迎程度先急剧上升,随后在最后几次饱和中趋势略有下降:

目前主流的编程语言有哪些(现代编程语言哪家强)(30)

图片来源:Google Trends

主要用例:

主要竞争语言:

Dart

目前主流的编程语言有哪些(现代编程语言哪家强)(31)

Dart 也是 Google 发布的编程语言。Google 是网络和安卓领域的关键玩家,在网络和应用程序开发领域开发自己的编程语言也就不足为奇了。

Dart 是一种支持强类型和面向对象编程的通用编程语言。Dart 也可以被转换成 JavaScript,并且可以运行在 JavaScript 运行着的任何地方(例如 Web、移动、服务器)。

主要特性:

受欢迎程度:

根据 Github Octoverse,Dart 是 2019 年增长最快的编程语言,去年它的受欢迎程度翻了五倍:

目前主流的编程语言有哪些(现代编程语言哪家强)(32)

根据 TIOBE,Dart 居于第 23 位,仅仅 4 年时间,它已经超越了其它很多编程语言:

图片来源:TIOBE index

它也是 StackOverflow 开发者调查中排名第 12 位的最受欢迎的编程语言之一:

目前主流的编程语言有哪些(现代编程语言哪家强)(33)

图片来源:StackOverflow

除了 Flutter,Dart 的受欢迎程度在过去两年也经历了巨大的改善,这一点在 Google 中很明显:

目前主流的编程语言有哪些(现代编程语言哪家强)(34)

图片来源:Google Trends

主要用例:

主要竞争语言:

Julia

目前主流的编程语言有哪些(现代编程语言哪家强)(35)

前面列出的编程语言都是由大公司开发的,但 Julia 不是。在技术计算中,通常使用 Python、Matlab 等动态语言。这些语言提供易于使用的语法,但不适合大规模的技术计算,他们使用 C/C 库来处理 CPU 密集型任务。由于代码是在两种语言之间转换的,因此总会有一些性能损失。

为了解决这个问题,麻省理工学院的一组研究人员计划从头开始创建一种新的语言,它利用了现代硬件的优势,并结合了其他语言的最佳部分。他们在麻省理工学院创新实验室完成这项工作,还发表了以下宣言:

目前主流的编程语言有哪些(现代编程语言哪家强)(36)

资料来源:Julia Presentation

Julia 是一种动态的高级编程语言,为并发、并行和分布式计算提供一流的支持。Julia 的第一个稳定版本于 2018 年发布,很快就得到了社区和业界的青睐。Julia 可以应用于科学计算、人工智能等许多领域,最终解决「两种语言」的问题。

特性:

受欢迎程度:

在许多领域,Julia 主要与 Python 竞争。由于 Python 是最流行的编程语言之一,Julia 成为主流还需要几年时间。

Julia 相对年轻(只有一岁),但在 TIOBE index 中仍排在第 43 位:

图片来源:TIOBE

Google Trends 也显示出过去的时间里,程序员对 Julia 的稳定兴趣。

目前主流的编程语言有哪些(现代编程语言哪家强)(37)

但考虑到 Julia 背后的功能集和公司数量,如 NSF、DARPA、NASA、Intel,Julia 何时取得突破只是个时间问题。

主要用例:

主要竞争语言:

via:https://towardsdatascience.com/top-7-modern-programming-language-to-learn-now-156863bd1eec

雷锋网雷锋网雷锋网

,