技术总是不断发展的,就算中间或有曲折,整体方向还是向前的。但要论具体的驶向,就算是对于整体趋势和影响特别关注的人来说,这项任务也很有挑战性,下面我们将尝试总结2016年开源方面的热门趋势。
语言推动人工智能发展
经历过20世纪90年代的“人工智能寒冬”之后,如今伴随着计算能力的提升,人工智能又获新生,并且正在影响着我们构建软件的方式。机器学习、深度学习、自然语言处理与自动语音识别功能随处可见,就算OSCON开源大会这样的盛事上也充斥着关于人工智能的讨论。尽管计算能力的提升已经做了铺垫,但将人工智能开源才是将这个行业推向创新和竞争的关键一步。竞争者除了TensorFlow、OpenAI和Apache Spark这些众多周知的强大框架之外,还有类似Neon和Theano这样规模小一些的。
人工智能的发展对软件开发者有什么影响呢?Python因其敏捷性深受数据工程师和科学家们的欢迎,被定位成人工智能的编程语言,类似的语言还有R语言、Java和Scala。
容器和Go语言密不可分
Go语言1.0版本是在2012年3月发布的,之后第二年Docker便出现了,再之后是Kubernetes。简单来讲,Go并非专为其而生,但却刚好吻合其用途,因此容器也就成了它的主要用途之一。Go语言所编写的方式是Java或C++从未达到过的,适用于高度网络化、有着一流的并发性的世界。我们至少要对Go语言做以了解——这种语言正在蓬勃发展,在未来若干年中会作为许多应用的根基出现。
Swift超越了苹果的生态系统
2015年就在这门语言出现后不久,苹果开源了Swift,它在iOS和Mac OS X开发者之中风靡一时,这种语言不但很容易让开发者快速喜欢上,而且比Objective-C和C++更加安全。在这个满是JavaScript框架和其它新语言的世界中,Swift能有多成功仍有待观察,不过若能继续保持现在的势头,Swift定有机会借着苹果的东风,在这个宏大的网络世界中分一杯羹。
Java 8 vs JVM语言
随着Java 8的发布,Lambdas表达式作为一项重要的特性随之而来,类似Scala和Clojure之类的JVM语言也渐入人眼。近来,随着Apache Spark的良好发展,Scala也获得了井喷式的增长。不过至少目前,由于开发者对Java 8新特性的认真审视,Scala和Clojure似乎略有停滞。Java目前已经可以解决并发和大数据问题了,这些都是其它编程语言多年来一直在尝试解决的需求。在2017年的OSCON大会上,Scala和Clojure可能会缺席,这一点并非我们刻意为之,而是因为目前提案的演讲者都对其兴味索然。
前景大有希望的语言
一如既往,总有些后起之秀正蓄势待发,它们或能满足新生需求,或只是源于疯狂的想法,最终却改变了我们对编程的思考方式。2016年之后有五种语言即将大兴,它们分别是:Rust、Elixir、Elm、Kotlin和Perl 6。
它们为这个行业带来了什么?
Rust:以更高一些的安全性进行快速的系统编程。
Elixir:针对较大规模的应用,支持分布式、高容错、功能性和动态的开发。
Elm:很特别的函数式编程语言,最终会编译成JavaScript,非常有趣,而且会愈来愈让人上瘾。
Kotlin:针对Java和JVM系列,特性包括静态类型、安全性、Java兼容。
Perl 6:重获新生!Perl 6成为了一门新语言,在表达式和功能方面都很丰富,这些奠定了它的未来胜利基础。
大浪淘沙,时间会告诉我们真相,让我们静待它们的表现,也希望对开源有兴趣的开发者们多多尝试,在作出贡献的同时成为历史的参与者。