首页 > MAYA > 软件开发是什么行业-2022 年软件开发趋势的 22 个预测
2024
09-09

软件开发是什么行业-2022 年软件开发趋势的 22 个预测

采用公有云的主要问题之一是供应商锁定。一旦您将基础设施、存储和计算迁移到公有云供应商,您就被供应商锁定了。许多企业试图明智地使用多个供应商,以避免供应商锁定。不幸的是,这只会将企业锁定在多个供应商上,而不仅仅是一个。如果您不能在另一个公有云中使用一个公有云(如 CosmosDB、AWS S3、BigTable),就始终存在供应商锁定。

幸运的是,目前存在一种相反的趋势,即提供与各种公共云服务的 API 兼容的服务。MinIO(兼容 S3)、Aviatrix(云原生网络)、Volterra(分布式云服务)、LightOS(云原生存储)是众多致力于提供云中立性的服务之一。

此外,谷歌正在致力于将其流行的服务(BigQuery)引入其他公共云(AWS、Azure)。

4. 容器:Kubernetes 将退居幕后,Docker 将卷土重来

容器化是现代 IT 行业的关键技术。Kubernetes 在容器化的普及和民主化方面发挥了巨大作用。由于付出了巨大的努力、精心设计和实施,Kubernetes 现已成为一项坚如磐石的技术。它扮演着与 Linux 在服务器领域相同的角色。由于其前瞻性的设计(Operator、Volume),Kubernetes 可用于许多用例而不会引入颠覆性变化。

随着 Kubernetes 的成熟,未来几年 Kubernetes 的吸引力将会下降。别误会,Kubernetes 将成为现代软件开发的引擎。但我们会看到 Kubernetes 的新采用和用例受到更多关注,而 Kubernetes 本身将由于其成熟而缓慢发展。

与 Kubernetes 一样,Docker 在容器化领域也发挥了关键作用。不幸的是,该公司在 Docker 鼎盛时期难以将其货币化。Docker 最近宣布将从 2022 年开始采用新的订阅模式。

它的定价模式是可以承受的。考虑到它对现代云原生开发的贡献,我祝愿 Docker 的新订阅模式取得成功。

5.5. 网络安全 每个人都非常重视安全

对于初创公司或中型企业来说,网络安全就像“房间里的大象”。他们可以看到网络安全的必要性,但由于缺乏资源而无法妥善实施。只有大型企业才能负担得起专门的安全团队。

公共云供应商最重要的优势之一是他们已经实现了网络安全的民主化。现在,使用公共云服务,初创公司或中型公司可以轻松实现高度安全的应用程序。

公共云安全性的一个缺点是,如果它被破坏,那么数百万家公司将受到影响。2021 年,公共云中发生了一些引人注目的安全漏洞。

2022年,公有云和Linux将在安全性方面加大力度。

另一个关于安全性的问题,是目前的开源开发模式,一个开发者经常会利用业余时间开发一个重要的核心模块/库,不幸的是,如果这个模块/库被攻破,几乎全球所有的公司都会受到影响,其中一个备受关注的问题就是log4j漏洞,它将影响全球近一半的IT公司。

大公司是时候重新考虑当前的开源模式了,在这种模式中,开发人员维护核心软件却不获得任何经济利益或支持。

6. 区块链 终于,生活开始脱离加密货币了

区块链经常与加密货币联系在一起。每当发生与加密货币有关的欺诈事件时,区块链技术就会受到批评。区块链(分布式账本)是 21 世纪最具颠覆性的技术之一。加密货币是其最著名的用例,但区块链不仅仅是加密货币。区块链可以改变我们行业的许多领域并影响我们的日常生活。

2021 年,我们看到了区块链的一个新且非常流行的用例。NFT(非同质化代币)。目前,NFT 主要用于数字艺术。2022 年,我们将看到 NFT 用于其他用例。

现在人们开始认真对待区块链软件开发是什么行业,预计 2022 年区块链技术将会有巨额支出。

区块链经常因其高能耗而受到批评。许多区块链公司现在正计划从能源密集型的“工作量证明”模式转向节能的“权益证明”模式。流行且广泛使用的区块链以太坊将在 2022 年转向绿色的“权益证明”模式。

7. AutoML 和 No-Code AI 将使机器学习变得民主化

机器学习 (ML) 是近年来取得巨大成功和广泛应用的另一项颠覆性技术。然而,与需求量相比,机器学习专家却严重短缺。此外,许多公司希望以有限的方式采用机器学习,而不想聘请全职、昂贵的机器学习专家。

AutoML(自动化机器学习)是一项新举措,旨在以有限的方式自动化机器学习的使用,而无需机器学习专家。对于大多数用例卡通人物,您需要一名机器学习专家。但对于某些用例,您可以使用 AutoML 来增强机器学习专家的能力,或者在没有任何机器学习专家的情况下使用 AutoML。从某种意义上说,它类似于低代码/无代码计划。AutoML 在 2021 年获得了巨大的关注。

2022 年,我们将看到更多 AutoML 的采用和创新,因为 AutoML 具有广阔的市场前景。

AutoML 是无代码 AI 趋势的一部分。2022 年,无代码 AI 的普及度和采用率也将大幅提升。

8. 人工智能 狭义人工智能将得到大规模应用

与机器学习一样,深度学习 (AI) 是另一项颠覆性技术,在过去十年中得到了广泛采用和快速增长。在 2022 年及以后,AI 将继续得到更多的采用、资金和创新。

人工智能的终极目标之一是寻找“通用智能”,即人工智能可以像人类一样聪明(甚至更聪明)。我们距离实现通用智能还很远。但人工智能将更多地用于“狭义人工智能”,即人工智能代理将在特定(狭义)领域协助/增强人类。2022 年,我们将在许多非关键用例(例如呼叫中心、IT)中看到狭义人工智能的广泛采用,其中人工智能代理将使用狭义人工智能协助人类。

9.深度学习库 Tensor Flow 将继续占据主导地位

目前有许多 AI 库,但其中有两个脱颖而出:谷歌的 TensorFlow 和 Facebook 的 PyTorch。

TensorFlow 在其 2.0 版本中进行了彻底改造,引入了动态图、Python 友好性等诸多变化。它还提供了 Tensorflow.js 以便在浏览器中使用 AI 库。Tensorflow 的另一项创新是 Tensorflow Lite,它提供了在移动设备和 Web 上部署 Tensorflow 的功能。Tensorflow 还发布了 Tensorflow Extended (TFX),这是一个用于部署生产 ML 管道的端到端平台。

PyTorch 是另一个主要的 AI 库,它引入了动态图和 Python 作为一等公民。它也更加适合开发人员。它还发布了 PyTorch Mobile,以便在 Android/iOS 设备上使用 PyTorch。它通过 PyTorch Profiler 为调试大型 AI 模型提供了更多的开发人员友好性。

TensorFlow 仍然是最受欢迎的 AI 库。

来源。Stack Overflow 开发者调查,2021 年

2022 年,Tensorflow 将继续成为主导的 AI 库,因为它具有更好的可视化效果和大规模采用。

10. 多模型、多用途的数据库正在涌现

在过去的几年中,我们看到了使用适合特定用例的专用数据库的趋势。

这种方法的一个缺点是我们经常需要为一个应用程序提供多个数据库。现在有一种新趋势,即每个数据库将提供多个模型并服务于多个用例。PostgreSQL(多模型)、Azure CosmosDB(多模型、多用途)、SingleStore(OLAP 和 OLTP)是这些数据库的先驱。2022 年,我们还将看到其他提供多模型和多用途的数据库。

11.数据密集型计算Spark和公共云服务

Apache Spark 几乎取代了 Hadoop 生态系统,成为数据密集型计算的默认框架。Spark 还使用相同的 API 提供近乎实时的流处理。

Apache Beam 近年来获得了很大的关注,因为它提供了一个统一的编程模型来定义和执行数据处理管道。批处理和流处理。Google 的 Cloud Dataflow 是一项实现 Apache Beam 的强大服务。此外,Azure 和 AWS 也提供批处理服务。

如果您希望不受云影响,则应该使用 Spark 或 Cloud Dataflow (GCP)。

12.实时流媒体:Flink 与公共云服务

虽然近乎实时的流式传输足以满足 90% 的用例,但在某些用例(欺诈检测、异常检测、基于规则的警报、实时数据的临时分析)中,您将需要实时流式传输。

在实时流式传输方面,Apache Flink 无疑是市场领导者。它还支持 Apache Beam API,并为处理实时流数据提供了与供应商无关的解决方案。

如果想避免供应商锁定,应该使用 Flink 而不是公有云专用技术。而且 Flink 比公有云供应商提供的类似服务更强大。

13.DevOps 面向现代 DevOps 的智能观察能力

几年前,可观察性仅对大型企业至关重要。然而,随着云原生开发和微服务架构的快速崛起,可观察性对于现代软件开发至关重要。除了传统的可观察性(日志记录、监控、跟踪)之外,我们还需要 Kubernetes 集群的遥测和拓扑数据。此外,我们将看到使用人工智能和时间序列数据库开发智能可观察性平台的趋势。在 2022 年及以后,智能、云原生的可观察性将继续增长。

14. 低代码/无代码快速应用程序开发(LCNC)将继续蓬勃发展

低代码/无代码 (LCNC) 计划旨在降低开发 Web/移动应用的门槛,而无需开发人员(或少量开发人员)。未来几年我们仍将需要开发人员来构建应用。但也有许多用例表明,低代码/无代码框架/工具可以显著加快应用开发速度。

2022年,我们还将看到越来越多的LCNC用例。

15. 软件架构企业的微服务和微前端

目前,我们有三种后端应用程序开发选择。(模块化)单体、微服务和无服务器。它们都有各自的优点和缺点,在特定用例中大放异彩,而在其他用例中则失败。微服务支持多个团队在特定应用程序上工作的应用程序开发。此外,微服务非常适合云原生开发,因为更高的运营成本可以以更低的代码复杂性转移到云上。因此,对于企业来说,微服务将成为 2022 年的首选架构。

如果您想了解设计微服务架构的最佳实践,那么您可以阅读我的博客。

目前,我们在前端应用开发中有两种选择。单体和微前端。我们经常低估前端应用的复杂性,因为大多数架构师都来自后端开发。但前端单体和后端单体一样糟糕。因此,对于企业前端开发来说,微前端将是 2022 年的首选架构。好消息是,所有流行的 JavaScript 前端框架都支持微前端。

16. 软件开发 AI 将协助开发人员和 QA

我认为人工智能是人类的助手或帮手。人工智能可以帮助完成繁琐、可预测、重复和困难的任务,而人类可以专注于更发人深省、更智能的任务。在软件开发中,我们还必须完成许多无聊、可预测和重复的任务。人工智能可以使用 GPT-3 和其他 NLP 库自动执行这些任务。人工智能已经用于自动化测试。

一些AI驱动的助手还可以自动为开发人员生成源代码。Tabnine、GitHub Copilot、Codota。虽然它们处于协助软件开发的早期阶段,尚未成熟,但我预计这些AI驱动的代码助手将在2022年成熟吉祥物设计,以便我们能够更快地开发和交付。

17. 编程(主流)Python 将引领潮流

近年来,我们经历了Python作为通用编程语言的快速崛起,在热门编程语言排行榜网站TIOBE上,Python终于占据了主导地位,成为目前排名第一的编程语言。

来源:TIOBE

该编程语言是作为一个业余项目开发的,它降低了编程入门门槛,这对 Guido van Rossum 和其他 Python 语言设计者来说是一个伟大的宣言。Python 简洁、解释性强、动态、简洁、简单且功能强大。但 Python 的 USP 是它的简单性和低门槛。Python 是数据科学和数据工程领域的头号编程语言。但在许多其他领域,它是第二或第三编程语言。

2022 年,Python 将继续占据主导地位,因为许多新开发人员将加入,他们可能会从 Python 开始。在选择编程语言之前,仍然值得关注这个领域。以下是我对编程语言的建议。

但是,如果您是正在学习新编程语言的新开发人员,则可以从 Python 开始。

18. 企业编程 Java 反击

Java 长期以来一直是无可争议的第一编程语言。它是一种解释型、中等复杂度、多线程、垃圾收集且功能强大的编程语言。此外,JVM 经过实战考验,功能强大、成熟,是业界最好的进程虚拟机之一。Java 是大型单片企业应用程序的完美选择。

不幸的是,随着微服务和无服务器的兴起,Java 处于劣势,因为 JVM 显得太大(内存占用高)和太慢(启动时间慢)。此外,在现代基于容器的开发中,容器资源是有限的。因此,人们开始在云原生开发中使用灵活、小巧、快速的语言,例如 Node.js 和 Golang。

最后,Java 社区开始通过 GraalVM 提供 Java 的现代版本。这是一个提供 AOT 编译和多语言编程的 JDK 发行版。此外,它可以直接编译为 Native 代码,非常适合云原生开发(内存占用小,首次启动时间短)。此外,Java 17 终于引入了许多现代特性(例如模式匹配),使 Java 对开发人员具有吸引力。

凭借其严格、无与伦比的向后兼容性、GraalVM 以及最近的变化,Java 将成为 2022 年企业软件开发的第一编程语言。

19. React 和 Angular 用于客户端 Web 框架企业

基于 JavaScript/TypeScript 的框架主导着现代 Web 应用程序开发,这种趋势将在 2022 年继续。有许多基于 JavaScript/TypeScript 的 Web 框架,但有两个框架脱颖而出。其中一个是 Facebook 的 React。另一个是 Google 的 Angular (Angular 2+)。React 是两者中最受欢迎、最不固执己见、最创新、最灵活且最有利于 SEO 的框架。另一方面,Angular 是一个固执己见、端到端、模块化且安全的框架,具有严格的基于约定的配置。Angular 也是一个“内置电池”的框架,可以使用强大的 CLI 开发企业级 Web 应用程序。

来源:NPM Trends

React 和 Angular 也将于 2022 年继续引领 Web 开发。尽管 Vue.js 是最受欢迎的框架,但由于安全问题和对一个人的过度依赖,它不会在业界得到大规模采用。

20. 服务器端框架(Java)。微服务和无服务器应用程序的原生框架

Spring MVC/Spring Boot 是 Java 中最主流的服务端框架。如前所述,Spring 使用传统的 OpenJDK,在云原生 Java 开发中逐渐失去魅力。Redhat 的 Quarkus 是云原生开发的头号框架,因为它使用 GraalVM 而不是传统的 OpenJDK。因此,使用 Quarkus 开发的应用程序更小,启动时间更快,更适合基于容器的开发。

最后,Spring 宣布推出 Spring Native,它将使用 GraalVM 进行云原生开发。

它仍处于实验阶段,将在 Spring 6 发布时(2022 年 10 月)发布。Spring Native 的一个优点是您可以将 Spring MVC 项目转换为 Spring Native 项目,而无需重写任何/少量代码。

因此,如果您在 2022 年开发云原生 Java 应用程序,请考虑使用 Java 原生框架之一。但是,对于单片 Java 开发,您仍然可以使用基于传统 (OpenJDK) 的框架,例如 Spring MVC。

21. 应用程序开发。原生应用程序,更灵活

2022年手机用户数量将继续增长,应用下载量也将持续增长,预计2022年应用下载量将达到1710亿次,移动应用开发是当今软件开发的一个广阔市场。

来源:Statista

目前,开发移动应用程序有四种方式:原生应用程序开发、跨平台应用程序开发、混合应用程序开发和基于云的应用程序。

其中,原生应用开发和跨平台应用开发最为常用。虽然原生应用开发成本最高(就时间/资源而言),但它提供了最大的灵活性。通常,企业更喜欢原生应用开发的灵活性。

跨平台应用开发提供了在 iOS/Android 上使用几乎相同代码的可能性。初创公司更喜欢这种方法,因为他们喜欢跨平台应用开发的开发速度和较低的维护成本,但代价是灵活性较低。

2022 年,原生应用开发将占据主导地位,因为跨平台应用开发不如原生应用开发灵活。

22. API 技术。REST、gRPC 和 GraphQL 将共存

现代软件开发通常是 API 驱动的开发。客户端应用程序(Web、移动)通过 API 调用与后端应用程序通信。同时,后端应用程序也通过 API 调用相互通信。服务之间的通信是软件开发行业的一个古老范式,有许多技术可以满足这一要求。但在这些技术中,有三种技术脱颖而出。REST、gRPC 和 GraphQL。

REST 是其中最古老的一种,开发于 2000 年。它使用万维网和 HTTP 技术进行客户端-服务器通信。它是最成熟和使用最广泛的一种。

Google 在旧式 RPC(远程过程调用)技术的基础上创建了 gRPC 作为服务器到服务器的通信 API。在这里,每个请求都被构造为一个函数调用。与使用 JSON、XML 等文本格式传递信息的 REST 不同,gRPC 使用基于协议缓冲区的二进制格式。因此软件开发是什么行业,与 REST 相比,gRPC 在服务到服务通信方面更高效、更快速。

如果数据结构复杂,网络客户端到服务器的通信将需要多次往返。为了缓解这个问题,Facebook 于 2015 年开发了 GraphQL API。在 GraphQL 中,每个客户端都可以针对特定用例定义数据结构的形状,并在一次往返中获取所有数据。

从上面我们可以看出,这三种 API 技术(REST、gRPC、GraphQL)都有其擅长的用例和不太好的极端情况。2022 年,开发人员和公司也将根据其用例使用这三种技术中的一种。

最后编辑:
作者:nuanquewen
吉祥物设计/卡通ip设计/卡通人物设计/卡通形象设计/表情包设计