Swift 3正式公布几天后,IBM就已发布了自家的开源服务器端Kitura框架1.0版,以及IBM Bluemix Runtime for Swift 3。InfoQ就服务器端的Swift发展情况采访了IBM的Chris Bailey。
为了兑现改善服务器端Swift稳定性和实用性的承诺,IBM发布了适用于云平台的1.0版Swift框架:Kitura,该框架包含大量新功能,例如URL路由、SSL/TTL支持、JSON解析,以及可插拔式中间件。Kitura还包含了一个可提供静态文件的Web服务器,并提供了对Fast CGI的支持。
此外最新版Swift工具也已包含在IBM Bluemix Runtime中,借此可将Swift代码部署至IBM云平台。
InfoQ就服务器端Swift的发展情况采访了IBM公司负责Swift运行时技术开发工作的资深技术人员Chris Bailey。
您已经深入参与到Swift 3的开发工作。是否可以将您在Swift开发团队中的角色描述为服务器端Swift的倡议者?这个版本中您的主要工作重心在哪里?
Chris Bailey:随着Swift去年成为开源项目,全球有很多人通过创意和开发工作完善Swift,将其带到其他平台。我本人以及IBM的几个同事也是其中的一员。
IBM的团队主要侧重于实现Swift在服务器端的运用,为Swift开发者提供必要的能力,帮助他们用尽可能简单的方式创建服务器应用程序和框架,这是我们努力的最终目标。在Swift 3.0版中,这意味着我们需要确保Linux平台对Swift的支持必须尽可能完善,尤其是要做好提供并发能力的Dispatch库并实现Foundation库API。
虽然Foundation方面还有很多工作要做,但在Swift 3.1和Swift 4.0阶段,我们希望能同时开始着手服务器端的一些规范。
Swift 3为服务器端编程和Linux提供了更好的支持,您能否详细谈谈这方面的内容?
Bailey:Swift 3.0对服务器端和Linux的支持,主要进展在于额外的库和API支持。目前我们最热衷的工作之一是确保能够优先为Linux和服务器用例实现最重要的API。为此我们考虑过使用Kitura作为测试环境,这是IBM开发的一种开源Web框架。随后我们使用各种现有的库构建了一系列示例应用程序,通过这些应用程序研究哪些API是最需要的,并进行更有针对性的测试。随着Swift 3.0的完善,随后我们将与最新进展保持同步,进行回归测试并执行性能测试。
借此我们发现Foundation的某些API,例如URLSession和Operation其实非常关键。这些API都使用Dispatch实现并发,因此与Kitura类似,这些API也成为我们工作的重心。
Kitura 1.0包含哪些新增或改进的功能?
Bailey:2016年初,Kitura实现了一个可以全面响应URL请求的Web框架。随着后续完善,我们陆续增加了构建现实应用程序所需的功能和特性。例如身份验证、模板、跨站点请求伪造预防(CSRF)机制、跨域资源共享(CORS)支持、日志、缓存、后端数据存储和服务的访问等功能。
随着Swift 3.0和Kitura 1.0的发布,我们开始侧重于性能、代码质量,以及压力测试等工作,我们构建了更多示例、演示和教程,并发布了Kitura.io网站。
当然,对于Swift.org所做的贡献和Kitura的开发只是我们的部分工作。上周我们还发布了IBM Bluemix Runtime for Swift,其中包含最新版Swift并解决了系统依赖项问题,这样用户可以更专注于编写自己的服务器端Swift服务。Swift运行时包含了在IBM Bluemix公有云、专用云,以及本地云部署中运行所需的全部优化措施。我们还会定期更新IBM Swift Package Catalog、IBM Swift Sandbox以及IBM Cloud Tools for Swift,每个产品自身已能流畅运行,通过配合使用更可为Swift开发者提供端到端的集成式体验。这些工具目前均已发布至Swift@IBM网站。