paulwong

21个2021年软件开发趋势预测

2020年是最近历史上前所未有的一年。在过去的一百年中,人类没有经历过像COVID-19这样的全球性大流行。它影响了我们星球上的所有国家,部门和几乎所有个人。

好消息是,我们已经准备好疫苗,终于可以充满乐观和希望,迎接新的一年2021年。

2020年对于软件开发行业来说是重要的一年,在许多领域都取得了明显的突破。COVID-19大大加快了数字化转型,到2021年这种趋势将更加明显。

在软件开发行业,一年几乎就像光明的一年。我没有更新旧帖子,而是创建了一份新的预测列表,以预测我对2021年软件开发行业的期望。

进行预测是一项冒险的任务。但是,我将使用来自身份验证来源的数据,数据和事实,并结合过去对未来做出预测。如果您想了解2021在其软件开发行业商店中的功能,请阅读。

1. 集中式基础架构:云,无处不在的云

在COVID-19期间,尽管有少数行业,但大多数行业遭受了重创。云计算是先驱行业,在大流行期间,它实际上比以往任何时候都更加强大。如果在云采用方面存在任何疑问和不确定性,COVID-19消除了这一点。

像新冠病毒这样的全球性灾难表明,我们不仅需要Cloud进行高端升级,还需要Cloud进行缩减规模,即当我们的服务需求大幅下降时。考虑一下尽管其市场下降了90%,但必须维护昂贵的数据中心的旅游业和运输业。

Forrester预测,全球公共云IT基础设施市场将增长到2021年的3,5%,达到1200亿美元。

无论您身处哪个行业(政府,新兴企业,农业,医疗保健,银行),都应计划云迁移,因为整个世界早日迁移到云。2021年及以后,对云原生工程师的需求将大大短缺。

如果您是IT工程师,请跳至任何MOOC(大规模在线公开课程)以获取您的云证书。好消息是,其中许多公司在新冠期间提供免费的几个月服务。此外,主要的公共云提供商都提供免费课程。最近最大的公共云提供商亚马逊宣布,他们将在2021年至2025年之间为2900万人提供免费的云计算培训。

2. 去中心化基础架构:边缘计算将呈指数增长

与我们希望拥有一个集中式的数据和计算能力数据中心的公共云相反,在许多情况下,我们想要相反的情况,即最终用户附近的数据和计算能力。其中一些是非常低的延迟(5到20毫秒),高带宽,监管原因,实时用例,智能而强大的最终用户设备等。

尽管边缘计算是一个古老的概念,并且我们在内容交付网络(CDN)中使用边缘计算,但近年来它越来越流行。随着互联汽车(无人驾驶汽车,无人机),在线游戏,物联网,智能设备和边缘AI / ML的兴起,边缘计算将在2021年及以后成为一个巨大的市场。边缘计算将在2021年成为关键技术的另一个关键原因是5G移动设备的兴起。

在2021年,两组行业将争夺Edge计算的市场份额。一组将是公共云提供商,例如Amazon,Microsoft,Google。

再次重申,亚马逊是提供许多服务(例如AWS Snow系列,AWS IoT Greengrass)的领导者。Microsoft还通过Azure Stack Edge,Azure Edge Zone提供边缘服务。Google还通过Google Anthos将其数据中心服务移交给了最终用户。

另一类是已经具有边缘基础架构的行业,例如电信公司,数据中心提供商,网络提供商。如果他们能够快速行动并利用自己的优势(即现有的基础架构),那么他们将有机会在这里发挥领导作用。混合云提供商RedHat(IBM)将凭借其混合云平台OpenShift和参与OpenStack成为主要参与者。最近,三星与IBM合作开发边缘计算解决方案。

边缘状态是主动制定边缘计算开放标准,以使边缘计算供应商中立。最近,《边缘状态》成为Linux基金会的一部分。与CNCF一样,《边缘状态》也将在2021年及以后获得更多发展。

为2021年及以后的边缘计算中的许多创新,合并,并驾齐驱和标准化做准备。

3. 云:AWS处于领先地位,但多云将是未来

在公共云供应商中,毫无疑问谁是领导者。2020年第三季度,亚马逊以32%的市场份额领先公有云市场。

微软凭借其云产品又迎来了强劲的一年,并在2020年实现了48%的年增长率.2020年第三季度,微软的市场份额为19%,而2019年第三季度的市场份额为17%。

截至目前,谷歌是第三大公共云提供商,其在2020年第三季度的市场份额为7%。

在2021年,亚马逊和微软将分别保持第一和第二的位置。但是,阿里巴巴将在2021年超过第三名,因为它在2020年第三季度的市场份额中仅次于Google,仅次于Google。

此外,多云计划将在2021年获得更大的发展势头。许多公司也开始采用多云战略。CIA最近将其云合同授予了多个供应商,而不是单个供应商。

到目前为止,亚马逊还不愿意加入多云计划以保护其市场份额。但是,正如我们十年前在Microsoft上所看到的那样,整个行业和社区都比最大的单个公司还大。最近,亚马逊默默地加入了多云计划。

云原生计算基金会(CNCF)在多云运动中起着关键作用,可以说已经超越了Linux基金会。在2021年,我们可以看到CNCF的增长更多。此外,像HashiCorp这样的多云服务提供商将在2021年变得更加重要。

一些出色的项目还提供与流行的特定于供应商的特定Cloud Services的API兼容性,例如MinIO(提供与AWS S3兼容的Object Storage)。在2021年,将会有诸如MinIO之类的更多举措,使我们能够轻松提升和转移流行的供应商锁服务。

对于整个行业来说,这是个好消息,因为我梦想着一个公司可以无缝地将应用程序部署在多云中的世界。

4. 容器化:Kubernetes为王,而Docker将淡出

容器化是云本机IT的核心技术,无论是公有云,私有云,还是边缘计算。几年来,Kubernetes已经确立了自己作为领先的容器编排和管理技术的地位。就像Linux以前统治数据中心一样,Kubernetes统治着公共云和私有云领域。最初,谷歌是领导Kubernetes的领导力量,但是现在几乎所有的Giant Tech公司都将其力量放在Kubernetes后面。

所有主要的公共云提供商现在都在提供托管的Kubernetes服务(Amazon EKS,Azure AKS,Google GKE)以及托管的容器化服务。另一方面,RedHat通过OpenShift在私有云中提供托管Kubernetes服务。

在2021年,我们将看到更多采用Kubernetes的方法,因为它是混合云或多云策略的核心组件。AI / ML,数据库,数据平台,无服务器和边缘计算等非传统企业应用程序也将迁移到Kubernetes。

另一方面,Docker逐渐失去了其作为Conternization Technology的魅力。已经有一些标准化容器格式和运行时的计划,其中有两个在最近几年受到了极大的关注。一种是Kubernetes领导的容器运行时接口(CRI)。另一个是Linux基金会牵头的开放容器倡议(OCI)。

最近,Kubernetes已弃用Docker,转而支持CRI,并计划在即将到来的Kubernetes版本(1.22)中于2021年末完全删除Docker。

由于Kubernetes是容器化生态系统中重达800磅的大猩猩,因此2021年将是Docker终结的起点。从好的方面来看,CRI和OCI将在2021年获得更大的发展动力,尤其是基于CRI的集装箱将在2021年获得巨大的推动力。

5. 计算:量子计算将获得发展动力

量子计算是此列表中最具革命性的技术。像数字计算机一样,它具有影响每个部门的潜力。我创建了2030年代最热门的技术列表,而Quantum Computing排名第一。

透视一下:如果我们将当今最先进的超级计算机视为普通人,例如国际象棋玩家或8年级数学学生,那么量子计算就是像Magnus Carles这样的Supergenius,他可以玩50副平均国际象棋。一次或天才的数学家像欧拉这样的球员。

2020年,量子计算领域取得了一些重大突破和进步。霍尼韦尔在2020年6月宣称自己创造了功能最强大的量子计算机,超越了谷歌之前的记录。

仅几天前,来自中国科学技术大学(USTC)的一组科学家表明,量子计算机可以在特定任务(高斯玻色子采样)上轻松击败最先进的经典超级计算机。

许多政府和技术巨头都在探索和投资量子计算。Google和IBM是该领域中最大的两家。Google甚至启动了一个开源库TensorFlow Quantum(TFQ),用于对Quantum Machine学习模型进行原型设计。

亚马逊还通过其Amazon Braket Cloud Service提供托管量子计算服务。

考虑到巨大的兴趣及其无限的可能性,2021年的《计算机量子》将有一些突破和令人jaw目结舌的发现。

如果您想探索量子计算,那么可以使用开源SDK qiskit,它也提供免费课程。

6. 区块链:过山车将继续

区块链(分布式账本)也是最近开发的主要破坏性技术之一。从技术角度来看,它具有改变整个行业的潜力。尽管加密货币在普及该技术方面发挥了主要作用。在Gartner的"炒作周期"曲线的"通胀预期峰值"中,该技术也发挥了重要作用。

许多流氓实体利用比特币的流行性,并创建了骗局项目,以欺骗想要在短时间内致富的普通百姓。现在,区块链正在经历炒作周期曲线的"幻灭低谷"。此外,政府正在干预加密货币以防止欺诈。最近,中国政府没收了一个加密货币骗局" Plus Token Ponzi"。

Facebook在2019年发布了Cryptocurrency Libra,但在2020年受到了巨大的监管压力。

以太坊等其他开源区块链正在将代码放入区块中,从而有可能将其用作智能合约,这是区块链的未来。

到2021年,区块链将更多地用作智能合约机制,并有望进入"启蒙运动"阶段。随着中国将其雄心勃勃的500万亿"新基础设施"计划纳入其中,区块链将在2021年获得重大推动。

7. 人工智能:人工智能将为所有人服务

作为近来最热门的技术之一,人工智能在2020年也取得了许多突破。另一个有趣的趋势是,人工智能以"人人享有AI"的口号开始慢慢进入所有领域。

在自然语言处理领域,GPT-3是2020年5月最大的突破。美国公司OpenAI创建了GPT-3,这使得使用深度学习创建类似于人的文本成为可能。仅四个月后,使用GPT-3撰写了以下《卫报》文章,整个世界同时感到惊讶和震惊。

2021年,自然语言处理将取得突破,人工智能将在其中编写文章或编写小型软件程序。

另一个有趣的开发是AutoML 2.0,它支持自动化功能工程。到2021年,全周期AI自动化将取得重大进步,人工智能将进一步民主化。

人工智能并非一帆风顺,道德的人工智能正变得越来越受关注。AI的另一个主要趋势是可解释的AI,这将需要解释为什么AI做出了某个决定。到2021年,随着欧盟制定法规解释AI的决定,这些领域将取得重大进展。

人工智能还将在2021年及以后的航空业中得到广泛采用。就在几天前,美国空军使用AI作为副驾驶员驾驶飞机。

未来,人工智能还将成为中国基于数字基础设施的核心。

预计2021年人工智能将有许多令人振奋的创新和民主化。

8. 深度学习库:它将是TensorFlow 2.0和PyTorch

Google和Facebook是深度学习和神经网络领域的两个主要参与者。Google的主要业务是搜索功能,并且是自然语言处理领域的领先创新者。Facebook的主要业务是社交网络,它必须处理图像,视频和文本。在图像处理方面,Facebook是众多创新技术的领导者。

谷歌的TensorFlow是深度学习领域的领先图书馆,但2016年Facebook发布PyTorch时一切都发生了变化。PyTorch使用动态图代替静态图(由TensorFlow使用),并且对Python更友好。谷歌对此做出了回应,在2019年创建了TensorFlow 2.0,该版本复制了许多PyTorch功能(动态图,Python友好性)。它还可以与Google的Collab(一款非常强大的现代笔记本电脑)完美配合。从那时起,Google享受了TensorFlow 2.0受欢迎程度的回升。根据2020年Stack Overflow开发者调查,TensorFlow目前是最受欢迎的深度学习框架:


> Source: Stack Overflow Developer Survey, 2020

另一方面,开发人员喜欢与PyTorch合作,以获取更好的开发人员人体工程学设计,因为它更受开发人员的喜爱:


> Source: Stack Overflow Developer Survey, 2020

同样在2021年,TensorFlow 2.0和PyTorch将成为企业和社区的"首选"库。拥有现有TensorFlow代码库或想要使用Collab Notebook的公司应使用TensorFlow 2.0。深度学习新手或想要继续使用Juypter Notebook的公司或个人应选择PyTorch。

9. 数据存储:一种尺寸不会填充全部

现代数据库环境充满了选择和广泛的变化。我们有经典的SQL数据库,主要是四大数据库:MySQL,Oracle,MS-SQL,PostgreSQL。我们还有NoSQL数据库,它主要包括数据库系列:文档数据库,键值数据库,宽列数据库,时间序列数据库,搜索数据库,图形数据库。还有许多其他类型的数据存储。

最近,我们看到了所谓的全球分布式ACID事务数据库或NewSQL数据库的热潮。Google凭借其Google Spanner(首个水平可读写ACID兼容水平数据库)在这里处于领先地位。亚马逊还具有可水平扩展且符合ACID要求的数据库Amazon Aurora,该数据库提供几乎所有SQL功能,但不提供水平写入扩展。在超大规模云提供商之外,CockroachDB还是一个非常杰出的NewSQL或分布式SQL数据库。

到2021年,数据存储生态系统将保持不变,并具有许多选择。不会有可以满足所有目的的Master数据库。同样在2021年,经过仔细考虑,选择正确的数据库将是一项非常具有挑战性的任务。

许多流行的数据库已更改其许可证(MongoDB,Cassandra,Redis,Kafka),因为超大规模云提供商(尤其是亚马逊)滥用了其创新技术并赚了钱而没有偿还。这一趋势将在2021年持续下去,其他初创公司或创新型公司将使用限制性更强的许可证来保护自己免受恶意云提供商的侵害。

10. 数据密集型计算:Spark将继续保持领先地位

仅在几年前,Hadoop是数据密集型计算或分布式批处理作业的默认选择。Apache Spark当前是首选的供应商中性分布式批处理作业平台,在大多数情况下几乎替代了Hadoop。

这一趋势将在2021年持续下去,Spark将被用作数据密集型计算的首选平台。Spark是一个基于JVM的系统,占用大量资源,您将获得巨额的Cloud费用。但不幸的是,目前还没有资源节约型的Spark强大和成熟的框架。

所有主要的云提供商都拥有自己的Cloud Native解决方案,以进行数据密集型计算。我的两分钱建议是在2021年使用Spark over Cloud特定解决方案,以避免供应商锁定。

11. 实时流:Flink将是显而易见的选择

近年来,随着企业抛弃传统的Lambda体系结构,转而支持实时流处理框架,实时流变得越来越流行。

另外,这里存在两种类型的框架。一个是由Spark Streaming领导的基于Micro-Batch的平台。另一个是由Apache Flink领导的低延迟流处理平台。

对于需要实时流传输的场景(欺诈检测,异常检测,基于规则的警报,实时数据的临时分析),Apache Flink排除了Spark Streaming。

所有Hyperscale云提供商都提供自己的解决方案。我建议您在2021年选择基于Spark的Flink或专有的云解决方案,因为它在实时流处理方面具有无与伦比的功能。

12. 数据平台:其他玩家将跟随Snowflake

现代数据架构非常复杂。它包含数据源,ETL管道,数据仓库,数据湖,数据分析工具以及许多其他组件。这是企业数据平台(ABM AMRO的数据平台)的示例使用案例:


https://medium.com/abn-amro-developer/abn-amros-data-integration-architecture-f33506a211c3

Snowflake通过提供一个集中式数据源,一个平台并在其上构建许多不同的工作负载,彻底改变了现代数据体系结构。在经典体系结构中,数据需要在不同的阶段移动,但是Snowflake中只有一个"数据的真实来源"。

对于所有人来说,这都不是完美的用例。但是,对于许多人来说,它将使数据平台和数据仓库民主化并增强其功能。甲骨文首席执行官拉里·埃里森(Larry Ellison)分享了它已经动摇了数据仓库市场。

我希望在2021年能有更多的创新,使Snowflake像一个单一的企业级数据平台一样。对于许多公司来说,这将是一个巨大的帮助和改变游戏规则。

13. 快速的应用开发:低代码/无代码将扩展

快速的数字化转型在软件工程师的供需方面造成了巨大的差距。尽管越来越多的新开发人员加入该行业,但这还远远不够。近年来,"低代码/无代码"计划正在获得发展。

市场上有许多低代码/无代码平台,主要是在Web开发中,如Bubble。他们的成功也为其他领域的LCNC开发铺平了道路:无代码应用程序开发,无代码AI,无代码机器学习。LCNC工具可以促进业务或具有出色创意的人。

而且,正如我去年所预测的,公共云提供商正在提供LCNC服务。微软提供Power Apps,谷歌提供AppSheet,AWS提供Honeycode作为LCNC平台,以快速构建应用。

在2021年,LCNC将成为众多创新,合并和收购的热门领域之一。如果您是个有创意的个人或企业,请注意2021年的LCNC。

14. 软件架构:微服务,巨石架构,无服务器将共存

近年来,微服务架构已成为大规模企业应用程序开发中的首选。但是,设计微服务应用程序比"一种尺寸适合所有人"的整体应用程序要复杂得多。正如我在以下文章中列出的那样,微服务架构需要一套最佳实践。

像任何其他软件体系结构一样,微服务也有其出色的用例和失败的极端案例。正如我在这里总结的,它还需要一组设计模式。

近年来,由于微服务架构的复杂性和在某些用例中的失败,人们对此表示强烈反对。伟大的Kelsey Hightower在以下Tweet中总结了对微服务的批评:

它与我们几年前看到的整体建筑受到批评并被认为是过时的趋势形成鲜明对比。实际上,Monolithic Architecture也是一种很棒的体系结构,正如我在以下文章中所述,它最适合其中。

近年来,另一种备受关注的软件架构是无服务器架构。亚马逊通过其突破性的AWS Lambda服务开创了无服务器计算服务的先河,该服务由开发人员仅编写代码,而服务提供商则管理服务器。它也是一种被某些人大肆宣传而又被其他人批评的架构。像Monoliths和Microservices一样,Serverless也不是Silver Bullet,应该在适合的地方使用(例如,事件驱动和突发负载)。

在2021年,所有软件体系结构(Monolith,微服务,无服务器)将共存,因为它们都有自己的用例,优点和缺点。我建议选择微服务来进行大规模企业开发(传统上使用SOA),使用Monoliths进行小规模开发,选择无服务器来进行事件驱动和突发负载。

15. 编程(主流):Python和JavaScript将引领潮流

近年来,编程语言格局也正在发生重大变化。传统的重量级编程语言正在将市场份额转移到更简单且对开发人员友好的编程语言上。2020年1月,我对需求型语言进行了广泛的分析,并将Python和JavaScript分别放在第一和第二位。

最后,最受欢迎的编程语言排名网站TIOBE承认了这一变化,并将Python置于Java之上。

随着软件开发行业的蓬勃发展以及大量新开发人员的加入,更简单,对开发人员友好的编程语言将在2021年变得更加流行。

Python是数据科学中排名第一的编程语言,几乎是除底层编程之外的所有其他领域中的排名第二或第三的语言。

JavaScript是Web开发中无可争议的第一语言,并且在包括后端开发在内的其他领域也越来越流行。对于初学者来说,这也是一种完美的语言。

Java正在逐渐失去其作为最流行的编程语言的流行性。但是,凭借其传奇性的向后兼容性和可喜的变化(6个月的发布周期,polyglot虚拟机GraalVM),它将继续成为企业软件开发中的第一选择。

C ++是另一种主流编程语言,近年来正在发生重大变化。C ++ 20仅在几天前发布,它将彻底改变C ++的编程方式。它是近年来最具破坏性的C ++发行版之一,并可能在2021年及以后对它的普及产生巨大影响。

到2021年,主流编程语言将保持自己的地位,尽管它们会受到现代编程语言的压力。

16. 编程(现代):Rust终于到来

过去几年中,编程语言领域的另一个有趣趋势是现代编程语言的兴起。较旧的语言已经不堪重负,无法通过添加越来越多的功能(C ++)来快速移动(Java)或变得更加臃肿和令人生畏。

现代和较新的语言不再需要繁重的工作,可以满足当今开发人员的需求。他们中的大多数人专注于开发人员的人机工程学,并支持现代功能,例如类型推断,无效安全性,表达性和简洁性。他们中的许多人还旨在利用现代硬件和现代基础架构(云,多核,GPU,TPU)。

正如我在以下文章中所预测的那样,由Rust,Go,Kotlin,Swift,TypeScript领导的现代编程语言日渐流行。

由于它们是增长最快的语言之一,这种趋势也将在2021年继续。

其中,Rust将在2021年取得突破,因为该行业终于注意到了这一点。根据Stack Overflow开发人员调查,在过去的五年中,它是最受欢迎的编程语言:


> Source: Stack Overflow Developer Survey, 2020

对于安全性敏感和复杂的项目,Tech Giants最终使用Rust而不是C / C ++。微软最近宣布,他们将使用Rust修复安全错误。

就在几周前,亚马逊宣布对Rust进行大量投资,并在此说明了理由。

Google的Go语言已经成为主流和公认的编程语言。Go 2版本计划进行许多改进,将来它将变得更加流行。

JetBrain的Kotlin已经将自己确立为JVM生态系统中第二流行的类型化编程语言。在Android App开发中,它已经超越了Java。

微软的TypeScript已将自己牢固地确立为JavaScript的替代类型。最近,随着许多复杂的项目(例如Deno,Vue.js)更喜欢TypeScript而不是JavaScript,它的受欢迎程度有了巨大的飞跃。

苹果公司的Swift已经取代了Objective-C,成为macOS和iOS中的首选语言。它还看到其他领域的采用。

在科技巨头的支持下,预计包括Rust在内的现代编程语言将在2021年获得更多的关注,普及和使用。

17. 客户端Web框架:React将继续领跑

大多数面向用户的企业应用程序是Web或移动应用程序。在Web开发中,基于JavaScript / TypeScript的客户端Web框架已经占据了主导地位。趋势是将JavaScript框架用于UI开发,将服务器端框架用于后端开发,其中前端和后端是独立的服务。

Facebook的React是客户端网络框架中的领导者。它是行业中引领潮流和使用最广泛的框架。如果您想进一步了解基于JavaScript的客户端框架,则可以阅读以下文章。

到目前为止,React是下载次数最多的客户端JavaScript框架,如下所示:


> Source: NPM trends

尽管React不是最受欢迎的Web框架,但该荣誉又归功于另一个基于JavaScript的Web框架Vue.js:


> Source by Author

它也是中国排名第一的框架,因为Vue.js(Evan You)的创建者是中国前Google开发人员。不幸的是,Vue.js在美国/欧洲的采用率相对较低。

Google的Angular落后于React和Vue.js,但仍然是一个可靠的框架。但是,最近最革命的Web框架是Svelte。与其他框架不同,Svelte是一个非运行时框架,专注于编译步骤。

在2021年,所有主要的基于JavaScript的框架都将相互学习,并从其他框架中适应功能。他们将在2021年进一步融合。

18. 服务器端Web框架:适用于企业的Spring和ASP.NET Core

服务器端框架是提供端到端Web开发的端到端框架,包括通过服务器端渲染的视图层。但是,正如已经提到的,现代的趋势是仅将它们用于后端。

基于JVM的Spring框架是企业开发中排名第一的服务器端框架。它还提供了开发大型和复杂应用程序的所有必要功能:控制反转,依赖注入,云原生开发,响应式和事件驱动的应用程序开发,快速应用程序开发。同样在2021年,Spring将仍然是企业的第一后端框架。在上一篇文章中,我将Spring作为服务器端Web框架的第一名。

微软的ASP.NET Core是另一个引人注目的多语言Web框架,可与流行的JavaScript框架(React,Vue.js和Angular)无缝协作。在2021年,ASP.NET Core将成为企业服务器端开发的主要参与者。

许多初创公司和小型公司希望拥有一个包括View层在内的端到端框架,以进行快速的应用程序开发。基于Python的Django,PHP Laravel和Ruby on Rails在2021年将是它们的绝佳选择。

19. 应用程序开发:本机应用程序将继续占主导地位

智能手机现已成为我们日常生活的一部分。智能手机用户数量已经是35亿,明年将达到38亿:


> Source: Statista

因此,移动应用程序对于最终用户,特别是对年轻一代而言,变得越来越重要。

在移动应用程序开发中,有四个主要趋势:本机应用程序开发,跨平台应用程序开发,混合应用程序开发和基于云的应用程序开发。

本机应用程序开发可提供最高的灵活性,并具有最佳的性能和用户体验。但是开发成本最高,因为企业需要保留两个独立的团队。

跨平台App开发正变得越来越流行,因为几乎相同的代码库可用于iOS和Android App开发。尽管开发成本很低,但它的灵活性较差,性能不如Native应用程序。

近年来,基于云的应用程序变得越来越流行,其中数据和主要业务逻辑仍保留在云中。开发了特定于设备的瘦客户端,该客户端连接并从云中获取数据。虽然对于精通数据的应用程序来说是更好的选择,但对于常规App开发而言,它并不是主流。

尽管跨平台应用程序开发正在赶上,但本机应用程序开发仍然是企业进行常规应用程序开发的更好选择。在2021年,企业将更喜欢本机应用程序开发,而初创公司和小型公司将更喜欢跨平台应用程序开发。

20. 跨平台应用程序开发:React Native将占主导地位,但Flutter将赶上

跨平台应用程序开发由于价格便宜而变得越来越流行。市场上有许多跨平台应用程序开发平台,但Flutter和React Native是领导者:

Facebook的React Native基于最流行的基于JavaScript的Web开发框架React。它的口号是"学习一次,随处写"。Facebook正在积极开发React Native,他们正在与27亿Facebook用户一起测试其功能。如果公司已经具有用于Web开发的React和用于应用程序开发的React Native,则他们可以在Web和移动开发之间共享组件和代码库。另外,React Native基于JavaScript,JavaScript是最流行的编程语言之一。当前,React Native比Flutter更为流行,如下所示:


> Source: Stack Overflow Developer Survey, 2020

在2021年,React将主导跨平台应用程序开发,因为React和React Native性能将有重大更新。

Google的Flutter是一个相对较新的框架,但近年来变得非常流行。它提供了功能强大的UI工具包,可通过一个代码库构建漂亮的,本机编译的移动,桌面和Web应用程序。但是,Flutter还不是像React这样的Web开发中的主要框架。Flutter使用了现代的编程语言Dart,它是增长最快且生产力最高的编程语言之一。在性能方面,Flutter优于React Native。它还提供了更好的开发人员人体工程学,并且开发人员喜欢使用Flutter:


> Source: Stack Overflow Developer Survey, 2020

与Facebook相比,Google将所有精力都放在React Native上,而Google在Web和App开发中拥有许多框架(例如Angular for Web),而不是将所有精力都放在Flutter和Dart上。

综合考虑所有因素,我预测React Native将在2021年超越Flutter,因为Facebook计划在React生态系统(Achille's Hill for React Native)中进行重大性能改进。

21. API:用于业务应用程序的REST

近年来,微服务架构和无服务器变得越来越流行。微服务或纳米服务需要进行通信,通常,在事件驱动的异步通信上使用同步通信。甚至传统的Monoliths也通过同步通信进行通信。

REST是2020年最主要的API技术。REST是基于Web技术的通信标准。现在已经有相当一段时间了(20年)。REST和SOAP几乎同时出现,但是在SOAP被视为传统技术的情况下,REST仍然占统治地位。无论是大型企业还是小型初创企业,REST无处不在。同样在2021年,REST将继续占据主导地位。

API领域也有一些优秀的候选人。最突出的是Google的gRPC。与REST不同,gRPC是RPC协议,例如SOAP。Google从较早的RPC协议中吸取了教训,并创建了适合现代软件开发需求的gRPC。gRPC代替JSON,使用高性能的消息传递格式协议缓冲区(也由Google开发)。结果,与REST相比,gRPC的性能更高,可读性更差。在机器对机器通信中,这是显而易见的选择。

Facebook的GraphQL是另一种越来越受欢迎的API技术,尤其是对于UI开发人员而言,它很受欢迎。UI通常需要对后端进行大量API调用,以获取其所需的所有数据。GraphQL允许聚合API以减少UI和后端之间的聊天通信。GraphQL的一个主要缺点是它不适用于高安全性问题开发。

这三者实际上有各自独立的用例,并且可以相互补充,并且这种趋势将在2021年继续。

结论

在这里,我使用当前的趋势,数据和事实对2021年最重要的软件开发趋势进行了21个预测。整个软件开发行业规模更大,而且我无法涵盖许多重要领域。

另外,我已经简要讨论了一些主题,例如,数据存储,这需要单独的文章。另一方面,我已经对某些主题进行了更详细的介绍。另一个有趣的事实是四个技术巨头:谷歌,Facebook,亚马逊和微软如何在软件开发的几乎所有领域占据主导地位。我希望本文能对您在2021年之前的软件开发趋势提供360度的概述。

posted on 2021-01-05 09:56 paulwong 阅读(353) 评论(0)  编辑  收藏 所属分类: 每年预言


只有注册用户登录后才能发表评论。


网站导航: