隨便拉上一個果粉說說這一年來蘋果公司的成就,Apple Watch肯定排第一,再下來是iPhone破銷量紀錄及蘋果30億美元收購Beats Electronics,消息靈通的人說不定還會提到Apple Car。同樣的問題擺在iOS開發者面前的話,去年蘋果公司推出的新一代編程語言,諸多鐵桿果粉早有耳聞的Swift必然在排行榜之列。
而如今,盡管距離2015年蘋果全球開發者大會(WWDC 2015)開幕還有好幾個小時,卻已經有不少的參會開發者在舊金山的Moscone West會場外排隊等候入場。在今年的WWDC上,每天將有8個小時的Swift實驗室時間,蘋果工程師團隊將講授Swift的用法,並解答開發者在Swift開發中遇到的問題,同時針對Swift專題,也將有4場演講專門呈現,屆時,Swift必將成為眾多參會者討論的熱點。
一年前的WWDC上,由蘋果軟件工程高級副總裁Craig Federighi為Swift揭幕,演示了類型推理、閉包和多個命名空間等功能。開發者們屏住了呼吸,一時間爆發出熱烈的掌聲。他還開玩笑說:“好多人壓根兒不信Swift有多好,還說著‘那些人在胡扯些什麼呀’的話”。
在發布僅7個月後,Swift便已成為Red Monk編程語言排行榜上第22位最受歡迎的編程語言,並且將來很有可能代替Objective-C,排名上升至第3位。TIOBE 2015年6月編程語言排行榜顯示,Objective-C已進入“自由落體”,Swift繼續上升。
同樣,在Stack Overflow(開發者問答網站)對157個國家的26,086名開發者的調查中也發現:Swift語言最受開發者歡迎,其以76.6%的比重高占榜首。
單從推廣度上來說,1995年推出的Java是Swift之前最成功的編程語言。盡管Swift只局限於iOS設備,但到2017年會有15億台iOS設備,比如今的10億多台幾乎增加了50%。縱觀大局,Swift成就下一個成功典范或許只是時間問題。
諸多大學和培訓機構基於市場需求,已開始提供Swift課程。著名的iOS開發大牛Ray Wenderlich就表示,“Swift的反響異常熱烈,開發者趨之若鹜。”所以Swift推出沒多久,他就立刻將課程重心轉移到這門新語言上。
面對Swift的強大魅力,眾多開發者怎麼可能無動於衷?雖然iOS應用的編程語言是蘋果公司說了算,但開發者們還是心甘情願緊緊跟隨,他們很清楚相比Android用戶,iOS用戶能帶來前者四倍的收益,如此一來,Swift本身如何就不再是最重要的因素了。
在Swift之前,80年代推出的Objective-C是唯一的iOS應用編程語言。但如今Objective-C已經有點過時了,開發者們甚至用“老掉牙”、“冗長乏味”、“令人生厭”來形容它。當然,只要是熱門語言,總會引來褒貶不一的評價。其實很多開發者並不敢妄自評論,生怕說了點不合時宜的話會曝光在Hacker News上。
打車應用Lyft的工程副總裁Peter Morelli被問到Objective-C語言是否太有難度時,並未正面回答這個問題,只是說:“它就像宗教戰爭似的,一片開發者忙得熱火朝天的景象。”
Swift為何能引發如此熱烈的反響呢?眾所周知,不同編程語言的差別實在一言難盡,挑幾點來說,Swift既安全(代碼中少有漏洞出現),還體現了一些新特點,跟其他主流語言一樣能為應用添加豐富多彩的附加功能。
另一個重要的優勢是:開發者有什麼需求,都能用Swift輕松表達出來交由電腦執行。同樣的效果,可能用Objective-C就得多好幾行代碼,但Swift就簡潔多了。“看看這些彎彎曲曲的代碼和分號,用Objective-C的話,長度將是Swift的四倍,”就職於技術課程服務公司Treehouse的開發者Myers Carpenter說道。
6個月前,Lyft安排工程師拿Swift進行試驗後,決定用Swift把Lyft應用重新編寫一遍,預計在7月份完成這項工作。用Swift編寫後的代碼長度只是之前的1/5,且能將代碼重復和更新花費的時間“從漫長的幾個月縮減到短短幾天,”Morelli說:“這是Swift的最大優勢。”
LinkedIn旗下的文件共享服務SlideShare也是早期Swift應用者之一。該公司開發者反映說向Swift的過渡非常成功,但他們也付出了成長的代價。舉個例子,13英寸的MacBook Pro的處理能力根本不夠應付將Swift轉換為電腦可讀格式的程序。SlideShare的軟件工程師Kyle Sherman在LinkedIn的工程博客上寫道:“同事用15英寸i7s四核處理器的電腦,情況才好很多。不管怎樣,粉絲們對於Swift依舊熱情高漲。”
這類問題待到Swift成熟之時就會迎刃而解了。Swift更新太快,還不穩定,給推廣帶來了阻礙,所以諸多開發者更願意再等一段時間。Scott Logic軟件開發公司的技術總監Colin Eberhardt說,Swift頻繁更新使他不得不頻繁調整自己的代碼。他說:“做產品代碼的,肯定不願意用Swift。”目前蘋果還不願回應這個問題。
目前為止Objective-C仍然比Swift更廣為應用,但如果Swift繼續發展下去,代替前者也不是不可能。一旦Swift穩定了,成熟了,蘋果也許會選擇只留其一,將Swift定為iOS應用唯一編程語言。也許未來幾年內還不至於到這一步,但Wenderlich認為:“開發者們很可能紛紛轉而使用Swift,那時Objective-C將退出人們的視線。”