Swift System函式库现在开源并新增支援Linux

在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提供更多支援。
