近日,O'Reilly 发布了“2022 技术趋势”报告。本次报告主要是针对2021年1月-9月的四种特定类型的数据做了研究,分别是搜索查询、向 O’Reilly Answers 提出的问题、按 title 列出的资源使用情况、按主题分类法列出的资源使用情况。
通过这些数据,我们发现大家不再是使用“赛马”观点来看待技术,在人工智能的作用下,人们的思想观念正在发生变化,开始关注那些技术是正在过渡中;哪些发展代表了新的思维方式;而这些思维方式意味着什么?软件开发和软件架构未来的更大变化是什么?
同时,我们也发现很多重要的技术变革信号都隐藏在已经稳定的技术中。例如,在“沉寂”了一段时间之后,安全技术再度“热”了起来,这很大程度上是因为勒索软件的攻击规模变大,保护个人和企业资产变得更为重要;COVID-19的流行加速了企业上云的脚步;虚拟和增强现实技术在过去一直被忽视,而“元宇宙”的火热给予了AR和VR新的生机。
Data、Python、Git、test和Java成为了年度 Top 5 热词
O'Reilly Answers 是一种智能搜索,可以帮用户检索到相关内容。O'Reilly 对Answers做了一个简单的 "词包 "分析:计算每个词在所有Answers查询中的使用次数。Answers问题分为两类。一种是"有机 "查询,即用户自己输入的查询,另一种是 "问题库 "查询,即用户可以点击的样本问题。
忽略掉一些没有实际意义的词汇,我们发现Answers 中检索最多的热词分别是“data”、“Python”、“Git”、“test”和“Java”。
其中,data是用户最关心的话题之一。与data组合出现的最常用词组分别是“data governance”、“data science”、 “data analysis”和“data engineering”,这表明在未来数据治理是一个值得关注的话题。
Python和Java一直是 O'Reilly平台上备受关注的编程语言,今年也不例外。但是今年有个小变化,Python和Java的内容出现了非常轻微地下降,而Rust和Go的相关内容正在迅速增长。Kubernetes、AWS、Azure、Cloud也排在了榜单的前1%,主流云平台是用户重点关注的内容,“GCP”和“Google Cloud”则因为谷歌一直未明确云平台名称,搜索量落后,不过也位列在各自榜单的前3%。
而关于加密货币的词汇在榜单的排名比较靠后,虽然这个主题的内容正在急剧上升,但是整体的使用量仍然不大。
安全重新获得了关注
2021年的新闻中时常会出现“安全”,主要原因是一波勒索软件攻击使重要的基础设施、企业陷入瘫痪。供应链攻击,即攻击者将有效载荷放在软件中,通过正常的分销渠道交付给受害者,在开源和商业软件中都有发生。甚至一个典型案例中的受害者是一家知名的企业安全公司,其受感染的软件被分发给成千上万的客户。
安全领域的内容获得了急速增长,其中关于勒索软件的内容几乎增加了两倍(增加270%);隐私的内容增长了90%;威胁建模增长了58%;身份识别增长了50%;应用安全增长了45%;恶意软件增长了34%;零信任增长了23%。目前供应链安全还没有作为一个安全主题单独出来,但是关于供应链管理的内容已经有了30%的健康增长。同时,关于身份内容的增长是一个特别重要的迹象,身份管理是零信任安全的核心,在这种情况下,一个系统的组成部分需要对所有试图访问的人进行认证,了解身份管理是将零信任安全付诸实践的一大步。
标题中带有 "安全 "或 "网络安全 "字样的内容,其浏览量分别增加了17%和24%。网络安全话题浏览量增加了15%。
另一个重要的迹象是,关于合规性和治理的内容明显上升(分别为30%和35%)。这类内容对技术性受众来说是一个难点,但这种情况正在改变。虽然合规性和治理经常是在数据和隐私的背景下被提及,不过,重要的是要大家开始认识到它们是管理安全的核心问题。如果一个组织遭受到漏洞或攻击,如何划分责任?这一增长表明了,人们越来越感觉到技术行业在监管上的免费服务即将结束,不管是股东、用户还是政府机构、企业都将被追究责任。
根据加州大学伯克利分校信息学院的一项研究,在大多数州,网络安全的工资已经略微超过了程序员的工资,这表明对安全专业人员的需求增加。人员需求的增加也表明了培训需求的增加。在该平台上,SSCP(系统安全认证从业者)上升了54%,CompTIA Security+上升了27%。
软件开发:软件架构、Kubernetes和微服务成为热度Top 3
软件开发是O'Reilly学习平台上的一个大类别,它几乎包括一切,从编程语言到云计算到架构等等。
软件架构、Kubernetes和微服务是2021年使用率最高的三个主题。它们的同比增长也非常健康(分别为19%、15%和13%)。不过,与API网关等主题的增长(218%)相比,增长幅度有限。这种增长反映了整个报告中的 "规律":一个小的主题要有大的增长数字是很容易的,但对于一个已经占主导地位的主题来说就难得多。API网关内容的浏览量大约是架构或Kubernetes内容的1/250。
虽然API网关的浏览量相对较小,但218%的增长是一个非常强烈的信号,云原生(54%)的增长也是如此。企业正在对Kubernetes和微服务进行大量投资,建立云原生应用程序,而API网关是在客户端和服务之间路由请求的一个重要工具。
在这种情况下,容器内容也出现了明显增长(137%),而Docker显示增长较缓。容器被证明是打包应用程序和服务的最佳方式,因此它们是独立于平台的、模块化的、易于管理的。我们不想低估转向容器和使用Kubernetes生态系统的工具来管理的难度,但几年前,企业应用程序是在少数服务器上运行的单体,完全由人工管理。现在,许多企业的规模已经超过了这个数量级,数百个服务在云中的数千台服务器上运行,如果人工来启动和停止服务器和服务,几乎是不可能完成的事情。
当我们谈论在云中运行的微服务时,也是在谈论分布式系统。因此,关于分布式系统的内容在过去一年中上升了39%。复杂系统和复杂性等相关主题也出现了明显的增长(157%和8%)。还值得注意的是,设计模式也出现了增长,同比增长19%。
量子计算仍然是一个令人感兴趣的话题,虽然整体浏览量很小,但同比增长了39%。虽然现在已经有了一些原始的量子计算机,但能够做真正工作的计算机仍然需要几年时间。
虽然我们还没有提到架构,但如果没有良好统一的架构,以上这些技术都不会实现。软件架构发挥作用的地方在于,建设一个系统,使其不仅能满足企业现在的需要,同时也能与企业一起成长,满足未来的发展。
编程语言:C++、Go、Rust增长显著
在过去的一年里,C++有了明显的增长(13%),其浏览量大约是C的两倍。C++在游戏编程中占主导地位,但此次增长,我们猜测C++可能将成为嵌入式系统(物联网)的主导,同时也正越来越广泛地用于开发微服务。另一方面,C语言是工具开发者的语言,但现在这个角色可能已经转移到了Go和Rust这样的新语言上。
另一个变化是Go和Rust继续增长。自去年以来,有关Go的内容的浏览量增加了23%,而Rust增加了31%。Rust的增长反映了关于内存管理和并发性的新思维方式。除了提供一个干净的、相对简单的并发模型外,Go还代表了一个转折点,即随着新版本的发布,语言变得越来越复杂。
"函数式与面向对象 "的战争正在平息,这两个话题都在下降(分别为14%和16%),功能性特征已经被整合到了Java、C#和其他一些语言中。
Python、Java和JavaScript仍然是领先者,其中Java上升了4%,Python下降了6%,JavaScript下降了3%。同时,属于Java生态系统的另外两种语言Scala和Kotlin也在下降,分别为27%和9%。Scala的下降尤其值得注意。这可能反映了2021年5月发布 Scala 3.0之后,基于Scala 2的内容已经过时。
JavaScript内容的浏览量出乎意料地低,而TypeScript内容的浏览量在上升。TypeScript是否会取代JavaScript?答案是不会,即使TypeScript势头不错,但想要追赶上JavaScript还有一段路要走,TS的内容浏览量是JS的四分之一。
在薪资调查中,Python程序员的工资处于中等水平,而使用Go、Rust和Scala的受访者的工资最高。原因可能是Python已经成为通用技能,如果你从事数据工作,应该知道Python,如果会使用其他语言则可能带来附加值。如果你从事企业或后端软件的工作,Java就是通用技能;如果你从事前端开发,JavaScript就是通用技能。
云计算:混合云和多云备受关注
在云和云供应商的内容中,有关微软Azure的浏览量上升了32%,谷歌云上升了54%,而AWS相关内容的使用量下降了3%。Azure内容的实际浏览量几乎与AWS相当,而谷歌云则落后较大。
关于混合云和多云的内容浏览量仍然很小(大约是谷歌云的1/10),但增长非常快(分别为145%和240%)。多云和混合云的增长反映了一个基本现实:围绕单一供应商建立云战略是困难的,甚至是不可能的。建立云战略的一个重要部分是认识到 "云 "本质上是多(或混合)的,最大的问题不是选择哪个供应商,而是如何在多个供应商之间建立一个有效的云基础设施。
网络编程:核心组件稳定发展
在过去两年中,网络编程的核心技术一直非常稳定。关于核心组件HTML、CSS和JavaScript的内容的使用情况几乎没有变化(分别增长1%、2%和下降3%)。如果说Java和Python是企业和数据开发人员的通用技能,那么HTML、CSS和JavaScript对前端开发人员也是如此。
PHP 不是一项新技术,几乎80%的网络都是用它构建的。关于PHP的内容浏览量增加了6%,这一数据说明PHP确实不会在短时间内被替代;。jQuery的内容浏览量上升了28%,网页设计也上升了23%。
在较新的框架和元框架中,Svelte虽然七点很低,但是在茁壮成长,上升了71%。而Vue和Next.js的热度似乎正在消退,均下降了13%。如果这种情况持续下去,Svelte可能在几年内成为更广泛使用的框架的挑战者。
关于React框架的内容浏览量基本没有变化(增长2%),而Angular框架的内容浏览量则明显下降(16%)。
人工智能、ML和数据:垂直技术更受关注
2021年,标题中含有“人工智能”的内容和“人工智能”都出现了不同程度的下降,23%和11%。这些话题的范围较窄,机器学习是这一领域的主导,AI+人工智能的内容约是ML+机器学习的四分之一。而标题中含有 "机器学习 "的内容浏览量与去年持平,标题中含有 "ML "的内容浏览量上升了35%。
聚焦于具体技术,深度学习的浏览率下降了14%,但神经网络的浏览率上升了13%,强化学习上升了37%,对抗网络上升了51%。开发者的兴趣点显然已经从一般主题转移到了具体主题。
自然语言处理一直是热点,与机器学习的情况一样,标题中含有 "自然语言处理 "的内容浏览率没有太大变化(上升3%);缩写 "NLP "上升7%。
那么,结论是什么呢?像人工智能、ML和GPT这样的一般主题在内容使用方面保持着自己的地位,或者说是在下降。然而,关于特定技术的内容正在增长。
虚拟现实、增强现实和元宇宙
虚拟和增强现实总是处于爆发的临界点,但总差临门一脚。2021年,Facebook改名为“Meta”,并押注于元宇宙,带来了新的风暴。多家科技公司迅速跟进,布局元宇宙。
元宇宙带来了新的风口,但由于本次数据统计截止到9月份,所以结果可能与后续趋势有所出入。含有 "增强现实 "的内容浏览量有所下降(22%),不过虚拟现实、VR和AR都在上升(分别为13%、28%和116%),在整个组别中产生了24%的增长。
"metaverse "(元宇宙)的搜索量急剧增加(489%),但是很少在标题中看到它。关于WebXR的搜索在沉寂了一段时间之后,也增加了168%。