看看國外的開發(fā)者怎么看Swift
盡管蘋果一年一度的開發(fā)者大會(huì)(WWDC)有不少吸引人眼球的東西,但是最切題的無疑是新的編程語言Swift的推出。
在 iOS 8 發(fā)布之前一直處在 beta 版的 Swift,是蘋果已使用 20 多年,已經(jīng)老掉牙的開發(fā)語言 Objective-C 的替代品。蘋果宣稱,這款新的編程語言要比后者快得多,好用得多,且支持閉包、泛型、類型推理、多種返回類型及命名空間等許多現(xiàn)代編程概念。
蘋果指出,已開發(fā)多年的 Swift 將適合于新老開發(fā)者。對(duì)于老開發(fā)者來說,Swift 顯得很熟悉;對(duì)于新開發(fā)者來說,Swift 顯得很友好。蘋果稱贊這款編程語言為開發(fā)者打造了一個(gè)“互動(dòng)的游樂場(chǎng)”。
不過社交網(wǎng)絡(luò)上面對(duì) Swift 的評(píng)價(jià)是好壞參半。
杰出的 iOS 開發(fā)者 Steve Streza 對(duì)蘋果開始這一轉(zhuǎn)變感到興奮,說 Swift 繼承了 Objective-C 的優(yōu)點(diǎn)(如引用計(jì)數(shù)內(nèi)存管理)的同時(shí)也改進(jìn)了語法和樣式管理。這促使他要對(duì)自己的 API 設(shè)計(jì)進(jìn)行重新思考,要更加強(qiáng)調(diào)類型傳遞。不過他認(rèn)為在跨越了新語言學(xué)習(xí)的駝峰曲線之后,Swift 不會(huì)對(duì)他的工作產(chǎn)生很大的影響。
Streza 對(duì) Swift 的***擔(dān)憂是 Objective-C 和 Swift 的相互協(xié)作方式,因?yàn)殡p方似乎對(duì)代碼編寫方式和 API 數(shù)據(jù)返回方式作出了頗為不同的假設(shè),尚不清楚這些假設(shè)發(fā)生沖突時(shí)會(huì)如何處理。
Streza 的另一個(gè)擔(dān)憂是有多少人會(huì)采用新語言(蘋果仍承諾繼續(xù)支持 Objective-C),因?yàn)楹芏嗳硕季芙^改變,而分裂可能會(huì)導(dǎo)致在這個(gè)平臺(tái)上開發(fā)的人沮喪。但 Streza 本人預(yù)計(jì)會(huì)完全接受 Swift 并用它來開發(fā)新應(yīng)用。并且他認(rèn)為 iOS 及 Mac 開發(fā)者要是對(duì)這門新語言缺乏基本的了解的話是很愚蠢的。
另一位舊金山的 web 開發(fā)者 Kevin Ingersoll 則認(rèn)為,對(duì)于 web 開發(fā)者來說 Swift 的進(jìn)入壁壘要比 Objective-C 低得多,以前他曾經(jīng)想寫 app,但是 Objective-C 的學(xué)習(xí)障礙令他望而卻步,現(xiàn)在這個(gè)障礙消失了。
澳大利亞的開發(fā)者 Quentin Zervaas 認(rèn)為,Swift 證明蘋果的確看重開發(fā)者工具和開發(fā)工作流的易用,并且不斷在努力采取措施來從設(shè)備榨取額外的性能。Zervaas 很期待 Swift 的代碼實(shí)時(shí)評(píng)估和調(diào)試功能,認(rèn)為這可以簡(jiǎn)化大量的語法。
在 Hacker news 上面的用戶也感到興奮,網(wǎng)友 nln 說 Swift 讓他這個(gè)非開發(fā)者也感覺有信心去學(xué)習(xí)如何開發(fā) iOS app。
資深 Objective-C 開發(fā)者 Mike 則對(duì) Swift 的推出感到煩惱。因?yàn)樗矚g Objective-C,不想學(xué)新語言。對(duì)于他來說 Swift 對(duì) Objective-C 的優(yōu)勢(shì)尚不明朗。他對(duì) Swift 的***印象是為了創(chuàng)新而創(chuàng)新,害怕這會(huì)在新老開發(fā)者之間造成分裂(老的堅(jiān)持 Objective-C,新的用 Swift)。
在知乎上對(duì)Swift的討論也很熱烈,其中獲贊同最多的是yue wang同學(xué)的:
它更像一種讓人快速做原型的 toy language。…… 以 Apple 目前給出的各種資料來看,這語言不會(huì)替代掉 ObjC,它不是下一代的 ObjC。
yue wang 列舉的 Swift 的缺點(diǎn)包括標(biāo)準(zhǔn)庫太差、缺乏保護(hù)機(jī)制、只能與 ObjectIve-C 互動(dòng)、不能捕捉 Objective-C 的例外也沒有自己的例外機(jī)制等。所以他認(rèn)為蘋果對(duì) Swift 的定位是降低學(xué)習(xí)曲線的玩具語言。
趙冬毓在讀完 Swift 開發(fā)者指南之后,對(duì)后者的評(píng)價(jià)是:
這是一個(gè)閹割掉了很多精髓,添加了一些語法糖的 C#和 Scala 的結(jié)合體,有一些 Golang 的方便特性,附帶 Golang 和 JS 諸多坑人陷阱的,語法與 JavaFX 接近的,對(duì)非 UI 部分不夠嚴(yán)肅的,除了 ARC 之外沒有 GC 的一種表達(dá)能力較強(qiáng)但是設(shè)計(jì)能力較弱的語言……換句話說,對(duì)于大型項(xiàng)目而言是個(gè)坑……更適合 PM 和小作坊快速推出創(chuàng)意原型,不適合追求高質(zhì)量應(yīng)用開發(fā)。
但知乎上也有反駁的意見。孫竟認(rèn)為,Swift 的功能豐富,絕非一門玩具語言。而且他以 Swift 重寫 Cocoa API 封裝為例說明,如果蘋果不是想取代 Objective-C,為什么還要如此費(fèi)事。其觀點(diǎn)是 Swift 的一些缺點(diǎn)用 Objective-C 只會(huì)更坑,對(duì)于想轉(zhuǎn)行做 iOS 或 OS X 的開發(fā)者來說,Swift 是個(gè)很好的 Objective-C 替代者。
當(dāng)然,現(xiàn)在就來評(píng)判 Swift 的采用率還為時(shí)尚早。但 Craig Federighi 宣布 Swift 時(shí),觀眾的反應(yīng)是,掌聲未起,就先聽到一陣“哇哦!”所以,Swift 造成的沖擊值得預(yù)期:
- println("Hello, world")
原文出處: thenextweb.com 譯文出處: 36kr