歡迎光臨
每天分享高質量文章

開源專案商業樣式分析(2) – 持續維護的重要性 – Selenium和WatiN

該系列第一篇釋出後收到不少反饋,包括:

  1. 第一篇裡說的MonicaHQ不一定盈利

    沒錯,但是問題在於絕大多數開源專案商業資料並沒有公開,從而無法判斷其具體是否盈利。難得MonicaHQ是公開的,所以才用來做這系列文章的開篇。

  2. 很多人關心最初使用者(專業術語叫種子使用者)是怎麼來的?

    這不但是開源專案的難點,還是任何一切專案的難點,這個話題實在是太大了。無法開展。

  3. 有相當一部分人喜歡看像MonicaHQ這種處於早期的開源專案介紹,覺得這類專案才有參考意義,但是也有相當一部分人喜歡看成名的大開源專案分析。

所以:

  1. 我將系列名稱改為了《商業樣式分析》。
  2. 在以後等文章裡,我可能無法舉出翔實的資料支撐了,只能靠我個人片面的記憶和經驗,所以更加需要大家的反饋來糾正偏差了。

好了,開始第二篇文章。

這篇文章的主題是:持續維護在開源專案中的重要性!以Selenium和WatiN 為例子

Selenium是個很有名氣的大開源專案,主要用於自動化測試,由IBM主導。我現在也在用。

然而在十年前,Selenium的質量比WatiN差很多,比如:

  1. Selenium當時是針對Firefox最佳化的,而WatiN是針對IE最佳化的。你要想你的自動化測試程式碼跑在IE下,WatiN質量比Selenium好很多。
  2. 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也想更新的啊,然而:

  1. 一開始的時候,WatiN真的領先Selenium太多,完全沒有動力和必要更新啊。
  2. 幾年後,nuget出現了。WatiN為此終於做出了幾年來第一次更新!這次更新就是為了支援nuget.這次更新成功的原因是改動不大,工作量不大。
  3. 當2015年現代Javascript框架和Chrome超越IE這兩件大事出現時,WatiN如果要適應它們,改動實在是太大太大了,所以果斷放棄更新了。

而Selenium為啥能持續不斷的更新呢?因為它有IBM這個大金主好爸爸啊!

WatiN第一沒有IBM這個大金主好爸爸,第二又沒有任何收入來源,拿什麼去支援持續不斷的更新?

這個真實的故事告訴我們,開源專案一定要有能支撐其長期發展的商業樣式!技術暫時不先進沒有關係,只要有一個能夠支撐其長期發展的商業樣式!你可以像龜兔賽跑裡面的那隻烏龜,超越那隻睡覺的兔子!

 

原文地址:https://www.cnblogs.com/adalovelacer/p/Open-source-must-earn-money-2.html

    贊(0)

    分享創造快樂