歡迎加入QQ討論群258996829
一葉知秋 頭像
蘋果2袋
2
一葉知秋

Swift 語(yǔ)言正式開始布局 Server-Side 戰(zhàn)略

發(fā)布時(shí)間:2016-10-27 20:27  回復(fù):0  查看:3765   最后回復(fù):2016-10-27 20:27  

昨天半夜看到一封郵件《 Announcing Server APIs work group 》,讓我激動(dòng)地去發(fā)了一條微博。

簡(jiǎn)單地說,Swift 官方成立了一個(gè) Server APIs Work Group ,這個(gè)小組的目標(biāo)是在當(dāng)前 Swift 的基礎(chǔ)上,做一套純 Swift 的、跨平臺(tái)的、專門面向 Server 的底層庫(kù),提供給 Web Framework/Backend 的開發(fā)人員使用。也就是說,Swift 官方攜手社區(qū),正式進(jìn)軍 Sever-Side 開發(fā)領(lǐng)域了。

Server APIs 的由來(lái)

話說 Swift 從誕生之初就定目標(biāo)為一個(gè)通用的編程語(yǔ)言,到了不久前 Swift 3.0 正式發(fā)布,不僅已經(jīng)正式支持了 Linux 平臺(tái),社區(qū)和企業(yè)也萌現(xiàn)了一堆 Web 相關(guān)的架構(gòu),比如 IBM 的 Kitura、創(chuàng)業(yè)公司 Perfect,來(lái)自社區(qū)的 Vapor 和 Zewo。可以說這個(gè)生態(tài)已經(jīng)漸漸起來(lái)了,盡管還比較早期和稚嫩。那么 Swift 官方成立 Server APIs Work Group 的意義是什么呢?在我看來(lái),就是起到「催化劑」作用。

如果你研究過當(dāng)下 Kitura, Vapor, Zewo 等基于 Swift 開發(fā)的 Web 框架,就會(huì)發(fā)現(xiàn)他們各種去實(shí)現(xiàn)或者包裝了一堆非常底層或者常用的庫(kù):底至 HTTP 協(xié)議、WebSocket、SSL,高至 JSON、XML 的解析。這是因?yàn)?Swift 的標(biāo)準(zhǔn)庫(kù) Foundation 只提供了最基礎(chǔ)的諸如 Array、Dictionary、Set 等數(shù)據(jù)結(jié)構(gòu)等東西,并沒有更多了(Swift 有 JSON/XML 解析,但是接口不好用)??梢哉f第三方花了很多時(shí)間去做了一堆原本應(yīng)該是語(yǔ)言標(biāo)準(zhǔn)庫(kù)應(yīng)該包括的東西,而且各種框架間因?yàn)殚_發(fā)理念的不同,很多東西各自實(shí)現(xiàn),浪費(fèi)了資源。

所以,官方 Server APIs Work Group 的出現(xiàn),正是來(lái)解決這個(gè)問題,幫助第三方能更 focus 在他們的領(lǐng)域,而不是去實(shí)現(xiàn)應(yīng)該是由官方做的事情上。我覺得官方在這個(gè)點(diǎn)上宣布做這件事情很合適,Swift 3.0 剛剛發(fā)布,這個(gè)語(yǔ)言特性差不多算穩(wěn)定了,盡管 Swift 4.0 還會(huì)有很大變化,但不至于會(huì)有很大的源碼級(jí)別的 Break 了。此時(shí)補(bǔ)充標(biāo)準(zhǔn)庫(kù) Foundation 的不足,達(dá)到「催化」原本就已經(jīng)發(fā)展起來(lái)的生態(tài)圈的效果。

Apple 的開放性

這次宣布,讓我比較贊賞的一點(diǎn)是,Swift 官方繼續(xù)以非常開放的態(tài)度來(lái)做這件事情,Server APIs Work Group 的 Steering Team 共四名成員,分別來(lái)自 Apple、IBM、Vapor 項(xiàng)目、Zewo 項(xiàng)目,公司和社區(qū)各占半壁江山。

可以說,自 Apple 宣布 Swift 開源以來(lái)以及之后的連續(xù)動(dòng)作,Apple 作為一家軟件公司已經(jīng)習(xí)慣以開放的姿態(tài)來(lái)面對(duì)全球開發(fā)者了。當(dāng)然這是時(shí)下趨勢(shì),Microsoft 也是大型開源公司了呢。開源/開放已經(jīng)不稀奇,重要的是維護(hù)好開發(fā)者關(guān)系以及營(yíng)造更好社區(qū)的氛圍。相信搞了這么多屆的 WWDC 的 Apple 能做好這件事情。

背后的 IBM 力量

既然前面提到了 IBM,不得不好好地?cái)U(kuò)展一下。相信大家最近都聽到過 IBM 把企業(yè)內(nèi)的機(jī)器大量更換成 Mac 的事情了吧?而這次 Swift 官方上宣布 Server APIs Work Group 的文章的作者,也是 IBM 的人寫的。根據(jù)介紹, Chris Bailey 是來(lái)自 IBM 的,同時(shí)有 Java、Node.js 背景。

可以說,自從 IBM 與 Apple 達(dá)成企業(yè)級(jí)戰(zhàn)略合作后,真的不僅僅是一個(gè) PR,非常多的合作相繼展開了。這次 Server APIs Work Group 的成立,與其說是 Apple 主導(dǎo)的,不如說是 IBM 主導(dǎo)的。畢竟在 Server-side 下注 Swift 并且投入大量資源的,不是 Apple,正是 IBM。

看看 Swift@IBM 這個(gè) Blog,就知道 IBM 已經(jīng)做了多少工作了。

背后的社區(qū)力量

光有企業(yè)級(jí)支撐可能還不夠,社區(qū)的力量也很重要。不過目前來(lái)看基本不用擔(dān)心這點(diǎn)。在 Swift 還極不成熟的時(shí)候,Zewo、Vapor、Perfect 等等都冒出來(lái)了,現(xiàn)在有官方配合社區(qū)來(lái)做這件事情,這就是給這個(gè)社區(qū)投入了新的希望,相信力量會(huì)進(jìn)一步加大。

期望

好了,分析到些,我已經(jīng)在我的微博上看到「大 Swift 就要一統(tǒng)天下了」這樣的言論了:joy:老實(shí)說,我在幾年前看到過類似的比如「大 JavaScript 就要一統(tǒng)天下了」的說法,JavaScript 好像真的離一統(tǒng)天下越來(lái)越近了呢。像我們寫 Cilent-side 的人,看到自己慣用或喜歡的語(yǔ)言就要面向 Server-side,自然是一件欣喜的事情,在前后端項(xiàng)目中能用一個(gè)語(yǔ)言甚至共享代碼,也是 Node/JavaScript 社區(qū)實(shí)踐了好多年的事情。

Swift 未來(lái)到底會(huì)發(fā)展的怎么樣,可以預(yù)見的是肯定會(huì)越來(lái)越好,最終也能讓開發(fā)者開開心心地在前后端只用它來(lái)做成一件事情。我敢說肯定不能和 JavaScript 去比,Swift 在 Server-side 真正可以類比的,應(yīng)該就是 Go、Rust 等社區(qū)了。過個(gè)一兩年,Swift 的 Server-side 力量應(yīng)該會(huì)更成熟,當(dāng)前的框架應(yīng)該也能滿足日常需求了吧。相比之下,只能用在 Client-side 的 Objective-C 就真的會(huì)被 Swift 慢慢蓋過去了…

關(guān)于具體的計(jì)劃,官方說是 Swift 4.0 的時(shí)候,Server APIs 這個(gè)項(xiàng)目將達(dá)到「成熟」階段。也就是一年后,Swift 4.0 發(fā)布的時(shí)候,無(wú)論是這個(gè)語(yǔ)言本身(ABI 穩(wěn)定還有更多特性被開發(fā)),還是生態(tài)圈(Cilent/Server),都達(dá)到足夠完備,不僅可以開發(fā) Client,也可以開發(fā) Server 了。

總結(jié)

寫到這里,這對(duì) Swift 語(yǔ)言是除了開源以外又一件里程碑意義的事情,不過對(duì)于目標(biāo)為「通用語(yǔ)言」的它來(lái)說,這也是必要不可或缺的一步。就像 Swift 開源一樣,當(dāng)時(shí)讓人覺得激動(dòng),事后想想也是正常的,現(xiàn)在還有啥主流語(yǔ)言不開源的呢?

所以,能不能把這件事情做好才是最關(guān)鍵的,就像 Swift 開源一年下來(lái),確實(shí)是吸收了大量外部的意見在改進(jìn)這門語(yǔ)言。這次 Server APIs 的工作,希望也能做得更好吧。

一年兩年后再來(lái)回顧,希望一切如期望般進(jìn)行吧~

您還未登錄,請(qǐng)先登錄

熱門帖子

最新帖子

?