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 使开发人员可以为代码的行为方式提供保证。你的函数有反作用吗?它是否能保证返回一个非空值?代码契约容许咱们作出这些承诺,而编译器可使用它们来放宽编译时检查。async
如今,不一样 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 年末发布)。但有一点很清楚,即便是最小的变动也可能会在程序员的平常生活中引发轩然大波。
※更多文章和资料|点击后方文字直达 ↓↓↓
100GPython自学资料包
阿里云K8s实战手册
[阿里云CDN排坑指南]CDN
ECS运维指南
DevOps实践手册
Hadoop大数据实战手册
Knative云原生应用开发指南
OSS 运维实战手册
云原生架构白皮书
Zabbix企业级分布式监控系统源码文档