如果我是初學者,我該投入Swift的懷抱嗎?

如果我是初學者,
想學習最酷最潮的iOS App開發,
我該投入Swift的懷抱嗎?
還是該不畏艱難地向傳說中的大魔王,
宇宙無敵難懂的Objective-C挑戰呢?
關於這個問題,
彼得潘想了很久,
想到花兒也謝了,
終於做出抉擇,
頭也不回地投入Swift懷抱,
因為 …

1. Swift是地球人的語言,Objective-C是火星人的語言。
想學App開發的人很多,很多人勇敢地買了人生第一台蘋果電腦,決定好好地研究Objective-C火星文般難懂的語法。可惜,我們畢竟是地球人,大部分的人窮盡一生也搞不懂火星人的語法,只能半途而廢。

Swift簡單許多,它是全新發明的語言,一開始即以地球人容易理解的初衷設計。同樣的功能,在Swift可用比Objective-C精簡許多的程式碼做到。不只讓我們的手指更省力,也大幅降低程式因打字粗心而出錯的機率。比起Objective-C複雜的語法,簡潔的Swift更為平易近人,更適合App開發的初學者上手 !

2. Xcode重金打造的Playground遊樂園只開放給Swift學徒。
Xcode全新發明適合初學者程式練功的Playground遊樂園,可惜它只接受Swift語法,只有Swift門派的學徒可以免費入場,Objective-C門派的只能被檔在門口,終生不得入園玩耍,就好像神鵰俠侶裡男子不得踏入神聖的古墓半步一樣。

3. Objective-C的相關學習資源終將淹沒在時間的洪流

初學者學習App開發主要有以下兩種方法,很遺憾的,不管哪一種,Objective-C都逃不過逐漸被世人遺忘的宿命:

(1) 研讀相關書籍,影片和教學網站
時間不只是治癒失戀最好的解藥,同時也是輔佐Swift壯大的最大功臣。隨著時間腳步的推移,我們將發現未來想尋覓Objective-C的相關書籍,只能進入如同鬼屋的舊書店探險尋寶。關於Objective-C的一切,令人感傷地聯想到華仔的來生緣 ~ “尋尋覓覓,在無聲無息中消逝。總是找不到回憶,找不到曾被遺忘的真實。”

倘若搜尋2015出版的App開發書籍,將發現大部分皆以Swift撰寫,英文和中文皆是如此。而網路上知名的教學組織,為了不讓自己顯得落伍,也都毫不留情地甩掉Objetive-C,改以Swift為主角,例如以下例子:
a. Standford知名的App開發課程Developing iOS 8 Apps with Swift
b. Ray Wenderlich,AppCoda等提供專業App開發教學文章影片的網站。

影響更大的則是App的開發工具Xcode。目前最新版本為Xcode 6,雖然彼得潘只是麻瓜,不會算命,不過也敢效法名偵探金田一,以爺爺的名字發誓,未來一定會有Xcode 7和Xcode 8。可以預見的,到時候書籍和網路上的教學資源都將以Swift搭配新版的Xcode教學,換句話說,想學Objetive-C只能搭配過時的Xcode 5。(而且可能走遍天崖海角也找不到下載連結)

(2) 拜師求藝於坊間的補習班
坊間補習班開設的App開發課程也愈來愈多以Swift為主,未來已經不是要學Swift還是Objective-C的問題,而是想學Objective-C也找不到老師,只能克難地看著過去的教學影片回味。

4. Apple對新歡Swift的愛日益加深, 舊愛Objective-C只能躲在角落黯然神傷。
喜新厭舊是人類的天性,Apple也不例外,可以想見的,未來它只會愈來愈喜歡年輕貌美的Swift,容顏日益衰老的Objective-C只能慢慢地黯然退場。令人想起麥克阿瑟將軍的名言: “老兵不死,只是凋零”

學習App開發,最終還是得研讀Apple官方的教學文件和每年WWDC精彩的技術分享,才能學習最新最正確的技術。由於Apple對Swift的偏愛,這些內容也會以搭配Swift為大宗。倘若不懂Swift,未來就只能像鴨子聽雷,無法理解Apple官方的教學。

Apple自己都說了,因為Swift,有史以來第一次人人都有機會打造酷炫App

5. 站在金字塔頂端,快如小李飛刀的Swift
Swift克服了其它語言長久以來無法兩全的難題。C語言執行效能一流,但開發速度遠遠不及JavaScript, Python等script語言。Python開發很快,但執行效能卻又比不上C,Java。Swift同時兼顧開發速度和執行效能,幫助我們更快速地開發出順暢的App,也讓我們有更多的時間玩耍。(玩耍是一定要的,許多火紅App Idea都是在玩樂中現身的。)

6. 安全擺第一的Swift,比Objective-C值得信賴一百倍。
Swift在設計時即將安全擺在第一順位,以幫助我們寫出更強壯,更不易閃退,問題更少的App為生平大志。它的許多設計都緣自於安全的考量,而且更多時候它將在程式開發時即好心給予我們警告和錯誤提示,將傷害減到最低,以防App執行時才掛點,帶給使用者一輩子抹不去的陰影。

7. 點子都是偷來的,Swift集百家之大成,成為地球上最先進的語言。
不像Objective-C從C演化而來,先天受到C語言特性的限制。全新打造的Swift結合各家所長,不只遺傳Objective-C的優點,還偷師其它家語言的優點,成為地球上最先進,功能最強大的程式語言。

8. 物以稀為貴,Swift高手前景(錢景)不可限量。
同樣開發App,薪水的差距其實頗大,從無經驗的三四萬,到高手等級的破十萬月薪。台灣雖然工程師不比矽谷多,但精通Objective-C的專家也已多到總能在街角的咖啡廳偶遇的地步。所以與其期待奇蹟發生,幻想自己某天一覺醒來功力大增,App開發技術追上五年Objective-C開發經驗的前輩,不如把握良機,儘早開始學習Swift,未來公司徵求三年經驗的Swift專家時,你我都會成為市場上少數符合資格,走路有風的Swift專家。

也許有人還是因為以下兩點江湖傳言對於學習Swift有所疑慮,彼得潘倒是覺得不用害怕,它們不過是飄來散去的流言罷了。

1 .Swift還在成長階段,不斷改版,語法一直改變,不如等它穩定後再學習。
目前Swift分為正式的1.2版和尚未公開的2.0版。雖然2.0版的確有了一些改動,但都是為了讓Swift更好,幫助我們更容易開發App的小改變。這些小改變並不會成為我們學習的阻礙,因為Swift主要的核心精神和概念並沒有變,只要學會了Swift 1.2版,未來想要學習2.0版,3.0版都能秒殺上手。

2. 台灣大多數的App公司有情有義,仍然念舊地採用Objective-C。
台灣人是最念舊的,公司也不例外,所以也難怪很多App公司還是繼續採用Objective-C開發。如果公司要求一定要以Objecitve-C開發,認定Swift是旁門左道了話,那也不用沮喪,學會了Swift後,再來學習Objective-C更是易如反掌,因為很多觀念是相通的。相反的,若是先學Objective-C,再來學Swift,很多人在Objective-C的階段就已死在沙灘上,改行去賣雞排了。

結語:

Swift的誕生,對於早已名聞江湖的Objective-C高人和想要投入App開發的新人來說,都是一個全新的契機。現在就好像一個新的時代剛剛開始,大家都站在同一個起跑點,人人有機會搶第一。開跑的哨聲即將響起,且讓我們忘掉舊愛Objective-C(從來沒愛過Objective-C的就不用忘了。),拔腿狂奔地投入新歡Swift的懷抱吧。

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.