Swift正在顛覆整個互聯網生態?

蘋果自家的編程語言Swift 一經推出便引起了多方討論,一些人說 Swift 將會改變整個蘋果的應用生態,一些人則認為這不過是一個玩具語言。因此今天我和極客學院的創始人靳岩,以及氪加的 iOS 開發工程師盧侃一起聊了聊 Swift 對互聯網的影響。有趣的是,我們三個,一個是互聯網的觀察者(我),我一個是互聯網技術教育的從業者(靳岩),一個是 iOS 應用的開發者(正為避免失業而開始看 Swift 的盧侃),都對 Swift 可能帶來的前景感到興奮。

觀察者暮山:

從一個旁觀者的角度,我認為 Swift 的代表的是編程語言的基本發展方向。

縱觀計算機的發展史,我們可以看到,計算機編程語言在由以機器為中心向以人為中心發展,即,從更便於機器閱讀的語言發展為更便於人類編寫,更接近人類自然語言。

最開始的電腦編程都是人工輸入「0」和「1」的機器語言,完全以電腦為中心。後來大家覺得每天輸「0」「1」效率實在太低了,便有人發明了彙編語言,用一些符合和字母來代替特定的「0」和「1」的組合。再後來,彙編語言也顯得寫起來太慢,如果想用彙編語言寫一個較大的程序需要海量的代碼。於是有人發明了 C 語言這門「高級語言」,讓開發者本身能夠更高效快速的編寫代碼,同時不太犧牲計算機讀取代碼的效率。然後 C 語言迅速成為了代碼界的主流語言。

儘管 C 語言比起最初的機器語言已經好懂很多,而且需要寫的代碼量更少了,但依然有人想,編程語言能不能更簡單,更像人話?這就出現了腳本語言,比如大家熟知的 Python,Perl,以及我們的網站所用的 PHP。然而腳本語言並沒有像 C 語言一樣基本替代了彙編語言,這是為什麼呢?

最簡單的原因便是,腳本語言運行效率較低。電腦並不理解腳本語言,因此,用腳本語言寫的程序會被轉化為機器語言,從而讓計算機執行。然而問題是,這就好像我說中文,你說英語,我們之間隔了一個翻譯,翻譯給機器後總是會產生詞不達意的情況,因此許多本來很簡單的運行會被拖的冗長,從而降低了運行效率。而 C 語言等面向機器的語言則更像是一個懂英語的人用中文說話給翻譯,他了解英語思考者的思路和邏輯,並且明確的用中文中類似的表達說出來,所以 C 語言的運行效率更高。

而我對 Swift 看好的原因便是它既解決了腳本語言運行效率的問題,又繼承了其簡潔的語法和強大的功能。Swift 語言的發明者 Chris Lattner 之前最大的成就便是開發了編譯系統 LLVM,能將高級語言轉換為機器語言,也就是前文所說的「翻譯」。Lattner 也因為 LLVM 其極大的提高了包括 Objective C 在內的諸多高級語言的執行效率而獲得了美國計算機協會頒發的「軟體系統獎」。這次 Lattner 開發 Swift 相當於從高級語言到編譯器做了個全套,並且他表示 Swift 在許多方面的運行效率都優於 Objective C,而且遠超的 Python。

也就是說,如果 Swift 的運行效率真的像 Lattner 描述的那樣,那麼 Swift 代表的程序猿先進生產力的發展要求(提高編程效率),代表了計算機先進文化的發展方向(語法簡潔,現代),代表了廣大人民的根本利益(寫起來爽,學起來快)。當然,前提是 Swift 真的像 Lattner 所說的那樣強大。

教育者靳岩:

我認為現在大家不論怎樣高度評價 Swift 都是低估了它會對業界帶來的影響。

首先是他是一門新語言,而且關鍵是它是被蘋果推動的,有非常好的應用場景。圍繞 Swift 未來會出現與之相關的社區,開源代碼,培訓課程等...Swift 將會帶動一整個與之相關的生態,而裡面一個非常小的部分都有很大的商機。

其次我個人也非常看好 Swift,因為它是蘋果對自己的一次顛覆,而它對抗的正是代碼界的官僚化。舉個例子,現在 Java 都更新到 8.0,但現在大部分人用的都還是 Java 1.6,為什麼大家不用有更多新特性的 Java 8.0 呢?說白了就是大家覺得 1.6 已經能做許多事情,懶得去看新功能了。而 Java 本身也一樣,一度我都覺得它要死了,結果 Andorid 又把它救活了。但現在 Java 修修補補到 8.0 依然還是有許多問題是沒法解決的,因為本身就是架構上的過時,那為何大家還在用它?因為那些大公司都用習慣 Java 了,沒有勇氣去換一個更現代更高效的語言,而 Swift 則是逼著公司和開發者去適應新的語言和功能。

Swift 的情形和 Go(Google 發布的編程語言)不一樣。大家都知道 Go 很好,但 Google 從來沒說要大家用 Go 來寫 Andorid 的應用。這就不像蘋果,推出 Swift 後,對 Objective C 的支持肯定會逐漸減弱,最後完全轉到 Swift,這就逼大家必須拋棄二十多年前發明的 Objective C 而必須用 Swift。退一步,如果用 Swift 的效率比 Objective C 高,你如果不用 Swift 在應用市場上的反應就會比別人慢,那還是逼你用 Swift。

特別是這樣一來,Google 最後還是只能要求大家用 Go 而不是 Java 來寫 Andorid 的應用,這樣對整個 IT 圈都是一件進步的事。

iOS開發者盧侃:

自從 Swift 推出後小夥伴們都嘲笑我這個 Objective C 的開發者要失業了... 所以我最近一直在看 Swift...

事實上,我身邊的很多人都在看 Swift,除了一些其他領域的 coder 外,也有人想從 Swift 作為編程學習的入門。但我覺得 Swift 並非一門為入門者準備的語言。

Swift 參考了諸多主流腳本語言的語法,這讓它在語法上非常容易,一些有經驗的開發者花一兩個小時看看開發指南就能上手,但開發應用和了解語法畢竟是不一樣的事。舉個例子,如果一個開發者本來做伺服器端的人,那他可能完全不知道一款應用的開發模式(比如蘋果推崇的 MVC) 模式,那麼,儘管他對語言本身很熟悉,但和應用開發有關的一切都還是要重新學。因此,儘管 Swift 降低了編程語言的學習成本,但程序開發依然需要經驗,所以很多人說 Swift 只是表面上把大家拉到了同一個起點,原本熟悉 iOS 的開發者還是擁有極大的優勢。而對初學者來說,語言門檻之後還有許多門檻,不可能突然湧現出許多之前對編程沒什麼了解的開發者。

當然,Swift 的特性會得到怎樣的應用,能否提高 iOS 應用的性能等,我們可能需要在用 Swift 編寫的應用上線後才能看到。原文地址:http://www.36kr.com/p/212612.html
推薦閱讀:

揭秘:互聯網公司做公關必用的四大法寶
移動互聯網時代品牌轉型的四大要素
【重磅】雷軍最新萬字演講:傳統產業如何藉助互聯網思維轉型升級?
互聯網的下一波紅利在哪裡
智慧社會的產生、建設與未來,基於互聯網大腦模型的研究

TAG:互聯網 | 生態 | 顛覆 | 聯網 | Swift | Swif |