Swift 3正式公布幾天后,IBM就已發(fā)布了自家的開源服務器端Kitura框架1.0版,以及IBM Bluemix Runtime for Swift 3。InfoQ就服務器端的Swift發(fā)展情況采訪了IBM的Chris Bailey。
為了兌現改善服務器端Swift穩(wěn)定性和實用性的承諾,IBM發(fā)布了適用于云平臺的1.0版Swift框架:Kitura,該框架包含大量新功能,例如URL路由、SSL/TTL支持、JSON解析,以及可插拔式中間件。Kitura還包含了一個可提供靜態(tài)文件的Web服務器,并提供了對Fast CGI的支持。
此外最新版Swift工具也已包含在IBM Bluemix Runtime中,借此可將Swift代碼部署至IBM云平臺。
InfoQ就服務器端Swift的發(fā)展情況采訪了IBM公司負責Swift運行時技術開發(fā)工作的資深技術人員Chris Bailey。
您已經深入參與到Swift 3的開發(fā)工作。是否可以將您在Swift開發(fā)團隊中的角色描述為服務器端Swift的倡議者?這個版本中您的主要工作重心在哪里?
Chris Bailey:隨著Swift去年成為開源項目,全球有很多人通過創(chuàng)意和開發(fā)工作完善Swift,將其帶到其他平臺。我本人以及IBM的幾個同事也是其中的一員。
IBM的團隊主要側重于實現Swift在服務器端的運用,為Swift開發(fā)者提供必要的能力,幫助他們用盡可能簡單的方式創(chuàng)建服務器應用程序和框架,這是我們努力的最終目標。在Swift 3.0版中,這意味著我們需要確保Linux平臺對Swift的支持必須盡可能完善,尤其是要做好提供并發(fā)能力的Dispatch庫并實現Foundation庫API。
雖然Foundation方面還有很多工作要做,但在Swift 3.1和Swift 4.0階段,我們希望能同時開始著手服務器端的一些規(guī)范。
Swift 3為服務器端編程和Linux提供了更好的支持,您能否詳細談談這方面的內容?
Bailey:Swift 3.0對服務器端和Linux的支持,主要進展在于額外的庫和API支持。目前我們最熱衷的工作之一是確保能夠優(yōu)先為Linux和服務器用例實現最重要的API。為此我們考慮過使用Kitura作為測試環(huán)境,這是IBM開發(fā)的一種開源Web框架。隨后我們使用各種現有的庫構建了一系列示例應用程序,通過這些應用程序研究哪些API是最需要的,并進行更有針對性的測試。隨著Swift 3.0的完善,隨后我們將與最新進展保持同步,進行回歸測試并執(zhí)行性能測試。
借此我們發(fā)現Foundation的某些API,例如URLSession和Operation其實非常關鍵。這些API都使用Dispatch實現并發(fā),因此與Kitura類似,這些API也成為我們工作的重心。
Kitura 1.0包含哪些新增或改進的功能?
Bailey:2016年初,Kitura實現了一個可以全面響應URL請求的Web框架。隨著后續(xù)完善,我們陸續(xù)增加了構建現實應用程序所需的功能和特性。例如身份驗證、模板、跨站點請求偽造預防(CSRF)機制、跨域資源共享(CORS)支持、日志、緩存、后端數據存儲和服務的訪問等功能。
隨著Swift 3.0和Kitura 1.0的發(fā)布,我們開始側重于性能、代碼質量,以及壓力測試等工作,我們構建了更多示例、演示和教程,并發(fā)布了Kitura.io網站。
當然,對于Swift.org所做的貢獻和Kitura的開發(fā)只是我們的部分工作。上周我們還發(fā)布了IBM Bluemix Runtime for Swift,其中包含最新版Swift并解決了系統依賴項問題,這樣用戶可以更專注于編寫自己的服務器端Swift服務。Swift運行時包含了在IBM Bluemix公有云、專用云,以及本地云部署中運行所需的全部優(yōu)化措施。我們還會定期更新IBM Swift Package Catalog、IBM Swift Sandbox以及IBM Cloud Tools for Swift,每個產品自身已能流暢運行,通過配合使用更可為Swift開發(fā)者提供端到端的集成式體驗。這些工具目前均已發(fā)布至Swift@IBM網站。