小萬同學在我的煽動誘惑慫恿下,大出血買了部新款 Macbook Pro 外配 16G 內存,近日連連驚嘆 Mac OS X 多麼多麼好用。某日突然又說要再花錢買一個正版的文本編輯器 TextMate. 作為一名資深屌絲,這已經是打腫臉充胖子的行為了。我說前幾天還看到新聞說它已經開源了啊?小萬同學大驚:“開源了?!但是它首頁上還在賣許可證 50 美刀一個啊?”

開源不等於免費。小萬同學對這個概念表示簡直無法理解。

為什麼要開源?

最近讀到 GitHub 聯合創始人 Tom 的這篇文章 Open Source (Almost) Everything,裡面的很多觀點令我感同身受。他認為開源不僅僅是開放代碼,讓更多人能夠修復 bug 對軟件進行改進,更重要的是,開源代碼成為了軟件很好的廣告(great advertising)。有了一個開放的姿態,更多的人會去關注它,從另一個角度看你也吸引到了更多的優秀的人(attract talent)。如果你正在招開發人員,最好的應聘者其實是根本不需要進行技術面試的,因為他早已在你開源的項目中如魚得水。Google、Facebook、Twitter等等很多大公司都從開源社區中獲益匪淺,他們也將自己的一部分核心技術開放出來,對社區進行回饋。這就形成了一個良性的生態,減少了大量重複造輪子的工作(reduce duplication of effort)。好的代碼像首詩,爛的代碼像坨屎。屎一樣的代碼開源出來是毫無意義的,既然要公布給大家看,你就得對自己的代碼有足夠的自信,從架構設計、編寫規範、安全性等等方面都會對自己有更嚴格的要求。這也是開源的一大裨益。

開源也能賺錢?

隨着互聯網的蓬勃發展,大部分軟件早已脫離了傳統意義上賣使用許可的模式。Software as a Service 軟件即服務的概念深入人心。即使在中國這樣差的版權環境下,我縱覽自己的電腦,發現盜版軟件早已沒了蹤影——都是免費軟件了。

QQ 是免費的,但騰訊顯然從我身上賺到了錢。雖然我從未給騰訊公司付款,但我對騰訊系列網站的每一次訪問,看到的每一個廣告,都在為騰訊貢獻價值。這個例子可能不太恰當,因為企鵝是不開源的。但我想表達的是,只要你的軟件是為客戶提供服務,免費軟件也能賺錢。(行業攪屎棍某數字公司深諳此理哈~)

那麼我們來看看開源賺到錢的例子。RedHat 是一家軟件公司,同時也是一個 Linux 操作系統發行版的名字。RedHat 在服務器操作系統市場佔據主導地位,擁有 52% 的 Linux 操作系統市場份額。他們賺了很多錢,並於 1999 年在納斯達克上市,2011 年年收入 11.3 億美元。矚目的成績背後,他們的系統竟然也是開源的。事實上,有一個叫做 CentOS 的 Linux 發行版,完全就是 RedHat 所開放出來的源代碼重新編譯一次而成,替換了 RedHat 的 Logo 商標而已,這一切都是合法的。

他們怎麼賺到錢的?

雖然 RedHat 源碼開放,但它仍然是一個收費操作系統。既然有免費的 CentOS 為什麼還有人會花錢買 RedHat 呢?這就是剛剛提到的 SaaS 軟件即服務。RedHat 賣出去的並不是操作系統本身,而是服務。如果 Server 系統出了毛病,無法解決,客戶就可以找 RedHat 技術支援,免費的 CentOS 是不會有這樣的支援的,使用者必須自己搞定各種問題,而在緊要關頭,線上系統性能低下、宕機等等很多時候對業務都是致命的。這裡就體現出服務的價值了。

從這個角度看,文章開頭提到的 TextMate 開源,同時也收費,就不難理解了。你完全可以使用它開放的源碼自己編譯,但軟件作者不提供任何質量保證。另外,很多用戶並非計算機專業人士,懂得怎樣編譯軟件的畢竟是少數。想省事的就直接去交錢下載作者提供的可執行軟件,這樣來說,幫你編譯出二進制文件也可以是收費的一個理由了。

開源軟件還有很多種盈利模式:

  • 多種產品線。如 MySQL 產品就同時推出面向個人和企業的兩種版本,即開源版本和專業版本,分別採用不同的授權方式。開源版本完全免費以便更好的推廣,而從專業版的許可銷售和支持服務獲得收入。
  • 技術服務。Java 企業級應用服務器軟件 JBoss 就是這種模式的典型代表。JBoss 應用服務器完全免費,而通過提供技術文檔、培訓、二次開發支持等技術服務而獲得收入。
  • 通過免費軟件賣硬件。比如 IBM HP 等服務器供應商巨頭,通過捆綁免費的 Linux 操作系統銷售硬件服務器。他們在開源軟件領域投入巨大,但這一切並非是做善事,它們可以從配置了開源軟件的硬件銷售中獲得巨額回報。
  • 附屬品。比如著名的開源軟件出版商O’Reilly公司,就不遺餘力地聯繫各開源軟件權威人士,組織各種開源軟件的會議,出版很多優秀的開源軟件的參考資料。雖然知識是免費的,但承載知識的書籍卻是收費的。

我為什麼寫這篇文章?

最近因為無心插柳而獲得回報,所以感慨良多。

之前我為自己的博客寫了一個 wordpress 插件 Microsoft AJAX Translation。因為我發現 塵埃落定 的很多訪客朋友都來自香港台灣,所以我很想做一個將簡體網頁翻譯為繁體的功能以提升用戶體驗。當時 Google 的免費翻譯引擎因不堪重負已經關閉,轉而推出收費接口。於是 wordpress 上很多基於 Google API 的翻譯插件都失效了。經過研究我發現微軟的翻譯引擎不錯,改造一下就寫成了一個插件。雖然我的需求是中文繁簡轉換,但 Microsoft 提供多種語言互譯,我只需要傳遞不同的參數即可,何樂而不為呢?

插件發布到了 WordPress 官方網站,同時在 GitHub 公布了源代碼。第一周,就有 500 多次下載。

wp-plugin-downloads

這實在是太酷了!我用英文寫了一篇 blog 介紹這個插件,痛陳 Google 收費之舉導致的大量以此為生的項目死亡。沒想到的是,竟然有人為我寫的這個插件捐款了——

wp-plugin-donation

If you think this wordpress plugin is useful and you derive benefit from it, you may want to bought me a cup of coffee. Your support is the motivation of my development.

——我只不過在文章的最後加了一個 paypal 鏈接而已。而且僅僅發布了一次更新修復了一個 bug,就再沒管它了。後來,我又收到了一次來自巴西的 5 美元捐贈。這些錢都是微不足道的,但我開始覺得這件事情很有意思。為了解決自己的問題而做事情的初衷,最後幫助了其他人,並收到別人主動表示的感激,這個成就感的滿足遠遠大於我在公司寫代碼而每月賺取工資。

另一個例子。由於版權方面的一些原因,優酷土豆等國內視頻網站 限制非中國大陸地區用戶 觀看,這對於很多身在海外心懷祖國的中國留學生們來講十分不便。我在香港也遇到了這個問題,無意間發現一個 Unblock-Youku Chrome 瀏覽器插件 可以幫助繞過這個限制。作者 zhuzhuor 也將代碼開源在了 GitHub 上。拋開道德因素,我純粹出於興趣研究了一下,發現它的原理非常簡單,於是我又把國內可能有限制的網站一個個測試了一遍,修改代碼,增加對 QQ 音樂、蝦米、百度音樂等等網站的支持。

在這個過程中,我學習了瀏覽器插件開發和 git 工具的使用。我將我新增的功能提交到 GitHub 並向原作者 zhuzhuor 發送 pull request 合併代碼。 zhuzhuer 欣然接受,並把我的名字也加入到插件開發者列表中。我又寫了篇 blog 介紹這個插件,再一次出乎我的意料,我這麼一個小博客網站的流量開始飆升。原來有好多在國外的中國人想要去國內網站看視頻卻被限制,他們在 Google 上搜索解決辦法,就找到了我的那篇文章。命中了龐大的用戶需求,我的文章在 Google 上很多相關的關鍵字排名都在第一。甚至都有日本人來我的博客留言諮詢問題。

unblock-youku-jp

這個插件很快地傳播開來,目前已經有超過 30\ 50\ 100 萬人安裝了它。有網站引用了我的文章,這又帶來了更多訪問。對於站長來說,流量就意味着金錢。於是,生平第一次,我收到了 Google Adsense 的付款。

adsense-payment

我從來沒有指望通過寫博客賺錢,由於需求已被滿足,目前我的博客也恢復了正常:每天零星數百的訪問。只是如此的意外總會帶來開心。我更深切體會到開源、社區、協同開發的力量。如果你做得夠好,那麼就會收穫來自社區的感謝,和你應有的名聲。

做能讓自己快樂的工作,賺錢只不過是一個附屬產品罷了。