Swift五年,ABI终于稳定了

等啊等,盼儿盼,终于在年的WWDC大会之前,Swift5正式发布了,而更让大家想要奔走相告的是这一版本的ABI稳定了!

曾于年正式担任Swift语言开发项目组主管TedKremenek于近日在Swift官方博客上正式宣布,Swift5发布了!而这一次他也成功完成了彼时走马上任时立下的flag,为Swift带来ABI的稳定。如今Swift可以更好地为当前和未来版本的苹果操作系统macOS、iOS、tvOS和watchOS服务。

与此同时,Swift5还引入了构建块的新功能,包括重新实现String、在运行时对执行内存的独占访问和新数据类型,以及对动态可调用类型的支持。接下来,我们将一一探讨Swift5中的变化。

ABI的稳定意味着什么?

当前有关最新版本的Swift5,最为热议的话题之一毋庸置疑就是“ABI稳定性”。在此,要论ABI的稳定对Swift意义为何如此重大?

其实,从开发者角度而言,早在4年前Swift2.0发布之际,大家就希望Swift中的ABI能够稳定,因为只有这样Swift才能算是一门成熟的编程语言,否则用程序员的话来调侃,「自从学了Swift之后,每年都要学一门新语言」。

从技术角度来看,ABI的稳定指的是二进制接口稳定,这意味着Swift应用程序不用再包含用于Swift标准库和SwiftSDK的动态链接库,这些基础库将会被植入系统中。简而言之,以后如同Objective-Cruntime一样,Swiftruntime和标准库会随着iOS、macOS、tvOS、watchOS的发布一起被提供。这样带来最为直接的影响就是可以为App瘦身。

不过当前仍有局限性的是,ABI稳定虽然可以让runtime支持多个Swift版本,但是前提是苹果应用的开发者和框架、库的作者必须使用相同版本的编译器。如果想要删除此限制,根据Swift官方博客描述,库作者需要一个当前正在实现的功能,称之为ModuleStability。通过这一点也可以预料到,在接下来的Swift5.1版本中,ModuleStability应会是一个重要的目标。

那么ABI的稳定是否完全是一件好事?其实不然,正如知名iOS开发者王巍(江湖人称“喵神”)日前在自己的博客上(


转载请注明:http://www.aierlanlan.com/rzgz/325.html

  • 上一篇文章:
  •   
  • 下一篇文章: