零基礎(chǔ)現(xiàn)學蘋果新語言Swift,可能嗎?
在剛剛過去的蘋果 WWDC 2014 上,除了備受關(guān)注的 OS X 10.10 和 iOS 8 之外,蘋果還發(fā)布了一款全新的編程語言 Swfit。對蘋果遍及全球的開發(fā)者來說,Swift 無疑是 WWDC 2014 的一大爆點,但對于那些跟電腦編程沒有太大關(guān)系的普通人來說,Swift 至多是蘋果發(fā)布的一款不明覺厲的新東西。不過,當驚奇的在社交網(wǎng)絡上看到這樣:“實現(xiàn)我碼農(nóng)的夢想,就靠你了, Swift ! ” 的話之后,他們又覺得 Swift 這個logo 為橙黃色俯沖雨燕的新東西離自己又沒有那么遠。
但和開發(fā)者們聊了一下會發(fā)現(xiàn),事情沒這么簡單。
1. 比現(xiàn)在的編程語言要高級
作為 iOS 系統(tǒng)內(nèi)部的開發(fā)語言,Swift 其實是現(xiàn)在正在使用的編程語言O(shè)bjective C (objc)的替代品。我們?nèi)缃裨? iPhone 中所使用的 app 都是用這個編程語言一行行代碼敲出來的。這個編程語言在 1980 年代初由 Stepstone 公司發(fā)明,之后作為 iOS 操作系統(tǒng)的編程語言,隨后者流行至今。
從級別上來看,objc 與 C語言/ C++ 同屬較低級,而新晉的 Swift 要比這些都高級,屬于跟微軟的開發(fā)語言 C# 和安卓的開發(fā)語言 Java 看齊的開發(fā)語言。
2. 也更加高效
由于 objc 與同級別的 C語言/ C++ 同屬較低的系統(tǒng)級,所以相對的開發(fā)效率、工程化程度也自然比較低,Swift 一出生就代表著更新?lián)Q代升級,自然也是更高效,比如編程的語法更加簡潔、語言的類型安全更加實現(xiàn),以及引入了許多動態(tài)語言特征等,而在運行速度上,它更是 比objc 快了 3 倍。“打個比方,objc 就像傳統(tǒng)木工的鋸、斧、刨等手工工具,而 Swift 就像是一體化的木工車床。它屬于創(chuàng)作工具的升級。”科泰華捷科技有限公司 CTO 牛靖宇這樣告訴《好奇心日報》。
3. 所見即所得,會讓初學者更有存在感
在演示 Swift 的過程中, Apple 特地展示了實時代碼效果預覽功能(Swift Playground)。程序員可以在左側(cè)輸入代碼的同時就在右側(cè)實現(xiàn)代碼執(zhí)行演示。對于,資深程序員來說,這可能是一個檢查 bug 提高效率的好辦法,對于初學者來說,這個功能儼然就是一個鼓勵機制,敲幾行代碼就會出現(xiàn)相應的圖案,簡直充滿了即視感!
4. 學 Swift,英語不好沒關(guān)系
在發(fā)布 Swift 官方開發(fā)者指南不到12 小時的時間里,Swiftchina.org 雨燕中文網(wǎng)就已上線,該網(wǎng)站在全網(wǎng)發(fā)出網(wǎng)絡眾包翻譯的邀請,這樣看來,網(wǎng)絡眾包翻譯的模式將有可能在盡可能短的時間內(nèi)幫你掃清學習 Swift 的語言障礙。
5. 先別忙著學別人做評論
現(xiàn)在,各大社交網(wǎng)絡,程序員社區(qū)都在忙不迭的評論 Swift 的性能,這些基于專業(yè)人士對于新產(chǎn)品敏銳洞察力下的判斷當然無可厚非。但作為一個編程知識薄弱的初學者,就先別忙著看評論,然后學幾句看似內(nèi)行對 Swift 功能的喜惡評價?;蛘邞摫е鴮W習的心態(tài),感受一下 Ourcoders 站長,資深 iOS 開發(fā)者 tinyfool 的話:“評價 Swift 的好壞不應該是從一個抽象的概念上來,去判斷它是好還是壞。我們應該看的是,它是否符合它們使用的具體場景,是否可以給(特定的)用戶帶來便利和幸福 感,”
6. “從 Swift 開始,我們終于站在了同一條起跑線上!” 別天真了。
對于一個學習過 objc 編程語言的人來說,他們學 Swift 肯定比零基礎(chǔ)的人容易的多。原因大概是平臺和框架沒變,只是語法變了。tinyfool 對《好奇心日報》這樣解釋這一點:“就好像是我說普通話,你說上海話,CPU 還是 CPU,電腦還是電腦,只是語音語調(diào)變了,但是主要的名詞和世界觀沒變。”
7. 什么叫做學會了一門語言
學會編程語言,會用編程語言到了解語言背后的 API 是一個循序漸進的過程?;旧峡梢苑譃?ldquo;三個段位”,第一段位是知道它的語法到底是怎么樣的,這是一個死記硬背的階段,相當于你在英語考試的選擇題上可以 全部做對,但是還不懂得怎么去用。第二段位是知道了怎么去用,從紙上談兵到了真正跟人交流的過程,這個時候你知道寫什么程序適合用哪種語言。第三段位,就 是你能把你的思維完全轉(zhuǎn)換成編程思維,這跟學一門外國語言也很類似。對 ALCOL 語言做出過重大貢獻的 Alan J. Perlis 曾經(jīng)說過:“一種不改變你編程的思維方式的語言,不值得去學。”所以長路漫漫,你得一點一點來。
8. 編程難度降低,然后呢?
“編程門檻雖然降低了,但生產(chǎn)力的門檻不會降低。 有越來越多的垃圾會被更容易的生產(chǎn)出來”,“開發(fā)門檻降低并不是一件壞事,因為新的人會進入到編程體系里來,帶來更多全新的思路。”這是現(xiàn)在人們對除 Swift 功能之外另一個探討的兩大主流觀點,這個類似于上升到技術(shù)與世界關(guān)系的倫理學問題是我們被“編程改變世界”或者“編程無用”沖昏了頭腦時,應該思考的!