Apple 釋出了新的 Swift Container 外掛,旨在簡化構建和釋出 Swift 應用程式容器映象的過程。雖然該工具承諾為 Swift 開發者簡化雲部署,但社群討論顯示,關於 Swift 在伺服器端開發和跨平臺應用方面的可行性,開發者們持有不同看法。
Swift Container 外掛:簡化雲部署
Swift Container 外掛允許開發者將 Package.swift 中定義的可執行產品打包成容器映象併發布到容器登錄檔。透過一個簡單的命令,開發者可以構建併發布他們的 Swift 應用程式作為容器映象,使雲服務部署變得更加直接。該外掛在 macOS 和 Linux 上都能工作,需要 Swift 6.0 或更高版本,而 macOS 使用者需要安裝跨編譯 Swift SDK 來構建可在基於 Linux 的雲基礎設施上執行的可執行檔案。
Swift Container 外掛需求
- 可在 macOS 和 Linux 上執行
- 需要 Swift 6.0 或更高版本
- 在 macOS 上:需要跨平臺編譯 Swift SDK(例如,Swift Static Linux SDK)
- 構建映象時不需要容器執行時
- 執行構建的映象需要容器執行時
開發者社群對 Swift 伺服器端潛力看法不一
社群對 Swift 作為伺服器端語言的接受度顯示出明顯的分歧。一些開發者讚賞 Swift 的語言設計和效能,而其他人則對其編譯時間問題和生態系統限制表示失望。討論中的一個反覆出現的主題是 Swift 的型別系統,在處理複雜程式碼時,它有時會導致編譯器掛起或產生晦澀難懂的錯誤資訊。
「Swift 作為一種語言絕對是出色的。但是其限制條件(如與 Objective-C 的相容性)使它變得龐大複雜。考慮到它的規模,他們能讓這種語言運作起來實際上是非常令人驚訝的。」
儘管面臨這些挑戰,一些評論者指出,Swift 6.0 在編譯時間和整體效能方面有了顯著改進,特別是在 Apple Silicon Mac 上。一些開發者報告說,包含數百個 Swift、C++ 和 C 檔案的非平凡應用程式現在幾乎可以即時編譯。
跨平臺問題和 Apple 的控制
開發者中的一個重要擔憂是 Apple 對 Swift 開發的控制以及該語言的跨平臺未來。雖然 Swift 官方支援 Linux、Windows 甚至 WASM/WASI 平臺,但一些開發者報告說,與 Rust 等替代方案相比,構建真正的跨平臺庫存在困難。例如,根據社群評論,Swift WASM 專案仍在使用一個分叉的編譯器。
許多開發者對於在跨平臺或伺服器端應用程式中大量投資 Swift 表示擔憂,因為他們不確定 Apple 是否會長期致力於支援非 Apple 平臺。一些人認為,Apple 需要放棄對 Swift 未來方向的更多控制權,才能使其成為 Apple 生態系統之外更可行的選擇。
關於Swift的常見社群擔憂
- 複雜型別推斷的編譯時間問題
- Apple 對語言發展方向的控制
- 跨平臺支援的挑戰
- macOS 上缺乏原生容器技術
- 工具問題(尤其是對 Xcode 的投訴)
macOS 容器限制
討論還強調了 macOS 使用者面臨的一個重要限制:缺乏原生容器技術。與 Linux 透過網路名稱空間等核心功能提供強大的容器支援不同,macOS 缺乏等效的隔離原語。這使得在 macOS 上開發和測試容器化應用程式變得更具挑戰性,通常需要 Linux 虛擬機器或像 Orbstack 這樣的替代解決方案。
一些評論者推測,Apple 可能正在開發 macOS 的原生容器技術,他們指出最近在虛擬化方面的進展可能是未來在這一領域發展的證據。
Swift 語言評價:實用但複雜
許多開發者欣賞 Swift 對應用程式開發的實用方法,將其描述為快速構建終端使用者產品的出色語言。該語言的安全特性,如強制處理空值情況和錯誤,受到特別讚揚。然而,其他人指出,其複雜性和偶爾出現的編譯器問題是重大缺點。
Swift Container 外掛代表了伺服器端 Swift 開發的一步進展,但社群討論表明,在 Apple 生態系統之外更廣泛的採用將取決於跨平臺支援、編譯器效能的持續改進,以及也許是一個包含更多利益相關者而不僅僅是 Apple 的治理模式。