关于2020年软件开发趋势预测和分析!(上篇)
adinnet/2019-12-24 15:32/洞察
对于软件开发行业来说,即将过去的2019年是个伟大的一年,因为软件和数字化深入地影响到了每个行业。这一趋势将延续下去,并将在2020年对全球各行各业产生更大的影响。那么2020年软件发展又会呈现出怎样的趋势呢?本文,上海艾艺对软件开发最重要的技术堆栈:从云计算/服务,到字节码(ByteCode),给出了自己的预测。
一、基础设施:条条道路通向云(计算)
2019年对云服务提供商来说是一个伟大的一年。不仅初创企业已经在使用云服务,一些保守的和注重安全的行业和机构,如政府、医疗保健、采矿业、银行、保险,甚至五角大楼都在转向云计算技术。这一趋势将在2020年继续下去,届时所有规模和所有类型的公司都将采纳,或者至少计划采纳云计算技术。Gartner最近公布了2020年云计算/服务的预测数据(如下图):

▲ 资料来源:Gartner网站
所以,如果你是一个决策者,还在对是否转向云服务举棋不定的话,也许你应该重新考虑你的策略。如果你是一个独立的开发人员,还没有尝试过云服务,那么2020年将是一个尝试的最佳时机。大多数大型云服务提供商(亚马逊、微软、谷歌)都提供免费使用额度,让用户可以体验云服务。谷歌在这方面最慷慨:它提供一年300美元的免费额度。

▲ 谷歌云的免费层
二、云服务:AWS难以撼动,但其他人会赶上
作为第一个云服务提供商,2019年亚马逊AWS的统治地位仍然牢不可撼。凭借最广泛的服务组合,亚马逊AWS也将在2020年继续占据统治地位。Canalys发布了2019年第三季度的统计数据:大型云服务提供商(AWS, Azure, GCP)占据了56%的市场份额,而仅仅AWS一家就占据了32.6%的市场份额:

▲ 资料来源:Canalys
但是其他云服务提供商也在积极行动,力争缩小与亚马逊AWS之间的差距。微软已经将目标专门对准了大型企业。最近微软击败了亚马逊,从五角大楼手中赢得了价值100亿美元的云服务项目——“绝地”。这项交易可以大大提升Azure的声誉,并且大大削弱AWS的统治地位:

▲ 资料来源:Marketwatch
谷歌也正在推动云原生计算基金会(CNCF - Cloud Native Computation Foundation)实现云服务操作的标准化。谷歌的长期目标是让云迁移变得更容易,以帮助公司以后可以更方便地从AWS迁移到GCP。IBM最近以高达360亿美元的价格收购了RedHat,目的是帮助它在云服务市场抢占一席之地。
2020年将有更多的收购和合并。此外,许多初创企业也将带来新的创意和创新(例如“多云服务”这项创新)。从云厂商的殊死搏斗中,只有更低的价格和更多的创新才能让企业从中获益。
三、容器化:Kubernetes将继续火爆
在容器编排领域,Kubernetes, Docker Swarm和Mesos之间曾经发生过一场大战。结局很明显,Kubernetes已经成为这场战斗的赢家,并且只会变得更强。云是分布式系统,Kubernetes是它的操作系统(分布式Linux)。在2019年北美举办的Kubernetes官方技术论坛Kubecon + CloudNativeCon上,有12,000名与会者参加,这一数字与2018年的同一活动相比增长了50%。下图反映了过去四年来Kubecon+ CloudNativeCon的指数增长情况:

▲ 资料来源:云原生计算基金会(CNCF)/Linux 基金会
可以预见,在不久的将来,Kubernetes的增长速度不会放缓,而且在2020年它只会变得更强。你可以放心地打赌,2020年,Kubernetes将成为云原生计算运动的中坚力量。顺便说一句,Docker Enterprise最近被卖给了Migrantis,金额不详:

▲ 资料来源:Migrantis
而就在几年前,一切还都是关于Docker的,但现在变成都是关于Kubernetes的了。Docker在其鼎盛时期未能实现货币化,几年后,当这个行业已经离开时,他试图赚钱,但是为时已晚。这个例子又一次证明:在现代科技界,时间就是一切。
四、软件架构:微服务将成为主流
在软件架构范式中,向微服务架构的转变在2019年一直继续,正如如下的谷歌趋势(Google Trends)所显示的:

▲ 谷歌趋势:微服务
随着该行业在2020年及以后继续朝着云计算的方向发展,微服务架构将占据更大的主导地位。微服务架构兴起的一个主要原因是,它是和云计算完全契合的、快速的软件开发方式。
我认为也会有一个趋势,那就是回归到一体化软件架构。因为对于许多用例,微服务架构有些过犹不及了,而且设计微服务架构也非常具有挑战性。
五、编程(普通的):Python将继续崛起
无论是机器学习、数据分析、数据处理、Web开发、企业软件开发,还是拍摄黑洞,Python无处不在。
此外,流行编程语言排名网站TIOBE已经将Python列为仅次于Java和C的第三大流行编程语言:

▲ 资料来源: TIOBE
更有趣的是,Python在2019年的受欢迎程度翻了一番(从5%增至10%)。我知道TIOBE的统计有很多局限性和缺陷,但它是现在最被广泛接受的编程语言排名。
Python的崛起将在2020年继续下去,它将缩小与Java和C之间的差距。另一种无所不在的编程语言JavaScript正面临下降趋势(JavaScript框架疲劳疹?)。为什么Python会出现这样的热潮?因为它降低了编程领域的门槛,同时它拥有一个优秀的,深受数据科学家和新一代开发人员喜爱的社区。
六、编程(企业级的):Java和JVM仍然占据主导地位
如前一节的TIOBE排名所示,Java仍然是这个星球上最主要的编程语言,并将在2020年继续占据主导地位。JAVA的运行时JVM是最好的软件工程之一,它为Java提供了坚实的基础。许多流行语言如Kotlin、Scala、Clojure、Groovy都使用JVM作为运行时。最近,甲骨文公司更新了JVM的许可证:

▲ 资料来源:Infoworld
许可证的更新意味着所有使用Java、Kotlin、Scala或任何其他JVM语言的公司都将受到影响,需要支付巨额的订阅费。幸运的是,OpenJDK计划仍将使JVM免费。一些公司将为JVM提供企业支持:

▲ 资料来源:Java Code Geeks
由于其像“大货船”般的庞大而且速度慢,JVM语言已经不能最好地适合当今的无服务器计算。甲骨文正在推动“GraalVM”计划,旨在使Java能够灵活、快速、更好地适应无服务器世界。但是,由于除了Java之外,没有其他的选择能够提供企业级的稳定性和可靠性,因此,在2020年及以后,Java仍将继续统治世界。
七、Java企业应用: Spring成为头号框架

▲ 资料来源:spring.io
曾几何时,Spring框架和Java企业版(JavaEE)在企业软件开发方面存在着激烈的竞争。但甲骨文在JavaEE中的不活跃使它在竞争中处于劣势。这导致了“Micro Profile”平台的产生,并最终形成了JakartaEE,甲骨文在JakartaEE中开源了Java EE源代码。
当所有的政治和运动都围绕着JavaEE发生时,Spring框架已经赢得了JVM企业框架战争的胜利,它的开发非常活跃,并且能够快速地应对不断变化的环境,例如云原生支持。到2020年,Spring框架将成为JVM生态系统中的头号框架。
目前,有两个非常有吸引力的项目正在开发中,旨在使得Java变得更小、更灵活,从而成为无服务器计算的良好选择。
一个项目是Micronaut框架(如下):

▲ 图片来源:Micronaut
另外一个项目是Quarkus框架(如下):

▲ 图片来源:Quarkus
Micronaut和Quarkus的目标都是使用GraalVM,并将在2020年吸引更多的Java社区。
八、编程:Rust,Swift,Kotlin,TypeScript将取得突破
21世纪头10年,编程语言领域出现了停滞。大多数人认为不再需要一种新的编程语言了,因为Java、C、C++、JavaScript和Python已经满足了所有的需求。谷歌通过创建Go语言打开了新编程语言的大门。在过去的十年里,许多有趣的编程语言出现了,如Rust, Swift, Kotlin, TypeScript。这种发展的一个原因是现有的编程语言往往不能利用硬件的最新变化(例如多核、更快的网络、云计算)的优势。另一个因素是现代语言特别注重旨在使开发人员能够更快更容易开发的人机工程学。在Stackoverflow开发者调查中,大多数现代语言占据了前几位(Rust连续4年排名第一):

▲ 资料来源:Stackoverflow
我已经在技术上对一些编程语言,特别是close-to-Metal类的编程语言,如Rust, Go,进行了深入的研究,并且论证了现在为什么是采用这些新一代语言的时候了。
最近,微软宣布他们正在深入研究Rust编程语言,以帮助其开发安全的软件(如下文所示):

▲ 资料来源:Techbeacon
此外,亚马逊最近也宣布,他们正在赞助Rust:

▲ 资料来源:Techbeacon
随着谷歌宣布在安卓系统中正式支持Kotlin编程语言, Kotlin也成为了Java在JVM领域的主要竞争对手之一:

▲ 资料来源:安卓
Angular支持将TypeScript作为主要编程语言,而不是使用普通的JavaScript。其他JavaScript框架,例如React和Vue也开始提供对TypeScript的更多支持。
这一趋势在2020年将会继续下去,许多其他的大公司可能已经近距离深入研究了新一代编程语言(如Rust、Swift、TypeScript、Kotlin),他们在2020年会站出来公开宣布他们的支持。
九、Web前端开发:JavaScript将继续占据主导地位

▲ 图源:Unsplash,由Pankaj Patel拍摄
很久以前,JavaScript还不是一门足够强大的编程语言,前端开发主要使用JSF、Ruby on Rails、Django、Laravel等后端框架开发,并在服务器端渲染。2014年AngularJS一面世,情况就永远改变了。从那时起,更多的JavaScript Web框架(如Angular 2+, React, Vue.js, Meteor.js等)涌现出来,使得JavaScript变成了现代主流的Web开发框架。随着JavaScript框架的不断创新和微服务架构的兴起,JavaScript框架将继续在2020年主导前端开发。
十、JavaScript Web框架:React稳如磐石
尽管React是在AngularJS之后推出的,但它在过去十年中对Web开发的影响最大,并在与Google+的竞争中拯救了Facebook。React在前端开发中带来了一些新颖的创新思想,如事件溯源(Event Sourcing)、虚拟Dom、单向数据绑定、基于组件开发等等。它对社区的影响如此之大,以至于谷歌放弃了AngularJS,并通过借鉴React的思想完全重写了Angular2+。React是迄今为止最主要和最稳定的JavaScript Web框架,这一点从下面的NPM下载统计数据可以看出:

▲ 资料来源:npm trends
最近,Facebook宣布了React-Fiber项目,将彻底重写React核心算法,以获得更好的并发性和用户体验:

▲ 资料来源:Github
2020年,React也将成为新项目的必选Web框架。其他前端Web框架,如Angular (Angular2+)和Vue会怎么样呢?Angular也是一个可靠的Web开发框架,特别适合于企业应用开发。我相信谷歌在未来几年会在Angular上投入巨资。Vue是另一个非常流行的Web框架,它得到了社区和几家中国大公司的支持。如果你已经在使用Angular或Vue,则无需在2020年迁移到React。
本文,未完待续.....(关于2020年软件开发趋势预测和分析(下篇),请在本站查看!)
- 最新文章
- 1.智慧教育:智慧教育业务分析
- 2.智慧社区建设的背景、现状及发展前景分析
- 3.2020年中国线上教育行业市场现状及发展前景分析
- 4.未来软件开发的技术趋势分析
- 5.5G看移动互联网 | 赋能智慧医疗,5G大有作为!

