开工福利|免费学 2200+ 精品线上课,企业成员人人可得! 了解详情
写点什么

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:315541

评论

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

🏆【Java 技术之旅】带你深入理解和认识SPI运作机制

洛神灬殇

Java 抽象 spi 7月日更

2021年Java面试心得:Java开发工程师试用期一般多久

策划Java工程师

Java 程序员 面试 后端

2021吊打面试官系列!mysql数据库版本最新

Java 程序员 面试 后端

2021年Java面试心得:西安Java电商开发招聘

策划Java工程师

Java 程序员 面试 后端

7月日更,FAIL!FAIL?

Nydia

【翻译】数据包的旅程 - OSI模型

luojiahu

计算机网络 OSI模型

2021Java高级面试题!Java面试问题大全及答案大全下载

Java 程序员 面试 后端

2021年Java开发实战!Java获取系统日期时间

Java 程序员 面试 后端

奥运神颜运动员

6979阿强

从0到1亿用户的架构设计

俞凡

架构

Linux ssh命令详解,连ssh命令都不了解就别说自己会用Linux了

北游学Java

Java Linux SSH

2021年“金三银四”来袭!Java开发接口利用http协议

策划Java工程师

Java 程序员 面试 后端

golang--字典树

en

数据结构与算法 字典树

2021京东Java面试真题:Java枚举的作用与好处

Java 程序员 面试 后端

2021年Java面试心得:Java基本类型对应的包装类型

策划Java工程师

Java 程序员 面试 后端

IM与办公平台的关系设计

superman

产品经理 架构师 IM 移动办公平台 自建移动办公

iOS开发底层面试攻略

面试 移动开发 ios开发

云计算架构师-带你安装MySQL数据库并去除安全隐患

学神来啦

MySQL 数据库 Linux 运维 MariaDB

2021年您应该知道的技术之一!Javafor循环乘法表

策划Java工程师

Java 程序员 面试 后端

2021年您应该知道的技术之一!Java工程师一天工作多久

策划Java工程师

Java 程序员 面试 后端

Python开发篇——如何在Flask下编写JWT登录

吴脑的键客

Python flask JWT

吴亦凡都美竹事件:男人全员恶人?

6979阿强

2021年Java面经分享:mysql创建数据表

策划Java工程师

Java 程序员 面试 后端

HarmonyOS开发者日杭州站举办,多维赋能开发者实现高效开发

科技汇

2021Java面试心得:kafka工具

Java 程序员 面试 后端

2021Java高级面试题总结!Java数组添加另一个数组

Java 程序员 面试 后端

2021Java面试总结!Java中VO的使用

Java 程序员 面试 后端

2021Java高级面试题总结:docker运行jar包依赖和程序分开

程序员 面试 后端

云小课 | 一分钟了解AppCube中的应用

华为云开发者联盟

低代码 云小课 应用 AppCube 应用魔方

🏆「推荐收藏」【Git实战专题】代码提交错误怎么办?教你如何回退版本!

洛神灬殇

git git flow git reset git revert

2021Java面试心得:docker运行springboot项目

Java 程序员 面试 后端

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