知名计算机图书出版公司 O'Reilly 近日根据其在线学习平台生成的数据发布了一份技术行业发展趋势的分析报告。
报告指出,Python 已经成为了最受欢迎的语言,而 JavaScript 的使用量只有 Python 的 20%。低代码和无代码编程将不可避免的改变编程语言的性质。
另一方面,人工智能领域和 Web 开发的增长仍在继续。有关云的使用和安全隐私也都是重点发展的趋势。
调查背景
O’Reilly 对技术行业的趋势分析是基于其平台生成的数据。O’Reilly 在线学习的使用量一直在稳步增长,考虑到 COVID-19 的爆发对技术行业带来的变化,这样的增长趋势并不令人意外。
对技术行业发展趋势的分析并不是从哪一技术领域在短期内迅速受到关注和流行来看的,而是通过长期的表现得到的观察。“趋势”和“潮流”不同,潮流通常是一闪而过的,但趋势是在更长的时间范围内展现出来的,在这个过程中甚至可能会有倒退的表现,但趋势的发展是不会停止的,表象的背后有更多参考因素。
从编程语言的使用情况来看,Python 的使用量是最高的,与去年相比还上升了 27%。排在第二位的是 Java,比去年下降了 3%,第三是 C++,比去年上升了 10%。第四和第五分别是 C 和 JavaScript,使用量分别上升了 12% 和 40%。
令人惊讶的一点是,JavaScript 虽然排名前五,但使用量却远远落后于 Python 和 Java,只能达到 Python 的 20% 和 Java 的 33%。
在后面的排名中,Rust 的增长非常明显,达到了 94%。不过,从一个较小基数开始的 Rust,增长 94% 并不是很难。
从统计数据可以看出,反而是 增长 16% 的 Go 语言已经清楚地确立了自己的地位。作为一种用于并发编程的语言,Rust很可能建立自己的“系统编程”地位:为云操作构建新的操作系统和工具。作为一种为数学计算而设计的语言 Julia 是一个有趣的未知因素。虽然在过去的一年里,它略有下降,但是我们对它的长期机会持乐观态度。
我们不应该将专门用于学习编程语言的标题与应用该语言或使用基于该语言的框架的标题分开使用。毕竟,许多 Java 开发人员使用 Spring,搜索“ Java”会遗漏内容,而标题中只有“ Spring”这个词。对于 JavaScript 也是如此,它包括 React、 Angular 和 Node.js 框架。在 Python 中,使用最多的库是 PyTorch 和 scikit-learn。下图显示了将 Python、 Java 和 JavaScript 的内容添加到这些语言最重要的框架中时所发生的情况。
结果相似是不足为奇的,但是有一些关键的区别。为 Spring 添加使用和搜索查询数据(增长7%)扭转了 Java 的明显衰退(净增长为零)。进一步来看 JavaScript,如果把最流行的框架 React、 Angular 和 Node.js 的使用加进去,那么 JavaScript 使用率就上升到了 Python 的 50% ,只比 Java 及其框架略低一点。然而,当 Python 被添加到大量使用的框架 PyTorch 和 scikit-learn 中时,它仍然是明显的领先者。
我们正在尝试建立一个更全面的语言使用图景,其中包括各种框架的使用。我们并不是假装这些框架本身具有可比性。Spring 主要用于后端和中间件开发(尽管它包括一个 web 框架); React 和 Angular 用于前端开发; scikit-learn 和 PyTorch 是机器学习库。尽管它被广泛使用,但我们并没有将 TensorFlow 分配给任何语言; 它有 Python、 Java、 c + + 和 JavaScript 的绑定,并且不清楚哪种语言占主导地位。此外,我们还忽略了所有这些语言的成千上万的小型平台、框架和库。一旦它们超过了前几名,就陷入了混乱。
我们不提倡使用 Python、 Java 或任何其他语言。尽管随着软件行业的发展,它们的使用量会有不同程度的上升和下降,但这些顶级语言没有一种会消失。但是,在进行比较时,我们需要注意到更多因素。
如果竞争并不重要,那么编程语言的重要趋势又是什么呢?我们发现有几个因素在显著地改变着编程:
- 多范式语言
自去年以来,O’Reilly 在线学习的函数式编程内容使用量增加了 14% 。然而,Haskell 和 Erlang 这两种经典的函数式语言并没有得到应有的重视,它们都没有大量的使用,并且都呈下降趋势(与去年同期相比下降了大约20%)。面向对象编程比函数式编程的发展更快: 自去年以来增长了 29% 。这表明,实际情况是将函数特性集成到过程语言和面向对象语言中。从 2008 年的 Python 3.0 开始,到 2014 年的 Java 8,编程语言增加了高阶函数(lambdas)和其他“函数式”特性。一些流行的语言,包括 JavaScript 和 Go,从一开始就具有函数特性。这种趋势开始于20年前,(与 C++ 标准模板库一起),我们希望这种趋势继续下去。
- 并发编程
用于并发性的平台数据显示,其年增长率为 8% 。这不是一个很大的数字,但是不要因此错过这个趋势。Java 是第一个被广泛使用的支持并发的语言。在 90 年代中期,线程支持是一种奢望,摩尔定律有很大的发展空间。现在情况不同了,对并发性的支持,就像对函数式编程的支持一样。Go、 Rust 和大多数其他现代语言都内置了对并发性的支持。不过,并发性一直是 Python 的弱点之一。
- 动态类型与静态类型
动态类型语言(如 Ruby 和 JavaScript)和静态类型语言(如 Java 和 Go)之间的区别可以说比函数式语言和面向对象语言之间的区别更为重要。不久前,在动态语言中添加静态类型的想法引发了一场争论。不过,现在已经没有这种争论了。将各种范式结合起来形成一个混合体也在这里占据了主导地位。Python 3.5 增加了类型提示,最近的版本增加了额外的静态类型特性。将静态类型添加到 JavaScript 中的 TypeScript 也实现了增长,年增长12%。
- 低代码和无代码计算
对于一个学习平台来说,很难收集关于一种趋势的数据,这种趋势最大限度地减少了学习的需要,但是低代码是真实存在的,而且势必会产生作用。电子表格是低代码计算的先驱。当 VisiCalc 在 1979 年首次发布时,它使数百万人无需学习编程语言就可以进行重要的计算。全民化是许多技术领域的一个重要趋势,编程自然也是如此。
重要的不是不同语言之间的竞争,而是语言所要获得的功能,以及为什么具有这种特性。鉴于我们似乎已经走到了摩尔定律的尽头,并发性将成为未来编程的核心。我们不能只是得到更快的处理器。我们将在很长一段时间内在云中使用微服务和无服务器/功能即服务——这些都是固有的并发系统。函数式编程并不能解决并发性的问题,但是不变性的原则肯定有助于避免陷阱。随着软件项目不可避免地变得更大和更复杂,语言通过混合函数特性来扩展自身是非常有意义的。我们需要正在考虑如何一起使用功能和面向对象功能的程序员。在构建企业级并发软件时,哪些实践和模式有意义?
低代码和无代码编程将不可避免地改变编程和编程语言的性质:
- 将会有新的语言、新的库和新的工具来支持无代码或低代码的程序员。无论它们采取什么形式,都需要程序员来构建和维护。
- 复杂的计算机辅助编码可以帮助经验丰富的程序员。这是否意味着“与机器结对编程”,或者可以自己编写简单程序的算法,还有待观察。这些工具不会淘汰程序员,它们会使程序员更加高效。
- 可以预见,会有一部分反对的声音,请忽略这些,因为低代码可以将计算的能力交到更多人的手中。程序员不会被淘汰,而是变得更有效率,并且写出别人会用到的工具。
对于让伟大的下层人士进入程序员的领域,可以预见到会有强烈的反对声音。忽略它。低代码是民主化运动的一部分,将计算的能力交到更多人的手中,这几乎总是一件好事。意识到这种变化意味着什么的程序员不会被非程序员赶出工作岗位。他们会变得更有效率,并且写出别人会用到的工具。
无论你是一个技术领导者还是一个新的程序员,请注意这些缓慢的长期趋势。他们将改变整个行业的面貌。
DevOps vs SRE
在过去的十年中,IT 发生了根本性的变化。关于运营文化(通常称为 DevOps)、持续集成和部署(CI/CD)以及站点可靠度(SRE)),已经有了很多讨论。云计算已经取代了数据中心、托管设施和内部机房。容器允许开发人员和运营部门之间进行更紧密的集成,并且在标准化部署方面做了很多工作。
没有 NoOps 这种东西,像功能即服务这样的技术(又名 FaaS,又名 serverless,又名 AWS Lambda)只是改变了它的本质。管理一个给定规模的基础架构所需的人数已经减少,但是我们正在建设的基础架构已经扩大,聚集数以万计的节点来训练或部署复杂的 AI 应用程序很容易。即使这些机器都在亚马逊巨大的数据中心,并且使用高度自动化的工具进行批量管理,运营人员仍然需要保持系统平稳运行,监控,故障排除,并确保不会为不需要的资源付费。无服务器和其他云技术允许同一个操作团队管理更大的基础架构,它们不会使运营消失。
过去一年中,以 DevOps 为标题的内容的使用量下降了 17%,而 SRE(包括“网站可靠度”)上升了 37% ,“operations”一词上升了 25% 。虽然 SRE 和 DevOps 是截然不同的概念,但对于许多客户来说,SRE 是谷歌规模的 DevOps ——谁不想要这样的增长呢?SRE 和 DevOps 都强调相似的实践: 版本控制(GitHub 增长了 62% ,Git 增长了 48%)、测试(使用率很高,但没有逐年增长)、持续部署(减少了 20%)、监视(增加了 9%)和可观察性(增加了 128%)。Terraform 是 HashiCorp 用于自动化云基础设施配置的开源工具,也显示出强劲的增长(53%)。
有趣的是,从数据来看,Docker 几乎没有变化(每年下降5%) ,但是关于容器的内容使用率却飙升了 99% 。所以,容器化显然是一件大事。Docker 本身可能已经停滞不前了,但是 Kubernetes 作为容器编排工具的主导地位使容器处于中心地位。Docker 是使能技术,但是 Kubernetes 使得大规模部署集装箱成为可能。
Kubernetes 本身就是另一个超级明星,一年增长了 47% ,同时也是这个群体中使用率最高的(也是最多的搜索查询)。Kubernetes 不仅仅是一个编排工具,它还是云的操作系统(或者,正如 Kelsey Hightower 所说,“ Kubernetes 将是分布式系统中的 Linux”)。但是数据并没有显示我们与认为 Kubernetes 太“复杂”的人们的对话次数。我们看到三种可能的解决方案:
1.一个“简化”版本的 Kubernetes 虽然不那么灵活,但是却在很多复杂性之间进行权衡。K3s 是朝这个方向迈出的一个可能的步骤。问题是,这样做的代价是什么?这是我对 Pareto principle 的看法,也被称为 80/20 法则。给定任何系统(比如 Kubernetes),通常可以通过保留最广泛使用的 80% 的功能并削减其他 20% 的功能来构建更简单的东西。并且某些应用程序将适合保留的80%的功能。但是大多数应用程序将至少需要牺牲一些功能以简化系统。
2.一种全新的方法,尚未出现的某些工具,目前我们还不知道该工具是什么。
3.来自云供应商的集成解决方案(例如,微软的开源 Dapr 分布式运行时)。不是那些提供 Kubernetes 服务的云供应商。如果云供应商将 Kubernetes 的功能集成到他们的堆栈中,使得这些功能消失在某种管理控制台中会怎么样?然后问题就变成了,你失去了哪些功能,是否需要它们?
围绕着 Kubernetes (Istio、 Helm 和其他)的丰富的工具生态系统显示了它的价值。但是我们接下来该怎么办呢?即使 Kubernetes 是管理运行在云中的现代应用程序的复杂性的正确工具,对更简单解决方案的追求最终将导致更复杂的需求,它们足够吗?
可观察性在过去一年中增长最快,达到了 128%,而监测只增长了9% 。虽然可观察性比监测能力更丰富、更强大。但这种转变在很大程度上只是表面上的。“可观察性”有可能成为监测的新名称。如果你认为可观察性仅仅是一个更流行的监测术语,那就失去了它的价值。运行在云中的复杂系统需要真正的可观察性才能管理。
基础设施就是代码,我们已经看到了很多自动化配置的工具。但是 Chef 和 Puppet,均大幅下降(分别为 49% 和40% ),Salt 也是如此。Ansible 是这其中唯一上升的工具,上升了 34%。有两种趋势造成了这种情况,Ansible 似乎取代了 Chef 和 Puppet,这可能是因为 Ansible 是多语言的,而 Chef 和 Puppet 与 Ruby 有关。第二,Docker 和 Kubernetes 改变了配置。数据显示,Chef and Puppet 在 2017 年达到顶峰,当时 Kubernetes 开始了几乎一个指数增长的爆发。容器化部署似乎可以最大程度地减少可重复配置的问题,因为容器是一个完整的软件包。假如有一个容器,你可以多次部署它,每次得到相同的结果。实际上,它从来没有那么简单,只是这种表面上的简单性减少了对 Chef 和 Puppet 等工具的需求。
未来,运营团队面临的最大挑战以及数据工程师面临的最大挑战将是学习如何有效部署 AI 系统。在过去的十年里,DevOps 运动产生了很多想法和技术,源代码库快速的自动化部署,不断的测试等等。它们非常有效,但是人工智能打破了它们背后的假设,而且部署经常是人工智能成功的最大障碍。
人工智能打破了这些假设,因为数据比代码更重要。我们还没有足够的工具来对数据进行版本控制(尽管 DVC 是一个开始)。模型既不是代码也不是数据,而且我们也没有足够的工具用于版本控制模型。频繁部署假定软件可以相对快速地构建,但是训练一个模型可能需要几天时间。有人建议模型训练不需要成为构建过程的一部分,但这确实是应用程序中最重要的部分。测试对于连续部署是至关重要的,但是人工智能系统的行为是概率性的,而不是确定性的,所以很难说这个测试或那个测试失败了。如果测试包括公平性和偏见这样的问题,那么测试就特别困难。
虽然有一个新生的 MLOps,我们的数据并没有显示人们正在使用(或搜索)这些领域的大量内容。在许多领域中,内容还不存在。但是无论内容是否存在,用户都会搜索内容,因此少量的搜索表明我们大多数用户尚未意识到问题所在。运营人员过于频繁地认为人工智能系统只是另一个应用程序,但他们错了。人工智能开发人员认为,一个运营团队将能够部署他们的软件,并且能够继续进行下一个项目,但是他们也错了。随着新一代工具的出现,这些问题最终将得到解决。事实上,这些工具已经在开发之中,但我们还没有做到这一点。
人工智能、机器学习和数据
人工智能的健康发展仍在继续: 机器学习上升了 14% ,人工智能上升了 64% ; 数据科学上升了 16% ,统计学上升了 47% 。虽然人工智能和机器学习是两个截然不同的概念,但是它们的定义却经常被混淆使用。我们非正式地将机器学习定义为“人工智能中工作的部分”,人工智能本身更多的是面向研究的和有抱负的。如果你接受这个定义,那么关于机器学习的内容被广泛使用也就不足为奇了: 它是关于将研究带出实验室并付诸实践。我们看到人工智能的稳步发展也不足为奇,因为这正是前沿工程师们寻找新思路,将其转化为机器学习的地方。
确实有一些指标可以说人工智能已经停滞不前了,许多项目从未投入生产。虽然去年在自然语言处理方面取得了惊人的进步,上升了 21% ,比如 OpenAI 的 GPT-3,但像赢得 Go 游戏这样的惊人结果却越来越少。人工智能(以及机器学习、数据、大数据和他们所有的同伴)可能正在进入低谷。但我们认为,要把当前的研究成果应用到商业产品中,还需要多年的努力。
人工智能的未来与其说是惊人的突破和令人毛骨悚然的面部或语音识别,不如说是小巧平凡的应用。人工智能在 COVID 疫苗的开发中发挥了巨大的作用。人工智能正在扮演一个重要的支持角色。它使研究人员能够浏览数以万计的研究论文和报告,设计可能有效的药物和基因,并分析数以百万计的健康记录。如果不能使这些任务自动化,那么很难组织疫情的扩散。
因此,我们看到了人工智能和机器学习的未来:
- 自然语言一直是(并将继续是)一个大问题。GPT-3 改变了世界,我们将发现人工智能为我们提供了最好的工具来检测什么是假的,什么不是。
- 许多公司在使用人工智能来自动化服务客户,我们在合成语音、生成现实的答案和寻找解决方案的能力上取得了巨大的进步。
- 我们将看到许多微小的嵌入式人工智能系统应用于从医疗传感器到电器到工厂车间的各个领域。任何对技术未来感兴趣的人都应该非常仔细地观察 Pete Warden 在 TinyML 上的工作。
我们仍然没有正视人类和人工智能协作的用户界面问题。我们不止希望人工智能代替人类做某些工作,而是希望人工智能能够与人协作,产生比人类或机器单独所能产生的更好的结果。
TensorFlow 是机器学习平台中的领导者,搜索次数最多,使用率稳定在 6% 。Python 的机器学习库 scikit-learn 的内容几乎同样被大量使用,年增长率为 11% 。PyTorch 位列第三,但是 PyTorch 内容的使用量同比增长了 159% 。毫无疑问,这种增长是受到 Jeremy Howard 的《面向程序员的实用深度学习》课程和基于 PyTorch的fastai 库的普及的影响。看起来 PyTorch 在研究人员中更受欢迎,而 TensorFlow 在生产中仍占主导地位。但是随着 Jeremy 的学生进入工业领域,随着研究人员转向生产岗位,我们希望看到 PyTorch 和 TensorFlow 之间的平衡发生转变。
Kafka 是构建数据管道的一个重要工具,它很稳定,增长率和使用率与 Spark 相似,为6%。Kafka 的“下一代”竞争对手 Pulsar 还没有出现在排名中。
在过去的一年中,用于自动化AI和机器学习开发的工具(IBM 的 AutoAI、谷歌的 Cloud AutoML、微软的 AutoML 和亚马逊的 SageMaker)受到了广泛关注。但是我们没有看到任何迹象表明他们正在市场上取得重大进展。可能是 AutoAI 相对较新,或者用户认为他们不需要搜索补充训练材料。
那么数据科学呢?这份报告《什么是数据科学》已经出版了10年。但令人惊讶的是,对于一篇 10 年前的论文来说,该报告的浏览量比 2019 年增长了 142% 。但是工具已经发生了变化,十年前,Hadoop 是数据科学世界的中心,现在它仍然存在,但是只是一个遗留系统,自 2019 年以来下降了23% 。Spark 现在是占主导地位的数据平台,而且它肯定是工具工程师们想要了解的。Spark 内容的使用大约是 Hadoop 的三倍。但即使是 Spark,自去年以来也下跌了 11% 。Ray 是新出现的,有望让构建分布式应用程序变得更加容易,但是还没有显示与 Spark(甚至 Hadoop)匹配的使用情况,但是它显示了 189% 的增长。还有一些其他的工具即将出现,比如,Dask 比 Ray 更新,并且增长了近400% 。
另外,诸如道德、公平、透明度和可解释性等主题并不会对我们的数据造成影响。可能是因为很少出版这些方面的书籍,也没有提供培训课程,但这本身就是一个问题。
Web 开发
自从 2 0世纪 90 年代初发明了 HTML,第一个 Web 服务器和第一个浏览器出现,Web 已经成为了各种平台。这些平台使得网络开发变得更加灵活,它们使得支持大量的设备和屏幕尺寸成为可能。它们使构建在浏览器中运行的复杂应用程序成为可能。
那么 Web 框架的世界是什么样的呢?React在内容使用方面处于领先地位,并且也显示出显着增长(同比增长34%)。尽管有传言说 Angular 正在衰落,但它是排名第二的平台,增长了10% 。而服务器端平台 Node.js 的内容使用率仅次于 Angular,增长了15% 。
更令人惊讶的是,Ruby on Rails 在经历了几年稳定的性能之后,显示出了非常强劲的增长(年增长率为77%)。同样,Django(与 Rails 出现的时间大致相同)显示了大量的使用和 63% 的增长。但这种增长并不适用于所有较老的平台。尽管近 80% 的网站仍在使用 PHP 的内容,但 PHP 的使用率相对较低,而且还在下降(下降了 8%)。虽然 jQuery 显示了18% 的健康增长,但是 jQuery 内容的使用率比我们看到的任何其他平台都要低。
令人惊讶的是,Vue 和 Flask 表现得很弱,对于这两个平台,内容使用量只有 React 的八分之一。与 Vue 相关的含量在过去一年下降了 13% ,而 Flask 增长了 10% 。人们很容易认为 Flask 和 Vue 是“新”平台,但它们分别在 2010 年和 2014 年发布。Svelte 和 Next.js 这两个最有前途的新平台还没有产生足够的数据,可能是因为还没有足够的内容可以使用。同样地,WebAssembly 也没有出现。但是 WebAssembly 代表了对网络编程的重新思考,值得密切关注。也许会发生能否彻底颠覆 JavaScript 在 Web 开发领域的统治地位的事,但这不会很快,因为企业用户将不愿意承担从一个老的框架(比如 PHP)转移到一个更时尚的 JavaScript 框架的成本。
HTML、CSS 和 JavaScript 等基础技术的使用率均呈现出健康增长(分别为 22% 、46% 和 40%),尽管它们落后于领先的框架。我们已经注意到,JavaScript 是顶级编程语言之一,而现代 Web 平台如果不是 JavaScript 的典范,那就什么都不是。万维网最初的愿景是希望所有人不需要成为一个技术极客,甚至不需要编程,只需在浏览器中点击“查看源代码”,然后从其他网站上复制喜欢的内容即可。但二十五年后,情况已不再如此,虽然仍然可以“查看源代码”,但看到的只是大量难以理解的 JavaScript。具有讽刺意味的是,和其他技术一样,Web 开发越来越多地成为程序员的领域。我们期待看到这种趋势会被新一代的平台所扭转,还是通过网络本身的重构。
各种各样的云
云计算正在迅速增长,这并不令人惊讶。自去年以来,云计算内容的使用量上升了 41% 。Amazon Web Services、Microsoft Azure 或 Google Cloud 的使用增长速度更快,达到了 46%。尽管大多数公司都在以某种形式使用云服务,许多公司已经将重要的业务关键应用程序和数据集转移到云计算中,但我们还有很长的路要走。如果有一个技术趋势你需要掌握,那就是它。
领先的云供应商 AWS、 Azure 和 Google Cloud 之间的竞争中,亚马逊的增长已经停滞,目前仅为 5%。有关 Azure 内容的使用显示了 136% 的增长,比任何竞争对手都要高,而 Google Cloud 84% 的增长率并不低。随着 Azure 和 Google Cloud 的增长,亚马逊的统治地位可能会发生变化。
作为一家云计算公司,微软在重塑自身形象方面做得非常出色。在过去的十年里,微软重新思考了其业务的方方面面。现在,微软已经成为开源领域的领导者,它拥有 GitHub 和 LinkedIn。很难想象还有哪个公司的改革如此激进。
谷歌面临着一系列不同的问题。12 年前,这家公司可以说是通过 App Engine 实现了无服务。它开源了 Kubernetes,并且在人工智能领域的领先地位上下了很大的赌注,领先的人工智能平台 TensorFlow 高度优化,可以在谷歌的硬件上运行。那么,为什么它排在第三位呢?谷歌的问题不在于其提供前沿技术的能力,而在于其接触客户的能力。Google Cloud 首席执行官 Thomas Kurian 正试图解决这个问题。
虽然我们的数据显示,云计算内容的使用率增长非常强劲,但对于“多云”和“混合云”等术语,以及谷歌的 Anthos 或微软的 Azure Arc 等特定的混合云产品,并没有显示出显著的使用情况。这些都是新产品,很少有内容存在,所以使用率低并不奇怪。但是在这种情况下,特定云技术的使用并不是那么重要,更重要的是,所有云平台的使用都在增长,尤其是与任何供应商无关的内容。我们也看到我们的企业客户正在使用跨越所有云供应商的内容,很难找到任何人正在寻找单一的供应商。
不久前,我们还对混合云和多云持怀疑态度。我们很容易认为这些概念是从排名第二、第三、第四或第五的供应商头脑中产生的空想。如果你不能从亚马逊赢得客户,至少你可以从他们的业务中分得一杯羹。云计算本质上是混合的,工程师无法为某些项目获得资源,因此他们创建了一个 AWS 帐户,账单记在公司的信用卡上。然后,另一个团队中的某个人遇到了同样的问题,但是使用了Azure。接下来是一次收购,这家新公司已经在 Google Cloud 上建立了自己的基础架构。而且内部存在数 PB 的数据,而且这些数据受到监管要求的限制,很难移动。很多人没有意识到需要一个连贯的云战略之前,一些公司早就有了混合云。等到高管们制定总体规划的时候,市场营销、销售和产品开发领域已经出现了一些关键任务的应用程序。
所有的云供应商,包括亚马逊都被一种战略所吸引,这种战略不是将客户锁定在特定的云中,而是促进混合云的管理,所有这些供应商都提供支持混合云开发的工具。他们知道对混合云的支持是采用云的关键。而且,如果存在任何锁定,那将是围绕管理的。正如 IBM 的 Rob Thomas 经常说的,“云是一种功能,而不是一个位置。”
正如预期的那样,我们看到人们对微型服务兴趣浓厚,同比增长 10%,虽然不算大,但仍然健康。无服务也显示了 10% 的增长,但使用率较低。虽然它“感觉上”已经停滞不前,但数据表明,它正在与微服务并行增长。
安全与隐私
安全问题一直非常重要,防御者必须正确处理成千上万的东西,而攻击者只需发现一个漏洞。而且,这个错误可能是由粗心的用户而不是 IT 人员犯下的。最重要的是,公司往往在安全方面投资不足。
然而,过去 10 年发生了很多黑客入侵事件,牵扯数十亿美元的资金,并导致很多高管辞职和解雇。对于企业是否吸取了教训,这些数据并没有给出一个清晰的解释。虽然我们避免讨论绝对用法,但是有关安全性的内容的使用率非常高,比除了主要的编程语言如 Java 和 Python 之外,其它任何主题的使用率都高。也许更好的比较是将安全性与通用主题(如编程或云)进行比较。如果采用这种方法,编程的使用量将比安全性大,而安全性仅落后于云。因此,有关安全性的内容的使用率确实很高,与去年同期相比增长了35%。
人们普遍使用的是认证资源,CISSP 内容和培训占一般安全内容的 66% ,自 2019 年以来略有下降。关于 CompTIA Security + 认证的内容使用率约为一般安全性的 33% ,增长率为 58% 。
人们对黑客行为的兴趣相当浓厚,增长了 16% 。有趣的是,道德黑客行为(黑客行为的一个子集)的使用率只有黑客行为的一半,并且增长了 33% 。所以我们在“好人”和“坏人”之间平分秋色,但是“好人”的增长速度更快。渗透测试被认为是一种道德黑客,数据显示了 14% 的下降,这种转变可能只是反映了哪个术语更受欢迎。
除了这些类别之外,我们还看到了长尾效应,网络钓鱼和勒索软件等特定主题的内容只有极少的使用,尽管勒索软件的使用量同比增长了 155%。这种增长无疑反映了过去一年勒索软件攻击的频率和严重程度。“零信任”(zero trust)的内容也增加了 130% ,这是一种用于建立可防御网络的技术。不过,这种技术的使用量仍然很小。
令人失望的是,我们几乎看不到关于隐私的内容,包括关于 GDPR 等具体监管要求的内容。我们没有看到大量的使用,也没有看到增长,甚至没有看到大量的搜索查询。
我们已经浏览了很大一部分技术领域。各领域间的竞争以及背后更深层次的故事。趋势不仅仅是最新的流行,它们也是长期的过程。容器化可以追溯到 1979 年的 Unix 版本7。Sun Microsystems 在 20 世纪 90 年代用它的工作站和 Sun Ray 终端发明了云计算。我们可能会谈论“互联网时代”,但最重要的趋势跨越了几十年,而不是几个月或几年,而且往往涉及重新发明那些有用但被遗忘的技术,或者那些在时代之前就已经出现的技术。
考虑到这一点,让我们退后几步,思考一下全局。我们如何利用人工智能应用所需的计算能力?我们已经讨论并发性几十年了,但它只是一种对于大型数字处理任务非常重要的外来能力。我们讨论系统管理已经有几十年了,在此期间,IT 人员与计算机管理人员的比例已经从多对一变成了一对几千(对云中的基础架构进行监控)。作为这一发展的一部分,自动化也从一种选择变成了一种必要。
我们都听说过“每个人都应该学会编程。”这句话可能是正确的,也可能不是。这并不意味着每个人都应该是一个专业的程序员,而是每个人都应该能够有效地使用计算机,这就需要编程。无代码和低代码产品正在进入市场,允许用户构建从业务应用程序到人工智能原型的一切。同样,这种趋势可以追溯到 20 世纪 50 年代末,第一种现代编程语言使编程变得更加容易。低代码 AI 和复杂的 JavaScript 网络平台对未来可能带来的看法相互矛盾。
最后,最重要的趋势可能还没有出现在这些数据中。就监管和立法而言,技术在很大程度上是免费的。像医疗保健和金融这样的行业受到了严格的监管,但是社交媒体、大部分机器学习,甚至大部分在线商务都只受到了轻微的监管。免费的时代即将结束。
这个行业发展太快,破坏了太多东西。在这种情况下,应该更加关注隐私和相关话题。现在,我们面临的问题很简单,那就是该用技术建立什么样的未来。