人工智能研究不包括_ Rust兴起,Python兴趣正浓 InfoQ编程语言趋势报告

虽然对编程语言的讨论从未停止过,但各种讨论仍然引起开发者的关注。 从PC时代到移动互联网时代,发展到云计算时代,技术趋势的变化不断调整自己对编程语言的定位。 InfoQ英语网站的编辑们根据技术采用生命周期的理论,分析了各大编程语言当前的发展趋势,Rust兴起,Python感兴趣。

1

本文的要点

趋势报告中出现了Elixir的身影,现在还处于创新者的试用阶段。 这是在Erlang虚拟机上执行的函数式和发型的共通编程语言。

业界的兴趣和创新越来越多地投入到基础设施感知、云特有的语言、DSL、Ballerina和Pulumi等SDK中。

我们认为Rust已经从创新者过渡到了早期的用户阶段。 我们认为,这主要归因于在基础设施和网络数据平台上的应用进展。

Python越来越受欢迎,主要归功于数据科学和教育应用。

用于iOS开发的Swift之所以进入初期流行阶段,主要是因为作为移动应用程序运行的iOS得到了广泛的普及。 Kotlin在JVM趋势报告中有记载,但在Android应用程序开发领域也处于同样的初期流行阶段。

关于. NET,业界对. NET Core感兴趣,随着. NET Core 3的到来,预计这种情况会持续下去。

自2019年以来编程语言的发展趋势是什么? 本报告旨在帮助技术领导决策中长期技术投资,帮助个人开发者选择哪些编程语言流行,哪些地方投资宝贵的时间和资源,学习哪些新的编程语言,哪些技能开发。

本报告汇总了InfoQ编辑团队在编程语言领域的技术流行程度和新兴趋势,但不包括Java/JVM和JavaScript/Web开发领域。 这两个有独立的报告。 本报告也汇总了意见,收集了我们编辑进行的广泛内部讨论、对外部公开调查结果的评论以及对内部或者个人调查和分析结果的评论。 以下是多篇集会演讲的摘录。

我们认为InfoQ和QCon关注的主题可以归结为创新者、早期使用者、早期流行三个阶段。 我们要做的是找到符合Geoffrey Moore所说的初期市场的理念,在这个市场上,“顾客基础是由想要发掘机会,解决眼前问题的技术狂和有前瞻性的人构成的”。 我们也在寻找能够“跨越鸿沟”进入广泛应用阶段的理念。 有趣的是,在这种情况下,技术在应用曲线上的精确位置可能不同。 例如,Rust可能在旧金山湾地区的企业广泛使用,但在其他地方可能不那么流行。

自从2018年发布内部编程趋势报告以来,我们的报告包含了一些语言的趋势跟踪发生了明显的变化以前这些语言很受欢迎,但是我们没有公开跟踪它们的应用曲线。 以前,我们在内部讨论与这些语言相关的技术和要素,现在趋势图也有其位置。

2

正在开发的编程语言: Elixir、Rust、Swift

Elixir是一种函数性、通用的编程语言,是趋势报告的新面孔,目前正处于创新者的试用阶段。 Elixir构建在Erlang之上,并在Erlang虚拟机上运行。 Elixir和Erlang共享相同的抽象,构建分布式容错应用程序。

Rust已经从创新者开始进入初期用户阶段,在基础设施和网络数据平台的应用中得到了很大推动。 该语言也逐渐成为web程序集的公认协调选项,认知度也在提高。 另外,Facebook还注意到使用Rust实现Libra加密货币的选择。

用于iOS开发的Swift进入初期流行阶段主要是由于作为移动应用程序工作的iOS的普及。 此趋势报告不跟踪Kotlin,但是在InfoQ Java和JVM趋势报告中,Kotlin已成为Android应用程序开发的默认语言,因此Kotlin越来越受欢迎。

3

基础架构语言: Ballerina、Pulumi、Dark

我们发现业界越来越关注以基础设施/云为目标的语言、DSL、Ballerina和Pulumi等SDK。 我们也在追踪Dark,因为现在还处于内部测试阶段,所以还没有资格进入趋势图。 这种技术现在稳定在创新者的试用阶段,但我们仍很关注,11月在旧金山QCon专门讨论“基础设施语言”。

作为参考,下面是2018年下半年的内部趋势图。 2019年的版本在本文的开头。

程序设计语言趋势2018

. NET 2019第3季度

对于. NET,我们发现业界对. NET Core感兴趣. NET Core 3的到来将继续这种情况。 图表将. NET Core分为2.x和3.x分支。 这是因为应用程序位于不同的位置。 对于. NET语言,我们估计c仍然感兴趣,并对其进行追踪,但缺乏复杂性和微软的强大支持,这就意味着不能得到进一步的应用。

将ASP.NET Core置于早期流行阶段。 现在,我们认为大多数新的Web任务都是在ASP.NET Core上完成的,但不一定是. NET Core。 虽然已经移植了一部分现有的应用程序,但是大部分的应用程序都没有被移植。 WCF在企业中依然很重要,但微软在. NET Core中不能很好地支持。 我们把Visual Basic转移到过时的阶段,实际上把它当成爱好者想的语言。

以下是一些InfoQ编辑团队内部对话的摘录,进行了简单的编辑和摘要,这些摘录也为趋势图的定位提供了更多参考。

JetBrains公布了他们的“2019年开发者生态系统现状”,调查了7,000名开发者,得出了以下结论

Java——:最受欢迎的主要编程语言

JavaScript——最常见的编程语言

go-最有前途的编程语言

Python——最受研究的语言

Go在2017年最初占8%,现在达到了18%。 另外,开发者选择想要使用的语言和目标语言时,Go的份额最大。

StackOverflow今年对Python做了这样的评论。 “Python是最成长的主要编程语言,在我们的编程语言调查中排名再次上升,今年超过Java成为第二受欢迎的语言。”

Arthur Casals,研究人工智能/多代理系统领域的计算机科学研究者:

根据我最近看到的/读到的内容,Rust的普及似乎正在加速。 但仍处于边疆地区,被视为“c的替代品”。 但是,随着可用库的数量的增加,有影响力的用户也开始使用Rust,因此我认为将其置于“初期用户”阶段比较合适。

Elixir似乎发展迅猛,特别是在巴西,这种语言的创造者是巴西人,至少有一家新的独角兽企业公开在这里。

SitePen首席执行官和Dojo共同创始人Dylan Schiemann :

Rust虽然处于初期的使用者阶段,但在我看来,它流行的不仅仅是WebAssembly,还是Servo。

尽管Go受到关注已经有一段时间了,我还是把它作为初期的用户阶段。 语言的生命周期比框架长得多,我不认为Go已经达到了主流的应用阶段。 同样,Elixir和Elm也设定在初期的用户阶段。

虽然很少听到Pony这个词,但我觉得现在还处于革新者的阶段。

Swift是iOS应用程序的默认入口点,因此可能已进入初期流行阶段。

对于基于云的IDE,CodeSandbox和StackBlitz在过去一年中通过将基于浏览器编辑的优秀功能集与本地开发工具集成而显着提高了利用率。

停滞几年后,Dart好像多亏了Flutter才开始恢复。

我把Swift提升到了初期流行阶段。 我认为这种趋势正在加速,考虑到WWDC的新发布内容,特别是Swift UIKit——正进入苹果平台的“Swift时代”。

您还可以将服务端Swift迁移到初始用户阶段。 在管中窥探豹子,我与知道它的人们交流时,告诉他们它已经稳定成长,很多好东西都是由开源的swift-nio驱动的,相反,迁移的几个服务器端框架的性能提高了

Rust过去一年的成长毫无疑问,我把它从创新者提升到了初期的使用者阶段。 因为他们被定位为Wasm的合作伙伴,所以我觉得这个很有用。

我不能很好地说Go是怎样的。 虽然还在成长,但我觉得还没有达到初期的流行阶段。虽然可能会引起争论,但是我会把它留给初期的使用者。

虽然听到了很多人在讨论Elixir,但是我觉得那个还处于革新者的阶段。 它仍然在极限市场上。

加上Python,应该置于初期的流行阶段。 那个受欢迎度一直在增加。 我认为这主要是数据科学家之间广泛推广的推动力,对这种语言的讨论还不够充分。

我认为Pony不能走出创新者的阶段,这太遗憾了。 我喜欢这种语言,那种类型的系统相当复杂,我认为这是一项令人印象深刻的工作,但是那个社区还很小。 从跟踪列表中删除这个。

有关Dark的信息,尽管还处于内部测量阶段,但终于听到了很多。 在更广泛应用基础架构语言的环境中,这一点很有意思。

Wolfram软件流水线代表华纳schuster :

关于Swift :确实是发展初期,但Swift for TensorFlow可能是Swift的一大卖点,也可能是Python的潜在竞争对手。

这里有一些非常详细有趣的文档,解释为什么使用Swift而不是其他语言。 背后的是Chris latt ner。 他目前正在TensorFlow进行这项研究,克里斯尽力在所有场景中创建IR

S4TF这个名字并不有趣,看不到所有有趣的内容。

关于Python :我对Python的发展很感兴趣。很明显,这已经成为许多数据科学/ML本机库的优先语言,受益于此——这是10年前Ruby开始衰落时所不能理解的。

另一方面,Python抵制了执行时的所有形式的现代化。 不用说解释器的历史超过10年的项目。

我想Jython也死了。 上次我检查网站的时候,那个好几年都没有更新,和Python 3.x相差很远。

基础架构语言:似乎有将几种语言结合起来部署的新趋势。

pulume&co-typescript

Ballerina

Unison语言-是以前Scala/Haskell员工开发的新函数语言,但是完全没有Monad现在还很年轻

Dark语言-未公开

我对所有这些语言的未来都很感兴趣,既有暂时性的,也有可能成为未来15年间不可或缺的语言特性的第一步。

我们可能看到Wasm所支配的新的未来和本机级别的新浪潮。 这可以减少JVM/字节码的吸引力,使所有人只能使用本机语言版本。 很明显,我之前提到的并不是实际上关于JVM本地语言,例如Clojure、Scala、Kotlin等。

Ben Evans是New Relic的最高技术人员,JVM技术设计师:

Elixir有什么东西。 我特别喜欢那个。 这很有用,除非您需要BEAM VM的实际好处,否则似乎没有什么大好处。

许多这种语言的爱好者喜欢它,可能是因为它们“新亮点”和/或他们对Java过敏,但我还没有看到令人信服的证据,证明JVM技术不容易——而且JVM和库

dustine Schultz,最好的软件工程师,Pluralsight的作者和技术推广者:

我发现最近几年Python有了很大的发展。 正如别人所说,这是多亏了数据科学、学校/大学的教育、Flask等更轻的框架。

关于Python虽然没有否定的意见,但是人气并不代表在企业场景中的流行。 以Python编写的大型分布式企业应用程序仍然很少使用Python。 它可能以Python开头,但由于性能原因,它最终会切换到另一种语言。

Charles Humble :核心框架自2012年起似乎有所改善。 我觉得很多工作都集中在. NET Core上。 我感觉. NET Core从创新者变成了初期的用户阶段。 . NET Core 3登录时分割,想知道是否应该将. NET Core 3重新导入创新者阶段,将. NET Core 2导入初期的用户状态。

同样的,我认为c和JVM上的Clojure的发展轨迹相似——我觉得它很可爱,但是看不到它扩张的迹象。 同样,利用率下降的可能性也不大。

关于社区,关于f兼容性

越来越复杂了。 这是计算机科学家的最爱。 但是,真正的教育F8很快就会到达初期的用户阶段。 人们一直在寻求空的引用类型……至少. NET 1发出了呼吁。

与讨论相关的其他可公开的研究和调查是“RedMonk编程语言排行榜: 2019年6月”和IEEE Spectrum的“2019年顶层编程语言”。

https://www.infoq.com/articles /程式设计语言-趋势科技- 2019 /

4

大会推荐

人工智能在智能交通物流技术发展之路

工业水平深入学习蚂蚁广告的实践、创新和最新进展

拟人对话机器人的构建及其在语音场景中的实践

AI大生产时代的NLP技术创新与应用实践

金融知识地图在蚂蚁业务探索与平台实践

今天的推荐文

边缘计算的新闻关注度从2017年开始越来越高。 边缘计算的一些重要玩家也是亚马逊、微软和谷歌有自己独特布局的公共云的巨头。 是否可以使用边缘计算代替云计算?

边缘计算技术的发展现状及对策

一点一点地看着臭虫

大家都在看

相关专题