作为ThoughtWorks技术雷达团队的一员,我感到非常荣幸。现在已经是我们第10个年头了,我可以自豪地说,到目前为止,我参与了每一个雷达项目。每一次都充满了有趣的讨论和见解,而且我们想说的东西总是比雷达本身要多。这篇文章是一篇继续的配套文章,我花了一些时间(和一些单词)来扩展在科技行业正在发生的更大的趋势。
民主化的编程
本月我们在Radar上讨论的主题之一,也可能是当今技术中最大的持续趋势之一,就是我们所说的编程的“民主化”。这是关于把编程交到任何想做它的人的手中,并使编程机器或系统的能力更容易访问。这不是一个新想法;COBOL是“通用的面向商业的语言”,它在20世纪60年代尝试使用一种类似英语的语言来创建计算机程序,这种语言对非程序员来说更容易访问。今天,我们看到了对“低代码”平台的巨大兴趣,这些平台承诺允许我们不需要程序员就能创建软件。还有一些平台,比如以消费者为中心的IFTTT或以企业为中心的Zapier,它们允许技术不太成熟的用户连接各种设备、saas平台、端点和工作流,以完成有趣而有用的事情。如果你正在寻找一个集成框架,Apiant, 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的想法和建议。
原文:https://www.thoughtworks.com/insights/blog/macro-trends-tech-industry-oct-2020
本文:http://jiagoushi.pro/node/1291
讨论:请加入知识星球【首席架构师智库】或者小号【jiagoushi_pro】或者QQ群【11107777】
- 登录 发表评论
- 17 次浏览
最新内容
- 1 hour ago
- 1 hour ago
- 2 hours ago
- 2 hours ago
- 2 hours ago
- 6 hours 52 minutes ago
- 8 hours 17 minutes ago
- 8 hours 26 minutes ago
- 8 hours ago
- 1 week 1 day ago