聊聊開源的Swift和它的前輩們

pdce 9年前發布 | 5K 次閱讀 Swift

引子

首先我要認個錯,其實嚴格來說,編程語言是不存在開源一說的,語言是一種規范,是一個標準,任何人都可以實現這種規范,我們通常說的開源語言,其實指的是它的官方基礎類庫、開發工具、編譯器、解釋器、運行時環境等等,所以咱就不深究措辭了哈。

昨天蘋果的 WWDC 大會上爆出的一條消息讓我被強制刷屏,感受到了“視覺疲勞”——Swift 2.0 開源,據說當時現場響起了最熱烈的掌聲。“最”這個字用地很好很微妙,也從某種程度上反映出開發者們在蘋果長期以來相對封閉的生態圈里看到了一絲開放的苗 頭。索性咱們就聊聊幾個語言的開源故事。

Swift

先說說風口上的飛豬——Swift,剛剛一周歲的小家伙,由于出身蘋果的正統名門,一出生就受到了移動開發者的強烈關注,學習的人很多,實踐的 例子也有,但是由于 Object-C 多年積累的成熟生態圈的固守,所以生產環境中的應用比例一直不是很高(之前看過一個報告,貌似在 10-20% 左右)。這一年蘋果為了推廣 Swift 也是拼了,各種優先規則都用上了,開源也是最新的大招。為啥,簡單解釋下:

  1. 開源本身就是一種營銷策略。鋪天蓋地的新聞報道已經是明證,特別是對于蘋果這樣的企業來說,一點廣告費不用花,Swift 已經名聲在外了。

  2. 開源表明一種開放的態度,有利于吸引開發社區的參與。現在不玩開源的企業都已經 out 了,技術選型的重要標準之一就是是否開源。所以 Swift 的開源讓開發者特別是蘋果生態圈的其他公司更加放心,雖然我打賭沒有多少開發者或者公司會去查閱哪怕一行 Swift 源代碼,但是放在那里看著也安心,對吧。

  3. 開源有利于生態圈的快速發展。沒開源之前,Swift 的各種工具基本都依賴于蘋果原創,但是開源之后,社區就可以提供各種開發工具,生態系統可以快速構建起來。

總之,蘋果的目的就是讓更多的開發者趕緊用 Swift,麻溜的,讓你沒有不用的理由,就是這么任性,而且還支持 Linux,目的是“成為主流開發語言”,好大的一盤棋,從開源起步~

Rust、Go

插一句,出身真的很重要(如果不是最重要的話),前幾天和朋友聊起 Rust 語言的發展現狀,是又愛又恨,挺好的一語言,發展的太慢。我們都感嘆:唉,出身差了些,如果把后面的金主從 Mozilla 換成 Google,那肯定是另外一番景象了。

說到 Google,它推出的幾門語言都是開源的,其中包括著名的 Go 語言,其實對于天生帶有互聯網基因的公司來說,開源語言是一個非常自然的決定,不需要太多的業務分析,所以也就沒有太多的故事可以展開說。

Python、Ruby

除此之外,還有哪些開源的語言是自然之舉?想一下(請思考 10 秒鐘)。

......

時間到,還有那些由“個人發明”而不是“公司行為”的編程語言,比如 Python、Ruby,它們均來自于極客們的自我創造,沒有過多的商業利益,也就沒有束縛,所以開放給社區是自然而然的選擇,事實上,這些語言的生命力 也非常頑強,在自己的一畝三分地里耕耘地很不錯,也體現了開源的強大力量。

Java

說到底,那些“誕生于公司”而后又開源的編程語言的故事更八卦一些。這里面主要就是兩家,Java 和 .NET(抱歉,我把 .NET 家族算作一門泛語言了)。

剛剛過完 20 歲生日的 Java 算是命運多桀。誕生于 1995 年的它趕上了互聯網發展的第一波潮流,快速成長為最主流的編程語言之一,并長期保持著大佬地位。可惜,背后的大樹 Sun 公司也有日薄西山的時候(說到這里我忍不住插一句,江湖上傳言 Sun 對自己的員工太好了,做技術做的太好了,以至于忽視了公司是需要盈利的,唉,做技術做到這份上也真謝謝它了),后來被財大氣粗的 Oracle 收購。

收購是發生在 2009 年,不過 Java 在 2007 年的時候就開源了。從時間來看,開源應該是個無奈的選擇,當時的 Sun 已經日漸式微,雖然貴為 Java 的領導者,但是始終沒有在 Java 身上找到很好的商業模式,說白了,就是不知道如何更好地從 Java 身上賺錢。有讀者會問了,做語言哪有圖賺錢的?沒錯,做語言本身可以不賺錢(除了賣企業授權和衍生品之外),但是作為企業生態系統的一部分,一定要在商業 模型中體現其價值。

Sun 的問題在于,沒有想清楚 Java 的定位和價值,反而成了負擔。開源 Java 的目的一方面是減輕自身的負擔,另一方面也是為了增強 Java 語言的地位。可以說,Android 系統給了 Java 第二春,在移動開發領域也占據了半壁江上。Oracle 對待 Java 的方式和 Sun 完全不一樣,以社區來推動 Java 的發展,自己承擔的職責(成本)減少很多。同時,又利用 Java 相關的一些專利牽制了部分對手。所以 Oracle 是想的比較明白的。

就以今年的 20 周年慶祝活動為例,有熟悉的朋友告訴我,Java10 周年(當時 Sun 主辦)的慶祝活動在國內當時是全民狂歡的級別,燒錢很多,而今年的 20 周年活動縮水很多,不可同日而語。或許,這就是兩者最根本的區別吧。

.NET

說完 Java,當然也要說說它的老冤家對頭 .NET 了,微軟這些年雖然有些坎坷,被互聯網巨頭沖擊不小,但依然是 IT 巨無霸之一,最近又提出了移動和云優先戰略,對開源技術也持開放的心態,逐漸把 .NET 家族的上上下下開源出來,對社區的震撼不亞于蘋果開源 Swift。有關 .NET 開源的故事,我在另外一篇文章《.NET 開源,且行且珍惜》中已經做了詳細的介紹,這里就不重復了,感興趣的讀者可以回復“.NET 開源”查看。

一句話總結

開源的勢頭勢不可擋了,逆著激流會被吞沒,不如順著激流同化為激流。

微信公眾號“技術風向標”,關注 IT 趨勢,承載前沿、深入、有溫度的內容。感興趣的讀者可以搜索 ID:jishuqushi,或者長按下方二維碼加關注。轉載需保留此文字和二維碼。

 本文由用戶 pdce 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!