Categories
程式開發

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