「IT技术趋势」IT科技行业宏观趋势|2020年10月

简介: 「IT技术趋势」IT科技行业宏观趋势|2020年10月

作为ThoughtWorks技术雷达团队的一员,我感到非常荣幸。现在已经是我们第10个年头了,我可以自豪地说,到目前为止,我参与了每一个雷达项目。每一次都充满了有趣的讨论和见解,而且我们想说的东西总是比雷达本身要多。这篇文章是一篇继续的配套文章,我花了一些时间(和一些单词)来扩展在科技行业正在发生的更大的IT趋势。

民主化的编程

本月我们在Radar上讨论的主题之一,也可能是当今技术中最大的持续趋势之一,就是我们所说的编程的“民主化”。这是关于把编程交到任何想做它的人的手中,并使编程机器或系统的能力更容易访问。这不是一个新想法;COBOL是“通用的面向商业的语言”,它在20世纪60年代尝试使用一种类似英语的语言来创建计算机程序,这种语言对非程序员来说更容易访问。今天,我们看到了对“低代码”平台的巨大兴趣,这些平台承诺允许我们不需要程序员就能创建软件。还有一些平台,比如以消费者为中心的IFTTT或以企业为中心的Zapier,它们允许技术不太成熟的用户连接各种设备、saas平台、端点和工作流,以完成有趣而有用的事情。如果你正在寻找一个集成框架,Apiant,

Mendix,Blendr, Microsoft Flow, Pipedream, Quickwork和Tray.io(举几个例子)可以帮上忙。在应用程序创建方面,亚马逊蜜码(Amazon Honeycode)获得了一些动力,尽管它被雷达的一位作者描述为“云上的微软访问”。



我们认为编程的能力,或者至少对我们所使用的系统的功能有一定的发言权,是极其重要的。在道格拉斯·拉什科夫(Douglas Rushkoff)的《程序或编程》(Program or Be Programming)一书中,他认为我们必须选择是指导技术,还是让自己受技术和掌握技术的人来指导。除了这一哲学观点,一个显而易见的事实是,世界对软件的需求比现有的IT团队所能创造的还要多,而且速度更快。

电子表格就是一个常见的例子。几乎每一家企业都有某种电子表格参与运行,IT行业的每个人都看到了可能出现的问题;内置关键、未经测试的业务逻辑的巨型电子表格相当常见。最近,更令人担忧的是,我们看到世界各地的多家医疗服务机构由于电子表格错误而丢失或错误处理COVID-19数据。电子表格通常用于允许非程序员快速创建、存储和操作数据,而无需与真正的程序员一起进入漫长的开发周期。低代码平台与此类似,它们承诺通过使用预先烘焙的组件和配置而不是代码来加速软件开发。

电子表格和低代码有一个共同的关键特征:就所需的功能类型或问题域的复杂性而言,它们都能在某个“最佳位置”工作,但如果进一步推进,则会严重失败。不幸的是,首先选择这样一个解决方案的原因——技术人才或时间的匮乏——也阻止了使用电子表格或低代码环境的人意识到他们已经将解决方案推到了它的最佳位置之外。因此,我们建议使用有限的低代码平台来管理这种风险,同时还要利用民主化编程平台的可能加速。

如果对低代码开发感兴趣,欢迎关注公众号【低代码开发大讲堂】「低代码开发」低代码开发技术概述

Rust继续蔓延

我们最喜欢的编程语言之一是Rust,它是一种高性能类型和内存安全的语言,可以用作系统编程语言(替代C或c++),或者本身作为一种通用语言。Rust的受欢迎程度持续增长,连续五年被评为Stack Overflow最喜欢的语言。

在Radar的这个版本中,我们注意到Rust被用于大数据和机器学习任务,这些任务通常需要Python完成,并且在某些情况下可以提供很大的性能优势。我们还注意到了Materialize,这是一个用Rust编写的面向流、低延迟的数据库。

那么是什么让《Rust》如此受欢迎呢?就我个人而言,我发现其强大的表现力和编译时安全性的结合是独一无二的。Stack Overflow指出,Rust是一种“看起来像是由用户体验设计师开发的”编程语言,这些设计师对该语言有一个清晰的愿景,并且仔细地选择了要包含的内容。所有这些善意创造了一个围绕着Rust的支持性的、可访问的社区,以及一个不断改进的库和工具生态系统。

可视化所有的事情

这个版本的Radar包含了一些很好的可视化工具示例。对于理解我们今天所构建的复杂系统,创建一个良好的视图(架构、代码复杂性、系统性能或微服务生态系统中的分布式跟踪)的能力比以往任何时候都更加重要。我们谈到的可视化工具的例子包括:

  • Dash和Streamlit,用于构建ML和数据科学web应用程序的框架
  • Dash,既可用于ml类型的应用程序,也可用于商业智能环境中构建自定义报告和仪表盘
  • Kiali,一个用于基于isti的服务网格的管理控制台,它提供仪表盘和其他可观察工具
  • OpenTelemetry,用于捕获分布式跟踪和度量的API和SDK
  • Polyglot Code Explorer ,用于可视化地检查代码库并研究其运行状况和结构的工具

您可能已经熟悉主流BI工具(如Tableau或Power BI)的可视化功能,这一领域的工具正在涌现。但是像Dash和Streamlit这样的工具提供了一种基于代码的可视化方法,并带来了所有相关的好处——灵活性、可定制性、版本控制和自动部署。这些都是考虑使用框架而不是成熟的“data studio”风格工具的好理由。

作为代码的基础设施正在流行和成熟

在我们的雷达主题中,我们把基础设施的“青春期”称为代码,并且我们在使用这个词时有意地带有积极和消极的含义。就像一个有点笨拙的青少年,作为代码的基础设施正在成长。这是积极的,因为随着越来越成熟,我们开始看到更好的结果和围绕这项技术成长的生态系统。但是也有成长的烦恼,比如一些工具中的不一致,以及相互竞争的方法和哲学。

那么什么是基础设施代码呢?简单地说,就是基础设施的自动化和对自动化的精心管理。规范的描述来自我们的同事Kief Morris的书,《Infrastructure as Code: Managing Servers in the Cloud》 ,其第二版即将出版。根据Morris的说法,不同的思想流派正在涌现出将基础设施作为代码的观点:Pulumi迷们说“基础设施就是软件”,Hightower说“基础设施就是数据”,而WeaveWorks则催生了“GitOps”。这些不同的理念最终会如何发展还有待观察,但现在我们将其定义为基础设施代码的风格,而不是与IT的重大背离。该领域的工具得到了飞跃式的改进,CDK和Pulumi的例子说明了该生态系统的成熟度正在提高。

浏览器作为一个偶然的应用程序平台

这个古老的internet浏览器最初就是这样的——一个浏览HTML文档并使用超链接在它们之间导航的工具。随着浏览器的流行,HTML 2.0添加了更多的标记和向服务器提交“表单”以获得更多交互式web页面的能力。在Netscape与微软的斗争中,他们意识到需要一种浏览器脚本语言,所以JavaScript(最初命名为Mocha)被匆忙地以10天的开发周期添加到Netscape中。历史上的这一次被称为“浏览器战争”,因为像网景和微软这样的公司在HTML中添加了专有的扩展,试图在竞争中占得先机。你可能还记得这个时候网页上的“在Internet Explorer中工作得最好”徽章。Flash和嵌入式Java applet也为页面增加了交互性,Ajax标准诞生了,JavaScript被开发人员重新发现,甚至开始被用作后端语言(例如在node.js中)。

这里的要点是,浏览器一开始只是一个简单的文档查看器,但后来被迫成为一个应用程序平台。我在谷歌Docs上写这篇文章,在YouTube上听音乐,通过谷歌Chat和我的同事聊天。聊天运行在一个看起来像本地应用程序窗口的地方,但实际上只是一个包含web页面的单一窗格。我现在使用的大多数应用程序都是通过浏览器发送的。

浏览器意外地成为了一个应用平台,而且从一开始就不是这样设计的,这一事实继续给IT行业带来压力。

这些年来,我们已经说服了浏览器去做更多令人惊奇的事情,浏览器已经成为一个复杂的平台和生态系统。一般来说,不同的浏览器提供了广泛的兼容性,填充填补了这一差距,使开发人员更容易针对多个浏览器。但是JavaScript生态系统本身仍然是令人困惑的复杂,并在快速发展。我们讨论过将Redux从“采用”移回“试用”,因为开发人员开始寻找其他方法来管理他们的反应应用程序的状态(例如 Recoil)。但即使在今天,构建web应用程序的“正确”方式仍在继续发展:Svelte已经获得了越来越多的关注,并且正在挑战由流行的应用程序框架React和Vue应用的一个已建立的概念:虚拟DOM。

测试是浏览器或多或少被迫进行协作的另一个领域,但仍然受到自动化和测试工具被重新安装的困扰,而不是作为头等目标设计和支持测试工具。在Radar的这个版本中,PlayWright 试图改进UI测试,而Mock Service Worker 是一种将测试与后端交互解耦的方法。

我们也看到了浏览器向“原生”代码平台的演变,WebAssembly提供了一个高效的虚拟机,旨在以接近原生的速度运行代码。例如,在你的浏览器中以60帧每秒的速度检查Doom 3。

浏览器不会走向任何地方,但它主要是一个偶然的应用程序平台这一事实继续在技术社区中引起反响,每个项目都应该至少花一些时间来保持在最新的浏览器相关开发的顶部。

以上就是本期《宏观趋势》的全部内容。我要感谢我的“多普勒”成员伙伴们对本文的帮助,以及Andy Yates, Brandon Byars, Ian Cartwright, Kief Morris和Ned Letcher的想法和建议。

相关文章
|
1月前
|
边缘计算 人工智能 机器人
技术趋势前瞻:2024年的技术革新
【10月更文挑战第3天】技术趋势前瞻:2024年的技术革新
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
你眼中的IT行业现状与未来趋势
你眼中的IT行业现状与未来趋势
43 0
|
6月前
|
传感器 物联网 区块链
未来交织:新兴技术的综合趋势与跨界应用
【4月更文挑战第25天】 随着科技的迅猛发展,新兴技术如区块链、物联网(IoT)、虚拟现实(VR)等正在不断突破原有的边界,形成交互式的创新网络。本文将深入探讨这些技术的独立发展趋势以及它们如何相互融合,共同塑造未来社会的多个方面。通过对这些技术在金融、医疗、教育、娱乐等行业应用案例的分析,揭示它们如何推动产业升级,优化用户体验,并促进经济的持续增长。
|
6月前
|
传感器 人工智能 物联网
未来科技的趋势与挑战
【2月更文挑战第5天】 随着科技的迅猛发展,我们正处在一个科技蓬勃发展的时代。本文将探讨未来科技的趋势与挑战,涵盖人工智能、区块链、物联网等领域,以及其对社会和个人生活的影响。通过对这些技术的分析和展望,我们可以更好地理解未来科技的走向,并为应对挑战做出准备。
|
人工智能 Cloud Native 安全
Gartner2022技术趋势
Gartner2022技术趋势理解与认识
166 0
|
存储 自动驾驶 物联网
技术趋势提前掌握: Gartner 2014年十大IT战略性技术趋势
近日,在2013 Gartner Symposium/Itxpo全球大会。Gartner对2014 年具有战略意义的十大技术与趋势做出了总结。他们预测这些技术会在未来三年里拥有巨大潜力,并在同行业中产生重大的影响。
技术趋势提前掌握: Gartner 2014年十大IT战略性技术趋势
|
机器学习/深度学习 人工智能 供应链
五大关键新兴趋势,三大颠覆性技术 |德勤这份报告告诉你未来的技术趋势是什么
近日,《德勤 2020 技术趋势报告》(中文版)正式发布,报告指出了五个可能在短期内引发颠覆性变革的关键新兴趋势:“数字孪生:连结现实与数字世界”;“架构觉醒”;“技术道德与信任”;“人感体验平台”;“财务与 IT 的未来”。
|
机器学习/深度学习 人工智能 分布式计算
|
Web App开发 BI 虚拟化