10
本文作者: 伍星 | 2015-12-07 15:20 |
【編者按】在2015 WWDC 大會(huì)上,軟件工程資深副總裁 Craig Federighi 說(shuō)Swift 將會(huì)變成開源。直到今天,蘋果已經(jīng)兌現(xiàn)承諾實(shí)現(xiàn)開源。本文來(lái)自Swift社區(qū)的伍星,是國(guó)內(nèi)最早實(shí)戰(zhàn)推廣Swift的開發(fā)者之一,文章是6月份作者為雷鋒網(wǎng)獨(dú)家分析Swift語(yǔ)言的文章,原標(biāo)題為《擁抱Swift 吧,騷年》——
蘋果將Swift 開源,這意味著什么,Objective-C已經(jīng)是過去時(shí)?
在閱讀本文之前,先看看此前蘋果官網(wǎng)對(duì)于Swift開源的說(shuō)明:
(截圖來(lái)自:Swift 2.0 - Swift Blog)
編者提取下要點(diǎn):
具體的開源許可證沒有確定(現(xiàn)已正式宣布開源,確定為 Apache License);
蘋果官方支持的系統(tǒng),除了蘋果自家OS X,iOS以外,還有Linux;開源的是編譯器和標(biāo)準(zhǔn)庫(kù)。
這里擴(kuò)展一下,其實(shí)根據(jù)Chris Lattner( LLVM 和 Swift 的作者 ,下文有介紹) 的說(shuō)法,早在2015 WWDC 大會(huì)之前,Swift 背后的 LLVM就一直是開源的,Chris Lattner 本人曾寫過一篇 LLVM 介紹: 《The Architecture of Open Source Applications: LLVM》,有興趣的童鞋可以去看看。當(dāng)然,這些并不意味著可以在 Windows上開發(fā) iOS 應(yīng)用的,但是,Swift 語(yǔ)言的開源的真正意義并在此。
【以下是正文】
推出 Swift 語(yǔ)言,蘋果的商業(yè)目的是什么?
為了提高開發(fā)者們的編程效率,將更多的開發(fā)者吸引入蘋果的開發(fā)者陣營(yíng),在去年2014年的WWDC上,蘋果推出了一套新的語(yǔ)言 Swift。在這一年中,Swift 經(jīng)歷了不下十次版本更新,開始成為一門相對(duì)成熟穩(wěn)定的編程語(yǔ)言。也以其語(yǔ)法簡(jiǎn)潔、安全為廣大開發(fā)者使用,在這一年中,國(guó)外的Swift iOS書籍、教程和培訓(xùn),無(wú)一例外已全部采用 Swift 來(lái)編寫。在國(guó)內(nèi),Swift 書籍、培訓(xùn)也正在興起,公司也在接納這門新的編程語(yǔ)言,比如優(yōu)才學(xué)院還推出了iOS全棧工程師培訓(xùn)課程 。
如今一年過去,蘋果又做出驚人之舉。在今天的2015 WWDC 發(fā)布會(huì)上,除了發(fā)布 Swift 2,Swift 2.0增加的主要特性包括泛型、更快的調(diào)試模式、更快的編譯、錯(cuò)誤處理機(jī)制、C函數(shù)指針API、注釋里Markdown格式等等。更重要的是,軟件工程資深副總裁 Craig Federighi 正式宣布 Swift 將會(huì)變成開源。「我們認(rèn)為 Swift 應(yīng)該成為所有人都能使用的語(yǔ)言?!顾谂_(tái)上這么說(shuō)道。 這讓整個(gè)開發(fā)者社區(qū)為之點(diǎn)贊和歡呼。
其實(shí)Swift 語(yǔ)言開源,既在意料之外,又在情理之中。以蘋果之強(qiáng)勢(shì),對(duì)核心產(chǎn)品開源看似不可以理解,這是意料之外。情理之中則在于:
1、Swift 出自開源大神 Chris Lattner之手。
Chris Lattner在編譯器方面,為開源所做的貢獻(xiàn),可謂居功至偉。他是 LLVM 項(xiàng)目的主要發(fā)起人與作者之一,Clang 編譯器的作者。簡(jiǎn)單做一個(gè)介紹,LLVM 編譯器是一個(gè)雄心勃勃的項(xiàng)目,其目的是要建一個(gè)可重用的編譯器組件系統(tǒng),可用于構(gòu)建各種工具,包括編譯器、調(diào)試器、JIT系統(tǒng)、優(yōu)化器、靜態(tài)分析系統(tǒng)等 等。LLVM 常用作 C 和 C++ 的優(yōu)化器,能生成用于多種不同架構(gòu)的機(jī)器碼。Clang 項(xiàng)目目前是業(yè)內(nèi)領(lǐng)先的 C、Objective-C 和 C++ 編譯器,廣泛用于學(xué)術(shù)界和業(yè)界。在語(yǔ)言支持和其他特性方面,LLDB 調(diào)試器(LLDB Debugger)開創(chuàng)了先河。LLVM 正在多方面擴(kuò)展和改進(jìn),以支持新優(yōu)化、新目標(biāo)、新領(lǐng)域和新特性。所以Swift不開源,Swift他爸爸不答應(yīng)啊,是不是?
2、看看蘋果推出 Swift 語(yǔ)言的背后商業(yè)目的。
以蘋果之精明,不會(huì)純粹為了開發(fā)社區(qū)貢獻(xiàn)技術(shù)。更重要的是其商業(yè)原因,Objective-C 出現(xiàn)30多年來(lái),其語(yǔ)法、冗長(zhǎng)的寫法,并不為大量的開發(fā)者所習(xí)慣,尤其是已經(jīng)熟悉過像Java、PHP類似的開發(fā)者,想轉(zhuǎn)到Objective-C,倒不說(shuō)學(xué)習(xí)曲線,心理上的門檻就挺高的。而Swift 的出現(xiàn),讓這個(gè)轉(zhuǎn)換的門檻成為歷史,可以想見的是,Swift 語(yǔ)言的出現(xiàn),再加上開源,更多的開發(fā)者將熟悉和使用 Swift 語(yǔ)言,意味著在蘋果的視野之中,增強(qiáng)了大量的,數(shù)以百萬(wàn)計(jì)的開發(fā)者的支持。
那么,Swift 發(fā)展到今天并開源,對(duì)于我們開發(fā)者的選擇,有什么影響呢?
1、Swift 開源意味著什么呢?
今天一早,在技術(shù)群里就有人討論這個(gè)問題。個(gè)人的感覺是Swift 開源,必然導(dǎo)致眾多開發(fā)者對(duì)其本身的深入?yún)⑴c,以Swift 目前的優(yōu)良特性,會(huì)有牛人把它遷移至Linux、Windows甚至 Android等平臺(tái)。屆時(shí),Swift 也許會(huì)成為一門真正全棧式的編程語(yǔ)言。有了更多開發(fā)者的參與,Swift 開發(fā)庫(kù)不足的情況,會(huì)快速緩解,據(jù)筆者統(tǒng)計(jì),過去一年中,在github上,有13357開源項(xiàng)目被創(chuàng)建。
2、那么Swift 會(huì)不會(huì)替換Objective-C呢?
這是一個(gè)特別多朋友都關(guān)注的問題。個(gè)人使用Swift 一年以來(lái)的感覺是:蘋果官方目前沒有說(shuō)要用Swift 代替Objective-C,但是做iOS開發(fā)的默認(rèn)語(yǔ)言就是Swift了。其次來(lái)講,語(yǔ)言的選擇是一個(gè)開發(fā)者用腳投票的過程,我想下面的這個(gè)趨勢(shì)圖,應(yīng)該說(shuō)明了這點(diǎn)。所以我的建議是,如果想了解Swift ,請(qǐng)盡早,新事物的窗口期就是那么長(zhǎng)時(shí)間。
編者注:
關(guān)于Objective-C介紹,可以看這篇文章:《擁抱Swift吧,Objective-C已經(jīng)是過去時(shí)》。為方便理解,摘錄其中的一段話:
目前iOS中的很多應(yīng)用框架都還是Objective-C的,調(diào)用的方式是使用橋接頭文件,但未來(lái)會(huì)出現(xiàn)更多基于Swift的框架,今后的調(diào)用也會(huì)變?yōu)楦雍?jiǎn)潔的方式,蘋果正在努力實(shí)現(xiàn)這個(gè)艱巨的任務(wù),因?yàn)樾枰D(zhuǎn)換的框架有很多。
不過很快,我們就會(huì)看到專屬于Swift的新框架,這樣的框架在Objective-C中甚至都找不到同類。這種情況的發(fā)生也會(huì)對(duì)Objective-C的后續(xù)使用造成很大的影響。
3、Swift 穩(wěn)定成熟了嗎?
在去年剛發(fā)布時(shí),雖然已經(jīng)可以兼容現(xiàn)有的庫(kù)和支持Objective-C互操作,能真正開發(fā)出iOS產(chǎn)品,但是Swift 確實(shí)有很多的不足,比如最坑爹的就是編譯速度很慢,最早時(shí),有更新,所有文件要編譯,這是工程上無(wú)法忍受的,但是到了今天,語(yǔ)法本身完善了,工程上的開發(fā)效率問題也得到了解決,就差庫(kù)了。而對(duì)庫(kù)的提供,這不正是開源社區(qū)所擅長(zhǎng)的么?
所以,擁抱Swift吧,騷年!
【作者介紹】伍星,優(yōu)才無(wú)限、優(yōu)才學(xué)院(原優(yōu)才網(wǎng))創(chuàng)始人,現(xiàn)主導(dǎo)優(yōu)才無(wú)限教學(xué)、研發(fā)工作。是開心網(wǎng)早期創(chuàng)始團(tuán)隊(duì)成員,架構(gòu)師。是國(guó)內(nèi)最早實(shí)戰(zhàn)推廣Swift的開發(fā)者,國(guó)內(nèi)最暢銷的《Swift語(yǔ)言實(shí)戰(zhàn)入門》主編,并國(guó)內(nèi)首家推出Swift iOS全棧工程師培訓(xùn),為IBM、北京公交集團(tuán)、動(dòng)批網(wǎng)、OneAPM、創(chuàng)新工場(chǎng)系等提供培訓(xùn)咨詢服務(wù)。
雷峰網(wǎng)特約稿件,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。