在6月的時候,Apple推出Swift System函式庫,提供符合Swift語言特性的系統呼叫介面,而現在官方宣布開源System原始碼,還加入提供Linux支援,官方提到,他們的願景是要讓System,最終能夠包含所有Swift支援平臺的低階系統介面。

Swift System並非跨平臺函式庫,而是一個多平臺函式庫,在每個支援的平臺,都提供一組獨立的API和行為,以呈現底層作業系統介面。現今大多數作業系統,都支援存在數十年,用C語言開發的系統介面,而在Swift中也可以使用這些API,但官方提到,從C匯入的這些弱型別系統介面,不只容易出錯而且難以處理,API署名沒有寫明使用規則,因此程式語言也無法引導用戶正確使用API。

而新的System模組則帶來多語言功能,以改善表達性和消除可能發生錯誤的機會,像是System在FileDescriptor命名空間中,以預設參數定義開放系統呼叫為靜態函式,而開放版本與C版本比較,System模組普遍使用原始可表示的結構和選項集,強類型有助於編譯器在編譯時捕捉錯誤,而且還能自由地與較弱的C類型相互轉換,另外,開放版本使用起來也較C版本更為安全。整體來說,以System模組撰寫的程式碼,閱讀起來以及行為邏輯,更符合Swift的特性。

官方提到,他們近期目標,是要簡化跨平臺函式庫和應用程式的建置工作,諸如SwiftNIO和Swift套件管理器,System並沒有消除使用#if os()條件,來實作跨平臺抽象的方法,但是改善針對特定平臺的部分,使其變得更加安全。System函式庫目前還僅是初期階段,只包含少量的系統呼叫等功能,為了擴大API覆蓋範圍,官方將在Swift套件管理器中採用System函式庫,而這會強化FilePath功能,並對剛宣布的Windows Swift提供更多支援。

熱門新聞

Advertisement