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