博客网址:https://medium.com/@md.kamaruzzaman/5-reasons-to-learn-a-new-programming-language-in-2020-bfc9a4b9a763
通常,你应该选择一种能有助于你事业发展的编程语言。另外,你还可以学习一门受欢迎程度正在上升的语言。
我对主流编程语言非常尊重。但在这里,我列出现代编程语言,这些语言可以提高你的工作效率,使你成为一个更好的开发人员。此外,我还将涉及更广泛的领域:系统编程,应用程序开发,网络开发,科学计算。
图片来源:Stackoverflow
我将以第一款 iPhone 发布的时候,也就是 2007 年 6 月 29 日作为新旧编程语言之间的界限时间点。在 iPhone 发布之后,一切都发生了变化。在这个列表中,我主要考虑 2007 年后的编程语言。
文章网址:https://towardsdatascience.com/20-predictions-about-software-development-trends-in-2020-afb8b110d9a0
Rust
文章网址:https://towardsdatascience.com/back-to-the-metal-top-3-programming-language-to-develop-big-data-frameworks-in-2019-69a44a36a842
主要特性:
-
通过所有权和借用的概念提供内存安全性和并发安全性。
-
内存安全和并发安全的编译时间保证,即如果一个程序代码编译了,那么它既是内存安全的,也没有数据竞争。这是 Rust 最吸引人的特点。
-
它还提供了 ML,Haskell 的表示方式。Rust 具有不变的数据结构和函数式编程特性,提供函数式并发和数据并发。
-
Rust 的速度非常快。
-
由于没有运行时,Rust 提供了对现代硬件(TPU、GPU、多核 CPU)的完全控制。
-
Rust 有 LLVM 支持。
受欢迎程度:
自 2015 年首次亮相以来,Rust 一直被开发者所喜爱,并在 StackOverflow 开发者调查中连续四年(2016、2017、2018、2019)被评为最受欢迎的语言:
图片来源:Octoverse
流行编程语言网站 PyPl 也将 Rust 排在第 18 位,并呈上升趋势:
图片来源:Google Trends
主要用在:
-
系统编程
-
无服务器计算
-
业务应用程序
主要竞争语言:
-
C
-
C++
-
Go
-
Swift
Go
图片来源:Stackoverflow
根据 GitHub Octoverse 的统计,Go 也是增长最快的十大语言之一:
图片来源:Google Trends
主要用例:
-
系统编程
-
无服务器计算
-
业务应用程序
-
云本机开发
主要竞争语言:
-
C
-
C++
-
Rust
-
Python
-
Java
Kotlin
文章网址: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。
主要特性:
-
Kotlin 的 USP 是它的语言设计。我总是将 Kotlin 看作 JVM 上的 Go/Python,因为它的代码简洁明了。因此,Kotlin 的生产效率很高。
-
与许多其他现代语言一样,Kotlin 提供了空指针安全、类型推断等功能。
-
因为 Kotlin 在 JVM 中运行,因此你可以使用现存的 Java 库庞大的生态系统。
-
Kotlin 是开发 Android 应用程序的一流语言,已经超越 Java 成为开发 Android 应用程序的第一语言。
-
Kotlin 有 JetBrains 和开源的支持。所以,Kotlin 有很好的工具支持。
-
有两个有趣的项目:Kotlin Native(将 Kotlin 编译为本机代码)和 Kotlin.js(Kotlin 转换为 JavaScript)。如果他们成功了,那么 Kotlin 可以在 JVM 之外使用。
-
Kotlin 还提供了一种编写 DSL(领域特定语言)的简单方法。
受欢迎程度:
自 2015 年首次发布以来,Kotlin 的受欢迎程度正在飙升。根据 Stack Overflow,Kotlin 是 2019 年第四受欢迎的编程语言:
图片来源:Github Octoverse
热门编程语言排名网站 PyPl 将 Kotlin 列为第 12 位最受欢迎的编程语言,并有很高的上升趋势:
图片来源:Google Trends
主要用例:
-
企业应用程序
-
Android应用程序开发
主要竞争语言:
-
Java
-
Scala
-
Python
-
Go
TypeScript
图片来源:Stackoverflow
TypeScript 是增长最快的 Web 编程语言之一,在 GitHub Octoverse 上排名第五:
图片来源:Octoverse
TypeScript 在过去的一年中吸引了越来越多的眼球,这反映在 Google 趋势上:
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 的一个致命优点是它的语言设计。它使用更简单、简洁和干净的语法,为 Objective-C 提供了一个更高效的替代方案。
-
Swift 还提供了现代程序语言的特性:null 安全性。
-
Swift 是一种编译语言,它和 C++一样快。
-
Swift 支持 LLVM 编译器工具链。因此,我们可以在服务器端甚至浏览器编程(使用 WebAssembly)中使用 Swift。
-
Swift 提供自动参考计数(ARC)支持,这样可以限制内存管理不当。
受欢迎程度:
和许多其他现代语言一样,开发人员也非常喜欢 Swift。根据 StackOverflow 的调查,Swift 在最受欢迎的编程语言中排名第六:
图片来源:Google Trends
主要用例:
-
iOS 应用程序开发
-
系统编程
-
客户端开发(通过 WebAssembly)
主要竞争语言:
-
Objective-C
-
Rust
-
Go
Dart
根据 TIOBE,Dart 居于第 23 位,仅仅 4 年时间,它已经超越了其它很多编程语言:
图片来源:TIOBE index
它也是 StackOverflow 开发者调查中排名第 12 位的最受欢迎的编程语言之一:
图片来源:Google Trends
主要用例:
-
应用程序开发
-
前端开发
主要竞争语言:
-
JavaScript
-
TypeScript
Julia
资料来源:Julia Presentation
Julia 是一种动态的高级编程语言,为并发、并行和分布式计算提供一流的支持。Julia 的第一个稳定版本于 2018 年发布,很快就得到了社区和业界的青睐。Julia 可以应用于科学计算、人工智能等许多领域,最终解决「两种语言」的问题。
特性:
-
和 Rust 一样,Julia 的主要特点是语言的设计。它试图在不牺牲性能的情况下,结合现有的编程语言在高性能和科学计算中的一些最佳特性。到目前为止,它做得很好。
-
Julia 是一种可选类型的动态编程语言。因此,Julia 很容易学习,而且效率很高。
-
它以多分派编程范式为核心。
-
它内置了对并发、并行和分布式计算的支持。
-
它还为 I/O 密集型任务提供异步 I/O。
-
它速度非常快,可以用于需要数百万线程的科学计算。
受欢迎程度:
在许多领域,Julia 主要与 Python 竞争。由于 Python 是最流行的编程语言之一,Julia 成为主流还需要几年时间。
Julia 相对年轻(只有一岁),但在 TIOBE index 中仍排在第 43 位:
图片来源:TIOBE
Google Trends 也显示出过去的时间里,程序员对 Julia 的稳定兴趣。