写点什么

IBM 终止参与 Swift,这会产生什么影响?

  • 2020-02-07
  • 本文字数:2485 字

    阅读完需:约 8 分钟

IBM终止参与Swift,这会产生什么影响?

IBM近期终止参与服务器端Swift的推进工作。IBM 自Swift开源以来就参与其中,IBM 现在已放弃在 SSWG(Swift Server Work Group,Swift 服务器工作组)中的领导地位。这将对 Swift 及 Swift 社区将产生什么影响,InfoQ 就此采访了 IBM 的 Chris Bailey。


IBM 的这一决定于 2019 年 12 月公开发布在 Swift 邮件列表中,该决定立刻在 Swift 及Y CombinatorReddit等相关开发人员社区中引发强烈反响。人们给出了多方面评论,做出了各种猜测,涉及 IBM 的声明对服务器端 Swift 开发的可能影响,以及导致 IBM 做出如此决定的根本原因。


一些开发人员猜测是由于Vapor的发展壮大动摇了 IBM 在此领域的影响地位。Vapor 是 IBM 服务器端 Swift 开发框架Kitura的主要竞争产品。也有人指出,是由于Rust、Go等新兴语言在服务器端表现比Swift更为成功。一些人甚至预言服务器端Swift将走向终结。当然,兼听则明,也有人发推文表达了对服务器端Swift的信心


为深入报道实情,InfoQ 有幸采访了 IBM 前高级技术委员会成员 Chris Bailey。Bailey 主要关注 Swift 的运行时技术,他和 Ian Partridge 这两位 IBM 贡献者一并退出了 SSWG 工作组。


InfoQ:介绍一下您过去参与服务器端 Swift 项目的情况,以及您的主要贡献。


Chris Bailey:我本人及 IBM 团队自 Swift.org 项目开源发布以来就参与其中。在前期,我们侧重于支持可用于 Linux 等服务器环境的 Swift 语言核心和 API。我们的工作包括 Swift 语言本身、Dispatch 并发库和 Foundation API 库等。所有这些构成了 Swift 运行时。由此,我们创建了 SSWG 工作组,凝聚致力于服务器框架的各个社区,并基于通用的核心库开展协作,扩展服务器系统生态。

不仅是 Swift.org 社区,我们还创建了 Kitura 框架及相关的软件库和工具,形成了围绕 Kitura 构建的生态。该生态提供完整的微服务框架,支持运行云原生应用所需全部特性。


InfoQ:Kitura 作为一个完善的框架,多年来已具有 70 多位贡献者,完成 163 次版本发布。对于那些在您和 Ian Partridge 离开项目后坚持使用 Swift 的开发人员,您是否依然强力推荐 Kitura?


Bailey:Kitura 每日有上千次的下载量,一些大型企业也在生产环境中使用,其中不乏公开宣称是 Kitura 使用情况者。

IBM 依然通过所有现有的商业协议支持 Kitura,不过我们正在逐步减少对新功能继续开发的贡献。这为广泛的社区参与提供了更多的空间和机会,我们正在努力使社区中感兴趣的各个参与者能够使用这项技术。与其它所有的开源项目一样,Kitura 的长期成功取决于围绕其形成的活跃社区,并且用户也愿意为他们所使用的技术做出贡献。

我希望这将引导 Kitura 更趋向于成长为一个社区引领发展的项目,进而继续发展壮大。


InfoQ:在 Linux 平台上的 Swift 现状如何?在您看来,Swift 要在 Linux 平台上占据一席之地,还需要做哪些工作?


Bailey:Swift 屹立于巨人肩膀之上,它的确是一项伟大的技术。作为一种新的语言,Swift 的设计和构建是基于对前期语言的充分了解,并博采其它语言之长。

Swift 本身很好地支持在服务器端使用。Swift 起源和聚焦于移动设备端,这意味着 Swift 具有内存占用较低、启动快速的优点。这两点对于服务器端运行同样非常重要。

一直以来,Swift 的最大问题在于它是否能跳出一种 iOS 移动开发人员用于对移动应用构建全栈前端(BFF)的技术,进而作为一种通用服务器技术应用于更广阔的应用领域。

作为 Apple 生态系统中的嵌入式技术,Swift 从中受益匪浅。此外,在服务器生态系统所需要的功能方面,它对 Apple 有很多依赖,这对它的有机增长带来了很多的挑战。例如,几乎所有 Swift 开发人员都使用 Apple Xcode 作为 IDE,它对 iOS 设备开发提供出色的支持,其中包括在模拟器环境中提供本地运行的功能。如果 Xcode 能添加对编写服务器端代码的支持,那会更好。这样开发人员可以通过简单集成Appsody等开发工具到 Xcode,直接从本地 IDE 对容器环境做开发。一旦在社区中形成了开放式治理和开放式生态,人们就可通过做出贡献去解决对自身非常重要的问题和用例。

Apple 公司正努力解决这些问题,支持更开放的 Swift,助力构建服务器生态系统,并在近期加快了步伐。Tom Doron 一直致力于领导 Apple 公司通过 SSWG 工作组推进服务器端生态系统。此外,Ted Kremenek 最近在 Swift 论坛发文“通往 Swift 6 之路”(the road to Swift 6),阐述了逐步扩展生态系统并使其更开放的强烈意愿。文中提及进一步侧重于新兴的语言服务器协议(LSP,Language Server Protocol)项目,以支持更多 IDE 进而推动 Swift 的发展。


InfoQ:在服务器端领域,继 Swift 和 Kitura 推出以后,服务器端原生语言领域经历了 Go 和 Rust 的兴起。尤其是 Rust,至少在专注于安全方面,应该是 Swift 的直接竞争对手。您如何看待这些语言技术栈之间的对比


Bailey: Go、Rust 和 Swift 经常被一并归类为“现代原生语言”(Modern Native Languages)。它们都是编译型的类型安全原生语言,视为 C/C++语言的现代替代语言。

作为一种编程语言,Swift 非常年轻。它于 2014 年中首次出现,但正式支持 Linux 的开源项目是直到 2016 年 9 月(仅三年半前)才作为正式项目发布。相比之下,Go 项目和 Rust 项目分别已经存在了 10 年和 9.5 年,这意味着这两种语言具有明显的先发优势。

作为一种系统语言,Go 正在应用于云技术的核心基础设施(如 Kubernetes),并且可用于 CLI 的开发,因此形成了真正的市场。Rust 在一定程度依然在确定自身的市场定位,但是 WebAssembly 的发展推动了对它的更多关注。显然就采用曲线而言,Swift 稍为落后。

我在去年的AltConf大会上报告了服务器端Swift联盟的现状,给出了服务器端 Swift 的当前采纳程度。我在报告中比较了同一发展年龄段上 Swift 和 Node.js 软件包生态的规模。尽管在相同年龄段上 Swift 落后于 Node.js,但目前已与大家所期待的相差无几。

从根本上看,服务器端 Swift 潜力巨大,我非常期待其未来成功发展并得到广泛采用。


服务器端Swift的官方论坛提供项目的进展情况。InfoQ 将继续为读者提供相关最新关注资讯。


原文链接:


IBM Stops Work on Swift — Q&A with Chris Bailey


2020-02-07 10:315985

评论

发布
暂无评论
发现更多内容

SLSA: 成功SBOM的促进剂

安势信息

开源 开源软件供应链 软件物料清单 SBOM SLSA

RabbitMQ基础知识

龙空白白

RabbitMQ

Fabric.js 手动加粗文本iText

德育处主任

canvas FabricJS 6月月更

直播回顾 | 云原生混部系统 Koordinator 架构详解(附完整PPT)

阿里巴巴云原生

阿里云 架构 云原生 混部 Koordinator

应用实践 | Apache Doris 整合 Iceberg + Flink CDC 构建实时湖仓一体的联邦查询分析架构

SelectDB

数据库 flink Doris iceberg

RabbitMQ访问Web端口报错User can only log in via localhost

龙空白白

火线沙龙第26期-多云安全专场

腾源会

Python 设计模式:适配器模式

宇宙之一粟

设计模式 适配器模式 6月月更

准备好迁移上云了?请收下这份迁移步骤清单

龙智—DevSecOps解决方案

迁移计划 迁移上云计划 迁移上云步骤 上云步骤清单 云迁移策略

八大误区,逐个击破(终篇):云难以扩展、定制性差,还会让管理员失去控制权?

龙智—DevSecOps解决方案

Atlassian 云版 版本选择 迁移上云

如何使用物联网低代码平台进行流程管理?

AIRIOT

低代码 物联网,

Helix QAC更新至2022.1版本,将持续提供高标准合规覆盖率

龙智—DevSecOps解决方案

C语言 静态代码分析 Helix QAC 代码合规率 代码合规

在宇宙的眼眸下,如何正确地关心东数西算?

脑极体

脚本之美│VBS 入门交互实战

Windows Server 6月月更 VBS 脚本之美

JDBC 在性能测试中的应用

阿里巴巴云原生

阿里云 云原生 JDBC 压测

如何通过7个步骤编写出色的在线用户手册

小炮

区块哈希竞猜游戏系统开发(dapp)

薇電13242772558

哈希值

如何轻松快速构建区块链应用?技术大牛带来一线技术实践分享

腾源会

学C++还是学Java?做软件研发还需掌握哪些知识和技能?

dvlinker

Java c++ 数据库 网络知识 汇编代码

openGauss Developer Day 2022正式开启,与开发者共建开源数据库根社区

SAVE: 软件分析验证和测试平台

华为云开发者联盟

云计算 测试 后端 开发 软件分析

基于微信小程序的婚纱影楼小程序开发笔记

CC同学

小程序

直播分享| 腾讯云 MongoDB 智能诊断及性能优化实践

MongoDB中文社区

mongodb

活动报名 | MongoDB 5.0 时序存储特性介绍

MongoDB中文社区

mongodb

好用的人事管理软件有哪些?人事管理系统软件排名!

优秀

企业管理软件 OA管理系统

游戏资产复用:更快找到所需游戏资产的新方法

龙智—DevSecOps解决方案

游戏开发 游戏资产 艾尔登法环 游戏资产复用

微信视频号如何用 PC 电脑做直播?

boshi

直播 视频号

远程办公之:如何成为时间管理大师?| 社区征文

甜甜的白桃

初夏征文

混沌工程,了解一下

华为云开发者联盟

云计算 测试 后端 混沌工程 华为云

为什么你的数据图谱分析图上只显示一个值?

清林情报分析师

数据分析 可视化 知识图谱 三元组 情报分析

Flutter中的GetX状态管理用起来真的那么香吗?

岛上码农

flutter ios 移动端开发 安卓开发 6月月更

IBM终止参与Swift,这会产生什么影响?_移动_Sergio De Simone_InfoQ精选文章