該系列第一篇釋出後收到不少反饋,包括:
- 第一篇裡說的MonicaHQ不一定盈利
沒錯,但是問題在於絕大多數開源專案商業資料並沒有公開,從而無法判斷其具體是否盈利。難得MonicaHQ是公開的,所以才用來做這系列文章的開篇。
- 很多人關心最初使用者(專業術語叫種子使用者)是怎麼來的?
這不但是開源專案的難點,還是任何一切專案的難點,這個話題實在是太大了。無法開展。
- 有相當一部分人喜歡看像MonicaHQ這種處於早期的開源專案介紹,覺得這類專案才有參考意義,但是也有相當一部分人喜歡看成名的大開源專案分析。
所以:
- 我將系列名稱改為了《商業樣式分析》。
- 在以後等文章裡,我可能無法舉出翔實的資料支撐了,只能靠我個人片面的記憶和經驗,所以更加需要大家的反饋來糾正偏差了。
好了,開始第二篇文章。
這篇文章的主題是:持續維護在開源專案中的重要性!以Selenium和WatiN 為例子
Selenium是個很有名氣的大開源專案,主要用於自動化測試,由IBM主導。我現在也在用。
然而在十年前,Selenium的質量比WatiN差很多,比如:
- Selenium當時是針對Firefox最佳化的,而WatiN是針對IE最佳化的。你要想你的自動化測試程式碼跑在IE下,WatiN質量比Selenium好很多。
- WatiN的用法和程式碼風格十分先進,WatiN和Selenium的用法和程式碼風格差距就像C#和Java的差距一樣大,用慣了WatiN的用法和程式碼風格你再用Selenium你會無法忍受。
我從2008年開始一直用WatiN用到2015年。無數次想把WatiN換成Selenium,但是都告失敗了,因為在以上幾點裡,Selenium還是一直不能超越WatiN。
然而,到了2015年,我終於放棄了WatiN,改用Selenium了。
因為2015年發生了兩件大事!
第一件,Angular/React/Vue等現代Javascript框架出現了!
WatiN因為缺乏持續維護,終於跟不上潮流,無法用在這些現代Javascript框架上!而Selenium因為持續不斷的更新,可以用在這些現代Javascript框架上。
第二件,這些現代Javascript框架對IE支援都不好,對Chrome支援都很好,同時IE市場份額不斷地掉,Chrome變成了第一大瀏覽器了(這兩者互為因果吧)。
WatiN因為缺乏持續維護,上面提到第一點也就是它最強大的競爭力,針對IE最佳化,隨著IE市場份額不斷地掉已經不再是競爭力了。
而Selenium因為持續不斷的更新,並且把更新重點放在支援Chrome和現代Javascript框架上,Selenium第一個缺點消失了,變成了優點!現在Selenium在Chrome上跑比Firefox好很多很多了!
同時,也因為持續不斷的更新,Selenium的用法和程式碼風格現在變得和WatiN類似,甚至比WatiN更好了!嗯,大家可以在腦海裡想象一下,Java也像C#一樣支援LINQ了,就可以理會到類似情景了。
See! 因為持續不斷的更新,Selenium把WatiN所有優點都超越了!
我做為一個用了WatiN7年的老人,當然是無比的憂傷!然而又能如何?
好啦,問題來了,WatiN為啥不像Selenium一樣持續不斷的更新呢?
其實WatiN也想更新的啊,然而:
- 一開始的時候,WatiN真的領先Selenium太多,完全沒有動力和必要更新啊。
- 幾年後,nuget出現了。WatiN為此終於做出了幾年來第一次更新!這次更新就是為了支援nuget.這次更新成功的原因是改動不大,工作量不大。
- 當2015年現代Javascript框架和Chrome超越IE這兩件大事出現時,WatiN如果要適應它們,改動實在是太大太大了,所以果斷放棄更新了。
而Selenium為啥能持續不斷的更新呢?因為它有IBM這個大金主好爸爸啊!
WatiN第一沒有IBM這個大金主好爸爸,第二又沒有任何收入來源,拿什麼去支援持續不斷的更新?
這個真實的故事告訴我們,開源專案一定要有能支撐其長期發展的商業樣式!技術暫時不先進沒有關係,只要有一個能夠支撐其長期發展的商業樣式!你可以像龜兔賽跑裡面的那隻烏龜,超越那隻睡覺的兔子!
原文地址:https://www.cnblogs.com/adalovelacer/p/Open-source-must-earn-money-2.html