2020年热门编程语言的发展方向

2020年热门编程语言的发展方向

2020年编程语言将如何发展,是很多人关心的问题。下面看看六大热门编程语言的现状与未来发展。

Python

今年 Python 最大的新闻是, Guido van Rossum 退休了,将 Python 交给了 Python 指导委员会。到目前为止,权力转移还算顺利,正如《Python 编程从入门到实践》的作者 Eric Matthes 所认为的那样,这并不足以为奇,因为Guido 一直都能在自己和在社区中的角色之间保持平衡。2020 年也将终止对Python 2.7 的支持,这很可能会让其反对者感到头疼。同时, Python 仍然是数据科学的首选语言。

Python另一个关注点就在于,来自社区的各种有趣且关键的项目已经诞生了, Python指导委员会成员和CPython的核心开发人员Carol Willing也庆祝了这些项目,例如Binder服务,该服务通过在Jupyter Notebook中创建可执行环境来促进可重复的研究。

Java

2018 年 9 月发布的Java 11 带来了大量的新特性,其中许多特性为容器的使用提供了显著且明显的优势。然而, JetBrains 的调查显示,这个最新版本并没有被广泛采用,超过 80% 的开发人员仍然使用 Java 8。这是否意味着人们并没有像我们所说的那样在容器中运行 Java 呢?还是人们根本不知道 Java 11 在容器方面的优势呢?

尽管采用速度很慢,但 Java每六个月发布一次的节奏一直在不断延续:Java 12 于2019 年3 月发布,Java 13 于9 月发布。每个版本都很小,但都是可预测的。尽管它们并没有令人兴奋的新语言变化,但我们可以看到该语言正在稳步向前发展。此外,它还支持了预览特性的想法,我认为正如我们所看到的那样,它对 switch 表达式非常有效,开发人员应该尝试该特性,并根据使用的情况给出真正的反馈,而不是对抽象的概念性的想法进行反馈。作为回应,对 switch 表达式的语法进行了少量地更改,这是有可能的,因为它是 Java 13 中的一个预览特性,而不是一成不变的。现在,计划将这个更新后的语法作为一个可用于生产的特性在 JDK 14 中发布。

Kotlin

谷歌在 2019 年 5 月宣布,Kotlin 现在是 Android 应用程序开发人员的首选语言,这促进了该语言的广泛采用。尽管许多 Android 开发人员仍处于向 Kotlin 迁移的过程中,但那些已经过渡过来的人都知道它能提供的好处了。《Head First Kotlin》的作者 Dawn 和 David Griffiths 分享了 Kotlin 崛起背后的几个原因:

对于由 IDE 公司创建的语言,Kotlin 能拥有良好的工具支持也就不足为奇了。用于代码契约的实验性 DSL 使开发人员能够为代码的行为方式提供保证。你的函数有副作用吗?它是否能保证返回一个非空值?代码契约允许我们做出这些承诺,而编译器可以使用它们来放宽编译时检查。

现在,不同 Kotlin 平台之间的屏障也正在被打破。“expect”/”actual”限定符使开发人员可以更轻松地编写跨 Java/Native/JS 环境的兼容代码。现在,序列化支持意味着可以更容易地将 JSON 数据转换为 Kotlin 对象,反之亦然。

Go

当 Go 程序员(Gopher)回顾 2019 年时,他们很可能会记得“try”提案的传奇故事。Go 的开发者兼作者 Jon Bodner 解释道:

对于 Go 最常见的抱怨之一是错误处理过于冗长。因此在 6 月初,Go 的核心开发人员们提议添加一个新的内置函数 try ,并发布了一个 GitHub issue 来讨论这个新特性。不到一个月,就有近 800 条评论,其中大多数都是否定的。反对这一新特性的人认为,这一变化使代码变得太“魔法”,并使逻辑流程变得模糊了。在审查了反馈之后,Go 团队将提案标记为关闭,并于 7 月 16 日拒绝掉了该提案。

2020 年,Go 的契约规范(也就是众所周知的泛型提案)应该会更加清晰。Bodner 说,“看起来 Go 将使用一种与其他语言略有不同的方法来实现泛型,但是这种方法非常适合 Go 的习惯用法。”它将有望使 Go 在添加泛型特性(开发人员在其他语言中发现泛型非常有用)的同时,仍能保持其惯用的风格。

Rust

《 Programming Rust 》的合著者 Jim Blandy ,以了解他对 Rust 的发展看法在 2019 年发生了怎么的变化。去年,他指出,“Rust 长期以来一直以这样或那样的形式支持异步编程,但是异步函数为这种代码提供了一种语法,这是对 Rust 之前语法的重大改进。”他对 Rust 语法进行改进的愿望实现了吗?是的,最终:Blandy 解释到 async/await 语法直到 2019 年 11 月 7 日发布的 1.39 版才趋于稳定。

最初,希望 async/await 语法可以成为 Rust 2018 版的一部分,但它需要花费更长的时间才能把事情做好。尽管如此,仍然对 async 在 2020 年对 Rust 的意义寄予厚望,将 async 集成到语言中,可以让借用检查器(borrow checker)了解我们在做什么,因此异步代码看起来就像是惯用的 Rust。正如 Blandy 所指出的那样,Rust 生态系统正在迅速采取行动,以利用该语言的新表现力。

Rust 社区对 WebAssembly 也很感兴趣,今年 WebAssembly 成为了 C/FFI 的理论替代品 ,可用在需要具有可移植的、高性能的模块的生态系统中。

Swift

Swift 去年最大的事件是 SwiftUI 和 Swift for TensorFlow 的发布。SwiftUI 是苹果公司的最新框架,可用于在所有苹果设备上设计用户界面,Swift for TensorFlow 是一个将谷歌 TensorFlow 框架和 Swift 集成在一起的深度学习和可微分编程(differentiable programming )平台。

Swift for TensorFlow 有一个开发团队,其中包括 Swift 的创始人 Chris Lattner,并且它可以为我们提供(或将在完成后提供)机器学习和数值计算所需的一切。最令人惊讶的是,它对带有自动微分(automatic differentiation)的可微分编程(differentiable programming)提供了完全一流的支持,这是由 Swift 的底层编译器框架和设计来实现的。

全语言可微分编程将使之前不可能的事情成为可能:一个很好的例子是,当我们构建神经网络时,可以使用标准的编程调试器逐步进行反向传播并调试派生类。

Swift for TensorFlow 还为 Swift 提供了完整的 Python 支持,使数据科学家可以将他们所需要的有用且熟悉的 Python 框架与简洁而富有表现力的 Swift 代码进行混合和匹配。

将来会怎么样?

变化是不可避免的,并且随着编程语言继续向云、微服务、大数据和机器学习中的新趋势优化倾斜,每种语言及其生态系统都将以其独特的方式继续适应。某些语言可能会在 2020 年发布大版本(C++ 20 将于今年夏天发布,Scala 3 有望在 2020 年底发布)。但有一点很清楚,即使是最小的变更也可能会在程序员的日常生活中引起轩然大波。

 

凯铧互联提供阿里云服务器折上折代购服务,低至7.5折,几乎阿里云全线产品都可以代购!

如果您的问题还未能解决,您可以联系阿里云代理商凯铧互联客服寻求帮助。阿里云代理商凯铧互联提供阿里云服务器/企业邮箱等产品的代购服务,同样的品质,更多贴心的服务,更实惠的价格。 阿里云代理商凯铧互联会为您提供一对一专业全面的技术服务,同时还能为您提供阿里云其他产品购买的专属折扣优惠。通过凯铧互联购买可以获得折上折优惠!若您需要帮助可以直接联系我方客服,阿里云代理商凯铧互联专业技术团队为您提供全面便捷专业的7×24技术服务。 电话专线:136-5130-9831,QQ:3398234753。
购买阿里云产品找阿里代理凯铧互联更实惠!!

aliyundaili