如果大學時不小心錯過了沈佳宜,也錯過了資工電機等傳授程式機密的科系,是否就一輩子和21世紀最棒的工作 – iOS App 開發無緣,無法在咖啡廳寫寫程式扮扮文青,享受發光蘋果帶來的別人羨慕眼光呢 ?

從前答案是很殘酷的 YES ,開發 iOS App 的 Objective-C 程式語言只比火星文好懂一點。然而在2014年的秋天,一切都變了! Apple 發明了最適合人類學習的程式語言 Swift ,接下來就讓我們好好瞧瞧它的九大迷人之處吧。
一 、簡潔易懂,8歲小孩也能上手的語法
Swift 是新發明的年輕語言,就像世界上大部分的定律一樣,新的總比舊的好,年輕的總比老的好。從新打造的 Swift 份外地貼心,十分淺顯易懂,而且懂得沈默是金的道理,絕不多話,讓我們輕輕鬆鬆,少少的程式碼實現大大的功能。

二、重金打造,適合程式練功的遊樂園
大家都知道 Apple 什麼沒有,就是錢多。但最令人感到窩心敬佩的,卻是 Apple 總把錢花在有意義的地方,比方那重金打造,適合初學者程式練功的 Playground 遊樂園。在遊樂園裡我們可以隨心所欲地輸入程式碼,立即見到程式執行的結果,馬上體會每行程式碼產生的蝴碟效應。
不過如此好玩的遊樂園十分挑剔,只接受 Swift 語法,只有 Swift 門派的學徒可以免費入場,其它語言門派的只能被檔在門口,終生不得入園玩耍,就好像神鵰俠侶裡男子不得踏入神聖的古墓半步一樣。

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

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

五、點子都是偷來的,Swift 集百家之大成,成為地球上最先進的語言
全新打造的 Swift 站在巨人的肩膀上,結合各家所長,偷師其它語言的優點,改善其它語言的缺點,成為地球上最先進,功能最強大的程式語言。

六、物以稀為貴,Swift 高手前景(錢景)不可限量
同樣開發程式,薪水的差距其實頗大,從無經驗的三四萬,到高手等級的破十萬月薪。台灣雖然工程師不比矽谷多,但精通 C 、 Java 、 Objective-C 的專家也已多到總能在街角的咖啡廳偶遇的地步。所以與其等待奇蹟發生,幻想自己某天一覺醒來功力大增,程式開發技術追上五年開發經驗的前輩,不如把握良機,儘早開始學習 Swift ,未來公司徵求三年經驗的 Swift 專家時,你我都會成為市場上少數符合資格,走路有風的 Swift 專家。
七、豐富的學習資源
牧羊少年奇幻之旅裡有句名言,”當你努力想完成某件事時,全世界都會來幫你”。擁有 Apple 這個富爸爸在背後支持,如今 Swift 的學習資源已經十分豐富,”當你努力想學習 Swift 時,全世界都會來幫你”,無數的好書,好老師,好網站,好影片,傳授著關於 Swift 的點點滴滴。

Apple 全力推廣 Swift ,甚至為 Swift 打造專屬網站,成為第一個擁有個人網站的程式語言。

Swift 也有自己專屬的 Blog 。

走在時代尖端的大學也開始傳授 Swift 課程,例如美國 Standford 的 Developing iOS 10 Apps with Swift ,英國普利茅斯大學的 iOS Development in Swift 。

網路上的程式教學網站和實體的補習班也一個個熱血地投入 Swift 教學。例如 App Coda , Ray Wenderlich , Udacity 等。


所謂書中自有黃金屋,想要增進 Swift 技藝,一定要培養看書自學的能力。 Apple 官方出版的免費電子書 The Swift Programming Language 絕對是不能錯過的必讀聖經,其地位就好像當年武林中人人爭搶的九陰真經。

雖然 The Swift Programming Language 寫的很棒,不過彼得潘也承認它的確有點難度,一般人往往無法消化,看到睡著也是件稀鬆平常的事,就好像當年西毒練九陰真經練到發瘋一樣。所以如果真的看不下去也不用勉強,坊間還有許多不會讀到兩鬢雙白,頭冒白煙的 Swift 好書可以參考。英文了話首推 Apple 為初學者精心撰寫的電子書,App Development with Swift。

中文了話則可考慮壞人虎克船長死對頭寫的那本” Swift 程式設計入門”。(既然是壞人的死對頭,想必是個好人,好人寫的書想必是本好書。)

值得注意的,Objective-C的相關學習資源已慢慢地淹沒在時間的洪流。倘若搜尋最近出版的App開發書籍,將發現大部分皆以Swift撰寫,英文和中文皆是如此。而網路上知名的教學組織,為了不讓自己顯得落伍,也都毫不留情地甩掉Objetive-C,改以Swift為主角。時間不只是治癒失戀最好的解藥,同時也是輔佐Swift壯大的最大功臣。隨著時間腳步的推移,我們將發現未來想尋覓Objective-C的相關書籍,只能進入如同鬼屋的舊書店探險尋寶。關於Objective-C的一切,令人感傷地聯想到華仔的來生緣 ~ “尋尋覓覓,在無聲無息中消逝。總是找不到回憶,找不到曾被遺忘的真實。”
八、向全世界開放的Open Source
Apple 為了讓全世界都體驗 Swift 的美好,下了一個改變世界的決定! Swift Open Source ,不再受限於 Mac 和 iOS 平台,目前已經能夠在Linux 平台執行。可以預期未來將有愈來愈多的平台支援 Swift ,將來不只 App ,大大小小的軟體都可以透過 Swift 打造! 也許22世紀的鋼鐵人就是由 Swift 製造的呢。


九、大家最愛的程式語言
Swift 初生之犢不畏虎,在知名的程式討論區 Stack Overflow 被票選為最受歡迎的程式語言。

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

Apple 每年持續地改版 Swift,讓它變得更強大,更容易學習,更方便開發 App。這些小改變並不會成為我們學習的阻礙,因為 Swift 主要的核心精神和概念並沒有變,只要學會了 Swift 3.0版,未來想要學習4.0版,5.0版都能秒殺上手。就算偶爾真的發生新舊版不相容的問題,開發工具 Xcode 也早已貼心地提供自動轉換的功能,可說是踏破鐵鞋無覓處,得來全不費功夫!

台灣人是最念舊的,公司也不例外,所以也難怪很多App公司還是繼續採用 Objective-C 開發。如果公司要求一定要以 Objecitve-C 開發,認為 Swift 是旁門左道了話,那也不用沮喪,學會了 Swift 後,再來學習 Objective-C 更是易如反掌,因為很多觀念是相通的。相反的,若是先學 Objective-C ,再來學 Swift ,很多人在 Objective-C 的階段就已死在沙灘上,改行去賣雞排了。
結語:
Swift 的誕生,對於早已名聞江湖的 Objective-C 高人和想要投入 App 開發的新人來說,都是一個全新的契機。現在就好像一個新的時代剛剛開始,大家都站在同一個起跑點,人人有機會搶第一。開跑的哨聲即將響起,且讓我們忘掉舊愛 Objective-C (從來沒愛過 Objective-C 的就不用忘了。),拔腿狂奔地投入新歡 Swift 的懷抱吧。