回顾年度最热门的 AI 项目和容器的编程语言、新出现的编程语言,和更多编程趋势。
技术在不断前进 – 可能不总是向前,但总是在变动。但即使对于那些关注发展趋势及其对程序员的影响的人来说,确切地了解技术的方向也是一个挑战。我们总是在每年秋季才能够清晰地看出当年开源编程趋势,那时我与我的同事,Kelsey Hightower 和 Scott Hanselman,以及我们非常棒的编程委员会,正在筹备来年的 OSCON(O’Reilly 开源大会)。我们获得的建议和对特定主题的关注数量是反映开源世界热门趋势的良好指标。以下是我们在 2016 年看到的顶级编程趋势的概述。
编程语言驱动 AI
走出 20 世纪 90 年代的人工智能冬季,人工智能随着它所依赖的计算能力的提升再次出现,它影响着我们如何构建软件。机器学习、深度学习、自然语言处理和自动语音识别覆盖了世界各地 – 从 GitHub 的项目和工作岗位,到新公司成立背后的原因,以及清除我们杂乱的台面(Hey, Alexa!)。(LCTT 译注:Alexa 是预装在亚马逊 Echo 内的个人虚拟助手,可以接收及响应语音命令,可被看成是亚马逊版的 Siri 语音助手。用户只需要说一声“Alexa”,就可以创建各种任务,还可以和各种智能家居设备进行交互。) 是的,即使像 OSCON 这样的会议都处处提及 “万物皆智能”all things AI 。虽然计算能力的提升已经铺平了道路,所有关于 all things AI 的开源已经引起了行业广泛开放的创新和竞争。谷歌的 TensorFlow、OpenAI 和 Apache Spark 使用强大框架成为行业领导者,但也有较小的参与者,如 Nervana 的 Neon 和 Theano。
AI 的兴起已经影响到了软件开发者的前景?没错,现在是了解 Python 的好时机 – 它给数据工程师和科学家带来的敏捷性和流行性使它成为最流行的 AI 编程语言,其次是 R、Java 和 Scala。
容器和 Go 的结合就像花生、黄油和果冻
(花生、黄油和果冻 —— LCTT译注:最佳组合)
Go 1.0 发布于 2012 年 3 月。紧接着 Docker 在一年后发布,Kubernetes 在另外一年后发布。总之,Go 并不是如我们所知的那样专为基础设施的未来而设计的,但 Go 似乎是为了填充编程世界的一个主要的空洞而出现。对于一个高度联网的世界、一个必须拥有一流并发性的世界而言,Go 是以 Java 或 C++ 永远不会有的方式专门设计的。如果你在做运维或者类似的事,你应该至少稍微了解下 Go ,因为它正在发展中,它将会被使用多年,并成为许多程序的骨干。
Swift 超越了 Apple 的生态系统
Swift 是 Apple 在 2015 年启动该编程语言不久之后就开源的。Swift 已经成为 iOS 和 Mac OS X 开发人员的热门话题。这种语言很容易理解,因此很快流行起来,并且它比它要取代的语言 – Objective-C 和 C++ 赢得了一个更安全的声誉。在 JavaScript 框架和其他新语言的世界中,Swift 是否成功仍有待观察,但如果它能继续获得苹果忠实用户的欢迎,Swift 将有机会成为伟大的网络世界中最有望成功的竞争者和超越者。
Java 8 vs 使用 JVM 的函数式语言
Java 8 的函数式能力(即引入 Lambdas )的出现使得 JVM 语言(如 Scala 和 Clojure)得到了关注。最近,很大程度上由于 Apache Spark 的增长使得 Scala 有一点小爆发。现在,因为新、老开发人员都在积极关注 Java 8 所带来的东西,至少目前,Scala 和 Clojure 似乎被搁置了。Java 现在能够解决并发和大数据相关的事,而那些专门为满足此方面要求而构建的其他编程语言已经做了多年。在 2017 年,OSCON 几乎没有 Scala 和 Clojure 的提案,不是因为我们这样计划的,而是那些提交提案的发言者似乎没有什么兴趣。
新兴语言
和往常一样,世上总是在不停出现新兴语言,目的是比之前的语言做得更好,可以响应从前的语言出现时没有的需求,或者开始只是疯狂思想,最终却改变了我们对编程的看法。今年有五种语言即将进入大时代:Rust、Elixir、Elm、Kotlin 和 Perl 6。
这 5 个热门会给行业带来什么?
- Rust:兼顾速度和一定安全的系统编程语言。
- Elixir:函数式、动态和容错,适用于那些规模越来越大的应用程序。
- Elm:更多函数式的乐趣,使用 JavaScript,学习成为一种乐趣。
- Kotlin:这一个是为使用 Java 和 JVM 的人设计的语言 – 静态类型、安全,此外我提到 Java 兼容了吗?
- Perl 6:它还活着!Perl 6 碰巧是一种新的语言,它胜在富有表现力和功能丰富。
时间会告诉他们是否会如约发布。尝试他们,为他们贡献,成为未来的一部分!