新闻中心


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

    关于衡水软件开发职业来说,2020 年是含义严重的一年,许多范畴都取得了严重打破。本文将依据来自认证来历的数据、图表和现实,依据曩昔来猜测未来。假如你想要了解软件职业在 2021 年会有哪些改变,请阅览本文,本文涵盖了云、边际核算、容器、量子、区块链、人工智能、深度学习、批处理、流式处理、数据库、编程、软件架构、Web、App、低代码、无代码等重要方向。

     

    本文最初发布于 Towards Data Science(《21 Predictions about the Software Development Trends in 2021》),由 InfoQ 翻译并分享。

    2020 年是近代史上史无前例的一年。人类在曩昔一百年中都没有阅历过像 COVID-19 这样的全球性大盛行病。它影响了咱们星球上一切的国家、部分和简直一切的个人。

    好音讯是咱们立刻就会具有疫苗,终于能够满怀达观和希望迎接新的 2021 年。关于软件开发职业来说,2020 年是含义严重的一年,在许多范畴都取得了严重打破。COVID-19 显着加快了数字化转型,而且 2021 年的数字化转型趋势会更显着。

    在软件开发职业,一年简直就是一光年。我没有更新旧帖子,而是创立了一个新的猜测清单,猜测 2021 年软件开发职业的重要技能趋势。

    做猜测是一项有危险的使命。可是我会运用来自认证来历的数据、图表和现实,依据曩昔来猜测未来。假如你想要了解软件职业在 2021 年有哪些改变,请阅览本文。

     

    1.会集式基础设施:云,无处不在的云

    没错,是河北云米的云。在 COVID-19 期间,大部分职业遭受了沉重的冲击,虽然只要少数职业。云是向阳职业,在大盛行期间,它实际上比以往任何时候都更强大。假如在云运用方面存在任何疑问和不确定性,COVID-19 现已消除了这一点。

    像 Corona 这样的全球性灾祸标明,咱们不仅需求云晋级规模,也需求下降规模,例如,当咱们的服务需求显着下降时。想想旅游和运输职业,他们不得不维护昂贵的数据中心,虽然他们的商场下降了 90%。

    Forrester 猜测,全球公有云 IT 基础设施将在 2021 年添加 35% 至 1200 亿美元:

    Amazon to help 29 million people grow their tech skills with free cloud computing skills training

    https://go.forrester.com/blogs/predictions-2021-cloud-computing-powers-pandemic-recovery/

     

    2.涣散式基础设施:边际核算将出现指数级添加

    在公有云中,咱们希望有一个会集的数据中心来供给数据和核算才能。但在许多场景中,咱们有相反的需求,例如,数据和核算才能接近终端用户。有些是十分低的推迟(5 到 20ms)、高带宽、监管原因、实时用例、智能且强大的终端设备等等。

    虽然边际核算是一个老概念,而且咱们现已在内容交给网络 (Content Delivery Network,CDN) 中运用边际核算,但近年来它正变得越来越盛行。跟着互联车辆(自动汽车、无人机)、在线游戏、物联网、智能设备和边际 AI/ML 的鼓起,边际核算将在 2021 年及今后成为一个巨大的商场。边际核算将在 2021 年成为要害的另一个原因是 5G 移动设备的鼓起。

    2021 年,两个职业集团将争夺边际核算的商场份额。其间一个集团是公有云供给商,例如亚马逊、微软、谷歌,如下所述:

    Out on edge: The new cloud battleground isn't in the cloud at all - SiliconANGLE

    https://siliconangle.com/2020/12/01/edge-new-cloud-battleground-isnt-cloud/

    在这方面,亚马逊是 AWS Snow family、AWS IoT Greengrass 等许多服务的领导者。微软也供给 Azure Stack Edge、Azure Edge Zone 等边际核算服务。谷歌也运用 Google Anthos 将它的数据中心服务搬运到终端用户。

    另一个集团是现已具备边际基础设施的职业,例如电信公司、数据中心供给商、网络供给商。假如它们能够快速行动并运用它们的优势(例如,现有的基础设施),他们就有时机在这方面发挥领导作用。混合云供给商 RedHat(IBM)凭仗其混合云渠道 OpenShift 和 OpenStack 的参加,将成为这儿的要害选手。最近,三星与 IBM 合作开发边际核算解决方案:

    Samsung, IBM to Develop Edge Computing, 5G and Hybrid Cloud Solutions for Industry 4.0

    https://www.thefastmode.com/technology-solutions/18721-samsung-ibm-to-develop-edge-computing-5g-and-hybrid-cloud-solutions-for-industry-4-0

    State of the Edge 是为边际核算拟定敞开规范,使边际核算供货商中立的主张。最近 State of the Edge 成为了 Linux 基金会的一部分。与 CNCF 相同,在 2021 年及今后,State of the Edge 也将取得更多高光时刻。

    请为 2021 年及今后边际核算范畴的许多立异、融合、并肩战斗和规范化做好准备。

     

    3.云:AWS抢先,可是云会是未来

    在公有云供货商中,谁是领导者是毫无疑问的。在 2020 年第三季度,亚马逊以 32% 的商场份额领跑公有云商场,如下所示:

    Global cloud infrastructure market Q3 2020

    https://www.canalys.com/newsroom/worldwide-cloud-market-q320

    微软在其云产品方面体现强劲,在 2020 年实现了 48% 的年度添加。在 2020 年第三季度,微软的商场份额为 19%,而它在 2019 年第三季度的商场份额为 17%。

    现在,谷歌是第三大公有云供给商,在 2020 年第三季度的商场份额为 7%。

    在 2021 年,亚马逊和微软将别离坚持榜首和第二的位置。但是,阿里巴巴将在 2021 年替代谷歌,由于它在 2020 年第三季度的商场份额为 6%,仅次于谷歌。

    此外,多云主张将在 2021 年取得更大的开展气势。许多公司也转向了多云策略。中情局(CIA)最近将其云合同授予了多个云供货商而不是单个供货商:

    Microsoft, AWS among C2E cloud provider contract awardees - Washington Business Journal

    https://www.bizjournals.com/washington/news/2020/11/20/microsoft-aws-among-c2e-cloud-contract-awardees.html

    直到现在,亚马逊还不乐意参加多云主张来维护它的商场份额。但正如咱们 10 年前在微软身上看到的那样,整个职业和社区比最大的单个公司更强大。最近,亚马逊现已悄然参加了多云主张:

    AWS quietly enters the multi-cloud era

    https://www.protocol.com/manuals/new-enterprise/aws-multicloud-era

    云原生核算基金会(Cloud Native Computing Foundation ,CNCF) 在多云运动中扮演着要害人物,能够说现已超过了 Linux 基金会。在 2021 年,咱们能够看到 CNCF 有更多添加。此外,像 HashiCorp 这样的多云服务供货商会变得愈加重要。

    一些杰出的项目也供给了与盛行的特定供货商的云服务的 API 兼容性,例如 MinIO(供给兼容 AWS S3 的对象存储)。在 2021 年,将会有更多类似 MinIO 的主张,这样咱们就能够轻松地切换受欢迎的供货商的服务。

    这对整个职业来说是个好音讯,正如我愿望的那样,公司能够在多个云上无缝布置它们的运用程序。

     

    4.容器化:Kubernets称王,Docker将退场

    容器化是云原生 IT 的中心技能,无论是公有云、私有云,甚至是边际核算。几年来,Kubernetes 现已成为抢先的容器编列和办理技能。就像 Linux 之前统治着数据中心相同,Kubernetes 也统治着公有云和私有云。起先,谷歌是 Kubernetes 背后的主导力量,可是现在简直一切的巨子科技公司都支撑 Kubernetes。

    一切首要的公有云供给商现在都供给保管的 Kubernets 服务(Amazon EKS、Azure AKS、Google GKE)以及它们的保管容器化服务。另一方面,RedHat 正在运用 OpenShift 在私有云中供给保管的 Kubernetes 服务。

    在 2021 年,咱们将看到更多对 Kubernetes 的选用,由于它是混合云或多云战略的中心组件。非传统企业运用程序,如 AI/ML、数据库、数据渠道、无服务器和边际核算运用程序也将搬运到 Kubernetes。

    另一方面,Docker 正在渐渐失掉它作为一种现代化技能的魅力。现已有一些主张来规范化容器格局和运行时,其间两个在最近几年得到了巨大的推进。一方面是 Kubernetes 引领的容器运行时接口(Container Runtime Interface,CRI)。另一方面是 Linux 基金会引领的敞开容器主张(Open Container Initiative,OCI)。

    最近,Kubernetes 弃用 Docker 而支撑 CRI,并方案在 2021 年的后续 Kubernetes 版别(1.22)中完全移除 Docker:

    Kubernetes to deprecate Docker container runtime in v1.22 - SD Times

    https://sdtimes.com/kubernetes/kubernetes-to-deprecate-docker-container-runtime-in-v1-22/

    由于 Kubernetes 是容器生态体系中的巨子,2021 年将会是 Docker 完结的开始。从好的方面看,CRI 和 OCI 在 2021 年会取得更大的开展气势,尤其是依据 CRI 的容器将在 2021 年取得巨大的爆发式添加。

     

    5.核算:量子核算将得到推进

    量子核算是这个清单上最具革命性的技能。就像数字核算机相同,它有潜力影响每一个范畴。我现已创立了一份 2030 年代最热技能的清单,而量子核算排名榜首:

    10 Predictions about the Software Development trends in the 2030s

    https://towardsdatascience.com/10-predictions-about-the-software-development-trends-in-the-2030s-2fab86c5f661

    换个视点看:假如咱们把当今最先进的超级核算机当作正常人类,例如,一名象棋选手或许一个 8 年级数学学生,那么量子核算就是像马格努斯·卡尔斯(Magnus Carles)这样的超级天才,他能够一起和 50 名一般象棋选手对弈,或许像欧拉(Euler)这样的天才数学家。

    在 2020 年,量子核算有了一些严重的打破和前进。在 2020 年 6 月,霍尼韦尔(Honeywell)声称其创立了最强大的量子核算机,打破了谷歌之前发明的记载:

    Honeywell Says It Has Built The World's Most Powerful Quantum Computer

    https://www.forbes.com/sites/davidjeans/2020/06/19/honeywell-says-it-has-built-the-worlds-most-powerful-quantum-computer/?sh=b8772137cd46

    许多政府和科技巨子都在探究和出资量子核算。谷歌和 IBM 是这个范畴的两个最大的选手。谷歌甚至推出了一个开源库 TensorFlow Quantum (TFQ),用于制作量子机器学习模型的原型:

    Google launches TensorFlow for quantum computers

    https://thenextweb.com/neural/2020/03/09/google-launches-tensorflow-for-quantum-computers/

    亚马逊也经过其 Amazon Braket 云服务供给保管的量子核算服务。

    考虑到其巨大的利润和无限的可能性,2021 年核算机量子将有一些打破和惊人的发现。

    假如你想要探究量子核算,那么你能够运用开源 SDK qiskit,它还供给了免费课程:

    Qiskit Learn

    https://qiskit.org/learn/

     

    6.区块链:过山车仍将持续

    区块链 (分布式账本) 也是近年来开发的首要颠覆性技能之一。就技能而言,它有改变整个职业的潜力。虽然加密钱银在遍及这项技能方面发挥了重要作用。它在推进这项技能走向 Gartner 的炒作周期曲线(Gartner’s Hype Cycle curve)的“希望膨胀期”方面也扮演了首要人物。

    许多流氓实体运用比特币 Bitcoin 的盛行,制造诈骗项目来欺骗那些想在短时刻内暴富的一般人。现在,区块链正阅历炒作周期曲线的“幻灭低谷”。别的,政府正在干预加密钱银来防止诈骗。最近,我国政府查获了一个加密钱银诈骗“Plus Token 庞氏骗局”:

    Chinese Authorities Have Seized a Massive $4B in Crypto From PlusToken Scam - CoinDesk

    https://www.coindesk.com/chinese-authorities-have-seized-a-massive-4-billion-in-crypto-from-plustoken-scam

    Facebook 在 2019 年发布了它的加密钱银 Libra,但在 2020 年面临巨大的监管压力:

    Facebook is shifting its Libra cryptocurrency plans after intense regulatory pressure

    https://www.theverge.com/2020/3/3/21163658/facebook-libra-cryptocurrency-token-ditching-plans-calibra-wallet-delay

    其它开源区块链,如以太坊(Ethereum),正在将代码放入区块中,使它能够用于智能合约,这是区块链的未来。

    在 2021 年,区块链将更多地作为一种智能合约机制运用,有望进入“启蒙斜坡(Slope of Englishtenment)”阶段。区块链将在 2021 年取得严重爆发,我国现已将它纳入其雄心壮志的 50 万亿“新基建”方案:

    Blockchain Officially Included in China's 50 Trillion "New Infrastructure" Plan | NEWS.8BTC.COM

    https://news.8btc.com/blockchain-officially-included-in-chinas-50-trillion-new-infrastructure-plan

     

    7.人工智能:AI将惠及一切人

    作为近来最热门的技能之一,人工智能在 2020 年也取得了许多打破。另一个有意思的趋势是,人工智能开始以“全民 AI(AI for all)”的标语进入一切范畴。

    在自然言语处理范畴,GPT-3 是 2020 年 5 月取得的最大的打破。美国公司 OpenAI 创立了 GPT-3,使得运用深度学习创立类似人类的文本成为可能。仅仅过了 4 个月,当《卫报》用 GPT-3 编撰了以下文章时,全世界都一起为之震惊:

    A robot wrote this entire article. Are you scared yet, human? | GPT-3

    https://www.theguardian.com/commentisfree/2020/sep/08/robot-wrote-this-article-gpt-3

    在 2021 年,自然言语处理将取得打破性开展,人工智能将编撰文章或编写小型运用程序。

    另一个风趣的开展是 AutoML 2.0,它支撑工程自动化。在 2021 年,全周期人工智能自动化将取得严重开展,人工智能将愈加平民化。

    人工智能并不是没有偏见的,有道德的人工智能正变得越来越有吸引力。人工智能范畴的另一个首要趋势是可解说的人工智能,即人工智能为什么做出某种决议需求一个解说。在 2021 年,跟着欧盟对解说人工智能的决议拟定法规,这些范畴将取得严重开展。

    人工智能在 2021 年及今后也将在航空业得到广泛运用。就在几天前,美国空军用人工智能作为副驾驭来驾驭了一架飞机:

    U-2 Flies with Artificial Intelligence as Its Co-Pilot - Air Force Magazine

    https://www.airforcemag.com/u-2-flies-with-artificial-intelligence-as-its-co-pilot/

    人工智能也将成为未来我国数字基础设施的中心:

    AI is Key to China Infrastructure Plan, as is AI Talent

    https://www.enterpriseai.news/2020/06/24/ai-key-to-china-infrastructure-plan-as-is-ai-talent/

    预计到 2021 年,人工智能会有许多令人振奋的立异和平民化。

     

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

    谷歌和 Facebook 是深度学习和神经网络范畴的两大主导者。谷歌的首要事务是查找才能,它是自然言语处理范畴的抢先立异者。Facebook 的首要事务是交际网络,它有必要处理图画、视频和文本。在图画处理范畴,Facebook 是技能领导者,有许多立异。

    出自谷歌的 TensorFlow 是深度学习范畴的抢先的库,可是 2016 年 Facebook 发布了 PyTorch 后一切都发生了改变。PyTorch 运用动态图而不是(TensorFlow 运用的)静态图,而且对 Python 愈加友好。作为回应,谷歌在 2019 年创立了 TensorFlow 2.0,复制了 PyTorch 的许多功用(动态图、对 Python 友好)。它还与谷歌的 Collab 完美结合(Collab 是一款十分现代且功用强大的笔记本)。从那时起,谷歌的 TensorFlow 2.0 就越来越受欢迎。现在,依据 Stack Overflow 开发者调研 2020,TensorFlow 是最盛行的深度学习结构:


    图片来历:Stack Overflow Developer Survey, 2020

    另一方面,开发人员喜欢用 PyTorch 作业,它以更好的开发人员工效学而更受开发人员的喜欢:


    图片来历:Stack Overflow Developer Survey, 2020

    在 2021 年,TensorFlow 2.0 和 PyTorch 将成为企业和社区的“首选”库。具有 TensorFlow 代码库或许想要运用 Collab 笔记本的企业应该运用 TensorFlow 2.0。刚进入深度学习或许想要持续运用 Juypter 笔记本的企业或个人应该挑选 PyTorch。

     

    9.数据存储:一个尺度不能填满一切

    现代数据库的远景充溢挑选和广泛的改变。咱们有经典的 SQL 数据库,首要是四大数据库:MySQL、 Oracle、 MS-SQL、 PostgreSQL。咱们也有 NoSQL 数据库,首要由一系列数据库组成:文档、键值对、宽列、时刻序列、查找、图。还有许多其它类型的数据存储。

    咱们最近看到了所谓的全球分布式 ACID 事务数据库或许 NewSQL 数据库。谷歌凭仗 Google Spanner 成为这个范畴的领导者,Google Spanner 是首个水平读 / 写可弹性的 ACID 兼容数据库。亚马逊也有一个水平可扩展 ACID 兼容数据库,Amazon Aurora,供给简直一切的 SQL 功用,但没有水平写入弹性。除了超大规模云供给商之外,CockroachDB 也是一个十分杰出的 NewSQL 或分布式 SQL 数据库。

    在 2021 年,数据存储生态体系将坚持现在的姿态,有许多挑选。没有一种数据库能够满足一切的意图。在 2021 年,挑选正确的数据也将是一个十分具有挑战性的使命,需求细心考虑。

    许多盛行的数据库现已修改了它们的答应 (MongoDB、 Cassandra、 Redis、Kafka),由于超级规模的云供给商,尤其是亚马逊,滥用了它们的立异,赚了钱却没有回报。这一趋势在 2021 年将持续,其它草创公司或立异型公司将运用更严格的答应来维护他们免受云供给商的掠取。

     

    10.数据密集型核算:Spark 将持续抢先

    就在几年前,Hadoop 仍是数据密集型核算或分布式批处理使命的默认挑选。Apache Spark 现在是供货商中立的分布式批处理使命渠道的首选,在大多数状况下简直替代了 Hadoop。

    这一趋势将在 2021 年持续,Spark 将被用作数据密集型核算的首选渠道。Spark 是一个依据 JVM 的体系,需求十分大的资源,你将得到一份巨大的云账单。但不幸的是,现在还没有一个资源节约型的结构能匹配 Spark 的才能和成熟度。

    一切干流的云供给商都有它们自己的云原生解决方案来进行数据密集型核算。我的个人主张是在 2021 年运用 Spark 而不是特定的云解决方案,以防止供货商锁定。

     

    11.实时流处理:Flink 将是显着的挑选

    近年来,跟着企业抛弃传统的 Lambda 架构,转而运用实时流处理结构,实时流处理正变得越来越盛行。

    此外,这儿存在两种类型的结构。一种是以 Spark Streaming 为中心的依据微批量的渠道。另一种是以 Apache Flink 为中心的低推迟流处理渠道。

    Apache Flink 在需求实时流处理(诈骗检测、异常检测、依据规则的警报、实时数据即时剖析)的场景中超越了 Spark 流处理。

    一切超大规模云供给商也供给了它们自己的解决方案。我主张在 2021 年挑选 Flink,而不是 Spark 或许专有云解决方案,由于它在实时流处理方面具有无与伦比的才能。

     

    12.数据渠道:其他人将追随 Snowflake

    现代数据架构适当杂乱。它包含数据源、ETL 管道、数据仓库、数据湖、数据剖析工具以及许多其它组件。下面是企业数据渠道(ABM AMRO 的数据渠道)的一个示例:


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

    Snowflake 经过供给一个会集的数据源、单渠道,以及在它上面构建许多不同的作业负载,从而彻底改变了现代数据架构。在经典架构中,数据需求在不同的渠道上搬运,但在 Snowflake 中只要一个数据的“信源”。

    这不是适用于一切状况的完美事例。可是关于大部分状况,这将遍及并赋能数据渠道和数据仓库。正如甲骨文的 CEO 拉里·埃里森(Larry Ellison)所说,它现已动摇了数据仓库商场:

    Oracle's Larry Ellison Admits Snowflake Is a Killer: 'It's Killing Amazon Redshift'

    https://cloudwars.co/oracle/oracles-larry-ellison-admits-snowflake-is-killing-amazon-redshift/

    在 2021 年,我预期更多的立异将为企业事例带来像 Snowflake 相同的单数据渠道。这关于许多公司将是一个巨大的协助并改变游戏规则。

     

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

    快速的数字化转型正发明巨大的软件工程师供需缺口。虽然越来越多的新工程师参加这个职业,但仍然不行。近年来,低代码 / 无代码主张的气势正越来越强劲。

    商场上有许多低代码 / 无代码渠道,首要是在 Web 开发范畴,例如 Bubble。它们的成功也为 LCNC 在其它范畴的开发铺平了道路:无代码运用程序开发、无代码人工智能、无代码机器学习。LCNC 工具能够经过如下所述的好主意促进事务或人员的开展:

    Low-code platforms will save your business. Here's how.

    https://www.techrepublic.com/article/low-code-platforms-will-save-your-business-heres-how/

    而且,正如我去年猜测的相同,公有云供给商正供给 LCNC 服务。微软供给 Power Apps,谷歌供给 AppSheet,AWS 供给 Honeycode 作为一个 LCNC 渠道来快速构建运用程序。

    在 2021 年,LCNC 将成为激烈竞争的范畴之一,有许多立异、合并和收购。假如你是一个具有伟大主意的个人或企业,请重视 2021 年的 LCNC。

     

    14.衡水软件开发架构:微服务、单体式、无服务器将共存

    近年来,微服务架构成为大型企业运用程序开发的首选。但是,规划微服务运用程序比规划“一刀切”单体运用程序要杂乱得多。微服务架构需求一组最佳实践,正如我在下面这篇文章中所列出的:

    Effective Microservices: 10 Best Practices

    https://towardsdatascience.com/effective-microservices-10-best-practices-c6e4ba0c6ee2

    像其它软件架构相同,微服务也有它拿手的用例和失利的事例。它还需求一套规划形式,我总结如下:

    Microservice Architecture and its 10 Most Important Design Patterns

    https://towardsdatascience.com/microservice-architecture-and-its-10-most-important-design-patterns-824952d7fa41

    最近,由于微服务架构的杂乱性和在某些用例中的失利,人们对它产生了激烈的反感。Kelsey Hightower 在下面的推特中总结了对微服务的批判:

    这与咱们几年前所看的趋势形成鲜明对比,其时单体架构遭到批判并被视为过时的。实际上,单体架构也是一种很好的架构,它特别合适我在下面这篇文章中说到的用例:

    Looking Beyond the Hype: Is Modular Monolithic Software Architecture Really Dead?

    https://towardsdatascience.com/looking-beyond-the-hype-is-modular-monolithic-software-architecture-really-dead-e386191610f8

    另一个近年来大肆宣传的软件架构是无服务器架构(Serverless Architecture)。亚马逊开创了无服务器核算的先河,推出了开创性的 AWS Lambda 服务,开发人员只编写代码,服务供给商保管服务器。这个架构也有人炒作,有人批判。像单体架构和微服务架构相同,无服务器架构也不是万能的,应该用在它合适的当地(例如,事件驱动和突发负载)。

    在 2021 年,一切的软件架构(单体架构、微服务、无服务器)都将共存,由于它们都有各自的用例和优缺点。我主张在大型企业开发中挑选微服务架构(传统上运用 SOA),在小型开发中运用单体架构,在事件驱动和突发负载中挑选无服务器架构。

     

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

    近些年,编程言语范畴也阅历了严重改变。传统的侧重的编程言语的商场份额正逐渐被更简略且对开发人员更友好的编程言语所占有。在 2020 年 1 月,我对需求中的言语进行了广泛的剖析,将 Python 和 JavaScript 别离放在榜首位和第二位:

    Top 10 In-Demand programming languages to learn in 2020

    https://towardsdatascience.com/top-10-in-demand-programming-languages-to-learn-in-2020-4462eb7d8d3e

    最后,最受欢迎的编程言语排名如果才能戒赌 TIOBE 承认了这一改变,并将 Python 置于 Java 之上:

    TIOBE Index: Python slithers ahead of Java for the first time

    https://developer-tech.com/news/2020/nov/06/tiobe-index-python-ahead-java-first-time/

    跟着衡水软件开发职业的蓬勃开展,以及许多新开发人员参加这个职业,更简略、对开发人员更友好的编程言语将在 2021 年更受欢迎。

    Python 是数据科学中排名榜首的编程言语,在除了底层编程之外的简直一切其它范畴也都是排名第二或第三的编程言语。

    JavaScript 是 Web 开发范畴毫无争议的头号言语,在其它范畴(包含后端开发)中也越来越盛行。它也是初学者的绝佳言语。

    Java 正渐渐丧失其作为最盛行的编程言语的受欢迎程度。但是,由于其传奇般的向后兼容性和不断更新(6 个月的发布周期,polyglot Virtual Machine GraalVM),它仍然是企业软件开发的首选编程言语。

    C++ 是另一个近年来发生了严重改变的干流编程言语。几天前刚刚发布了 C++20,它将完全改变 C++ 到现在的编程方法。这是近年来最具破坏性的 C++ 版别之一,将极大地影响其在 2021 年及今后的盛行度。

    在 2021 年,干流编程言语将坚持它们的位置,虽然它们会感遭到来自现代编程言语的压力。

     

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

    最近几年,编程范畴的另一个风趣的趋势是现代编程言语的鼓起。比较老的言语存在曩昔的包袱,不能快速变迁(Java),或许经过添加越来越多的功用而变得臃肿且令人望而却步(C++)。

    现代的比较新的编程言语没有曩昔的包袱,能够满足当今开发者的需求。它们大多十分重视开发人员的工效学,支撑现代功用,例如类型推理、null 安全性、表达力强、简洁。其间许多还被规划来运用现代硬件和现代基础设施(云、多核、GPU、TPU)。

    以 Rust、 Go、 Kotlin、 Swift、 TypeScript 为首的现代编程言语正日益盛行,正如我在下面这篇帖子中猜测的那样:

    Top 7 Modern programming languages to learn now

    https://towardsdatascience.com/top-7-modern-programming-language-to-learn-now-156863bd1eec

    这一趋势将在 2021 年持续,由于它们是添加最快的言语之一。

    其间,跟着职业的留意,Rust 将在 2021 年取得打破。在曩昔 5 年中,依据 Stack Overflow 开发者调研,它是最受喜欢的编程言语:


    图片来历:Stack Overflow Developer Survey, 2020

    科技巨子终于在安全敏感的杂乱项目中运用 Rust 而不是 C/C++。微软最近声明,他们将运用 Rust 来修正安全漏洞:

    Microsoft: Here's why we love programming language Rust and kicked off Project Verona | ZDNet

    https://www.zdnet.com/article/microsoft-heres-why-we-love-programming-language-rust-and-kicked-off-project-verona/

    就在几周前,亚马逊宣布大力投入 Rust 并解说了他们这样做的原因:

    Amazon AWS Invests In Rust

    https://www.i-programmer.info/news/98-languages/14183-amazon-aws-invests-in-rust.html

    谷歌的 Go 现已是干流且成熟的编程言语。跟着 Go 2 release 规划的许多改善,它将在未来取得更多人气。

    JetBrain 的 Kotlin 现已成为 JVM 生态体系中第二盛行的类型化编程言语。在 Android 运用开发中,它现已超过了 Java:

    Android's commitment to Kotlin

    https://android-developers.googleblog.com/2019/12/androids-commitment-to-kotlin.html

    微软的 TypeScript 现已成为 JavaScript 的类型化替代品。最近,跟着许多杂乱项目(例如 Deno、 Vue.js)挑选 TypeScript 而不是 JavaScript,它的盛行度大幅跃升:

    TypeScript Surges in GitHub Octoverse 2020 Report -- Visual Studio Magazine

    https://visualstudiomagazine.com/articles/2020/12/03/octoverse-2020.aspx

    苹果公司的 Swift 现已替代 Objective-C,成为 macOS 和 iOS 的首选编程言语。它在其它范畴也有被选用。

    在科技巨子的支撑下,预计包含 Rust 在内的现代编程言语将在 2021 年取得更多吸引力和遍及运用。

     

    17.客户端 Web 结构:React 将持续统治

    大多数面向用户的企业运用程序是 Web 运用或移动运用。在 Web 开发中,依据 JavaScript/TypeScript 的客户端 Web 结构现已占有主导位置许多年了。趋势是运用 JavaScript 结构进行 UI 开发,运用服务端结构进行后端开发,其间前后端是别离的服务。

    Facebook 的 React 在客户端 Web 结构中处于抢先位置。它是职业中引领潮流且运用最广泛的结构。假如你想了解更多关于依据 JavaScript 的客户端结构,能够阅览我下面这篇文章:

    Top 5 In-Demand JavaScript Frameworks for Front-End Development in 2020

    https://medium.com/javascript-in-plain-english/top-5-in-demand-javascript-frameworks-for-front-end-development-in-2020-a59c4340d082

    如下图所示,React 是现在下载量最多的客户端 JavaScript 结构:


    图片来历:NPM trends

    虽然如此,最盛行的 Web 结构并不是 React,而是另一个依据 JavaScript 的 Web 结构——Vue.js:


    图片来历:作者

    Vue.js 在我国也是头号结构,由于 Vue.js 的发明者(尤雨溪,Evan You)是一名华人前谷歌开发者。不幸的是,这种与我国的联系引起了大企业的安全担忧,Vue.js 在美国 / 欧洲的选用率比较低。

    谷歌的 Angular 落后于 React 和 Vue.js,但仍然是一个安稳的结构。但是,最近最具革命性的 Web 结构是 Svelte。与其它结构不相同,Svelte 是一个非运行时结构,专心于编译步骤。

    在 2021 年,一切干流的依据 JavaScript 的结构都将彼此学习,吸收其它结构的特性。在 2021 年,它们将愈加趋同。

     

    18.服务端 Web 结构:面向企业的 Spring 和 ASP.NET

    服务器端结构是端到端结构,供给端到端 Web 开发,包含服务端烘托的视图层。可是正如之前所说,现在的趋势是只在后端运用它们。

    依据 JVM 的 Spring 结构在企业开发范畴是排名榜首的服务端结构。它还供给开发小型和大型杂乱运用所需的一切必需功用:操控回转、依靠注入、云原生开发、响应式、事件驱动运用开发、快速运用程序开发。在 2021 年,Spring 仍将坚持企业的头号后端结构。在之前的一篇文章中,我将 Spring 作为排名榜首的服务端 Web 结构。

    Top 10 In-Demand Web Development Frameworks in 2021

    https://towardsdatascience.com/top-10-in-demand-web-development-frameworks-in-2021-8a5b668be0d6

    微软的 ASP.NET Core 是另一个引人留意图 Web 结构,与盛行的 JavaScript 结构(React、Vue.js、Angular)无缝协作。在 2021 年,ASP.NET Core 将成为企业服务端开发的首要选手。

    许多草创公司和小型公司都希望有一个包含视图层的端到端结构,以便快速开发运用程序。依据 Python 的 Django、 PHP Laravel 和 Ruby on Rails 在 2021 年将成为他们的绝佳选项。

     

    19.App 开发:原生 App 将持续占有主导位置

    智能手机现在是咱们日常日子的一部分。智能手机用户现已到达 35 亿,明年将到达 38 亿:


    图片来历:Statista

    因而,移动运用关于终端用户越来越重要,尤其是关于年轻一代来说。

    在移动运用开发范畴,有 4 个首要趋势:原生运用开发、跨渠道运用开发、混合运用开发和依据云的运用开发。

    原生运用开发供给了最高的灵敏性,具有最好的性能和用户体验。但由于企业需求保留两个独立的团队,因而开发本钱最高。

    跨渠道运用开发正变得越来越盛行,由于 iOS 和 Android 运用开发能够运用相同的代码库。虽然开发本钱低,可是不行灵敏,性能也不如原生运用。

    近年来,依据云的运用变得越来越盛行,其数据和首要事务逻辑保存在云端。特定设备的瘦客户端被开发来衔接云端并从中获取数据。虽然关于数据密集的运用程序是一个不错的挑选,但关于一般运用开发来说,它还不是干流。

    虽然跨渠道运用开发正迎头赶上,原生运用开发仍然是企业一般运用开发的更好的挑选。在 2021 年,一般企业将偏心原生运用开发,而草创企业和小公司将偏心跨渠道运用开发。

     

    20.跨渠道运用开发:React Native 将占有主导位置,但 Flutter 将迎头赶上

    跨渠道运用开发正变得越来越盛行,由于它的开发本钱比较低。商场上有许多跨渠道运用开发渠道,但 Flutter 和 React Native 是其间的领导者。

    Facebook 的 React Native 是依据最盛行的依据 JavaScript 的 Web 开发结构——React。它的标语是“一次学习,到处编写。”Facebook 正积极开发 React Native,用 27 亿 Facebook 用户测试其功用。假如一家企业现已用了 React 来进行 Web 开发和 React Native 来进行 App 开发,它们能够在 Web 和移动开发中共享组件和代码库。别的,React Native 是依据 JavaScript 的,而 JavaScript 是最盛行的编程言语之一。现在,React Native 比 Flutter 盛行得多,如下所示:


    图片来历:Stack Overflow Developer Survey, 2020

    https://insights.stackoverflow.com/survey/2020

    在 2021 年,React 将主导跨渠道运用开发,由于 React 和 React Native 的性能会有一个严重更新。

    谷歌的 Flutter 是一个相对比较新的结构,但近年来十分盛行。它供给了一个功用强大的 UI 工具箱,用来从单一代码库构建美丽的原生编译的移动、桌面和 Web 运用程序。但是,Flutter 还不像 React 那样是 Web 开发中的干流结构。Flutter 运用了一种现代编程言语——Dart,一种快速开展的效率十分高的编程言语。就性能而言,Flutter 比 React 有优势。它还供给了更好的开发者工效学,而且开发人员喜欢运用 Flutter 作业:


    图片来历:Stack Overflow Developer Survey, 2020

    https://insights.stackoverflow.com/survey/2020

    与 Facebook 全力支撑 React Native 不同,谷歌在 Web 和 App 开发方面有许多结构(例如,用于 Web 开发的 Angular),没有把一切精力都放在 Flutter 和 Dart 上。

    综上所述,我猜测 React Native 将在 2021 年持续抢先 Flutter,由于 Facebook 正方案对 React 生态体系(React Native 的致命缺点)进行严重性能提升。

     

    21.API: REST 面向事务运用

    微服务架构和无服务器近些年正变得越来越盛行。微服务或纳米服务需求通讯,一般,同步通讯用得比事件驱动的异步通讯多。即便传统的单体运用是经过异步通讯进行通讯的。

    REST 是 2020 年最首要的 API 技能。REST 是一种依据 Web 技能的通讯规范。它在职业中现已有适当一段时刻了(20 年)。REST 和 SOAP 简直一起出现,但当 SOAP 简直被认为是遗留技能时,REST 将持续统治。无论是大型企业仍是小型草创公司,都在运用 REST。在 2021 年,REST 仍将占有主导位置。

    在 API 开发范畴,也有一些优异的候选者。最杰出的是谷歌的 gRPC。与 REST 不同,gRPC 是一个类似 SOAP 的 RPC 协议。谷歌吸取了旧 RPC 协议的经验,创立了合适现代软件开发需求的 gRPC。gRPC 运用高性能的音讯格局 Protocol Buffers(也是由谷歌开发),而不是 JSON。因而,与 REST 相比,gRPC 性能更高、可读性更差。在机器对机器的通讯中,这是比较好的挑选。

    另一种越来越盛行的 API 技能,尤其是关于 UI 开发者,是 Facebook 的 GraphQL。一般,UI 需求对后端进行许多 API 调用来获取一切它所需的数据。GraphQL 允许聚合 API 来削减 UI 和后端之间的通讯。GraphQL 的一个首要缺点是,它不合适高安全性要求的开发。

    这三者实际上都有各自的用例,能够彼此补充,这种趋势将在 2021 年持续。


    22定论

    这儿,我运用了当时的趋势、数据和现实对 2021 年最重要的衡水软件开发趋势进行了 21 个猜测。整个软件开发职业要大得多,我无法涵盖一切重要的范畴。

    别的,我还简要地讨论了一些论题,例如数据存储,它需求一篇独自的文章。另一方面,我具体写了一些论题。另一个风趣的现实是,科技四巨子:谷歌、Facebook、亚马逊和微软,是如何主导简直一切的软件开发范畴的。我希望这篇文章能让你 360 度地了解 2021 年的软件开发趋势。