GitHub的星級被高估了
開源項目不只是其星級指標
直覺上,我們都知道GitHub明星并不是一個開源項目的成敗之舉。 點擊"星標"按鈕只是說:"我覺得很有趣。" 收集的信號不是一個壞信號,而是有關項目是否成功的最后決定。
盡管如此,星星還是誘人的。 它們簡單,可數且發出積極的反饋。 作為用戶,較高的星級數使您有理由在一個項目上簽出另一個項目。 作為維護者,恒星的每一次顛簸都會使您多巴胺有所提高-我是根據這里的經驗講的。
我從事的是開放源代碼機器學習基礎設施Cortex的工作,盡管了解得更多,但是星空激增仍然讓我非理性地興奮。
顯然,我并不孤單。 有圍繞星構建的整個生態系統。 開源營銷已成為自己的利基市場。
開源團隊致力于通過公告來實現里程碑。 已經出現了一整套用于跟蹤和分析恒星生長的工具(請參見上圖)。
沿途的某個地方,明星從"支持項目的公共方式"變成了"開源軟件的流行",因此有必要重新評估明星的真正價值。
為什么星級不像您想的那么重要
明星確實具有價值-稍后會更詳細-但今天對它們的強調卻不成比例。 總的來說,由于某些原因,恒星并不像我們傾向于對待它們那樣有價值。
1.星級不等于用戶
您可以在不使用項目的情況下為項目加注星標。 您可以在不加注星標的情況下使用項目。 這聽起來似乎很明顯,但是必須強調一下,明星和用戶之間沒有必然的因果關系(當然,一個可以導致另一個)。
例如,在Cortex,尚未有大量用戶加入該回購協議。
我們評估Cortex是否健康的星是使用它在生產中部署模型的人數。 我們通過與實際用戶互動來進行衡量。 如果這個數字上升,我們知道我們做對了。 如果數量減少,即使星級增加了,我們也要解決一些問題。
2.明星高度依賴環境
星號并非始終如一的價值單位,并且比較項目之間的星數并非十分簡單。
項目社區的規模和活動,潛在用戶的數量以及維護人員的營銷工作對項目的星級影響很大。
例如,如果您是前端Javascript框架,并且有Facebook的營銷預算,那么與DevOps工程師使用的工具相比,您將擁有更多的明星。 換句話說,React擁有148,000顆星,而Elasticsearch的49,000顆星這一事實并不能說明Elasticsearch是否成功(蘋果和橘子)。
3.從根本上說,星級仍然是社交媒體的參與
GitHub顯然不是Twitter,但明星仍然是社交媒體的參與對象,所有通常的警告都適用。
首先,一些GitHub用戶在社交方面比其他用戶更活躍。 一些用戶為2,000個項目加注星標,而其他用戶幾乎沒有注視。
同樣,許多GitHub用戶使用星號表示對項目的總體支持,即使他們從未打算使用它。 例如,當我們首次啟動Cortex時,我們獲得了Go社區的好評,甚至來自對機器學習不感興趣的人。 這沒什么不對,我們非常感謝您的支持,它只是在加強星星與使用的聯系。
星級不是萬能的,但它們仍然很有價值
盡管有上述警告,但獲得一顆星仍然是一件好事(實際上,如果您想給Cortex一顆星,請不要讓我阻止您)。
星號表示人們通常對某個項目感興趣,并且同樣可以在相似的項目之間提供有用的基準。 比較React和Elasticsearch可能沒有任何意義,但是React具有超過Angular兩倍星的事實可能是有意義的。
明星們還會就誰覺得項目有趣提供一些反饋。 有了Cortex,我們驚訝地看到該項目在開發人員中的受歡迎程度,而不僅僅是數據科學家。 這影響了我們如何開發該項目的許多決定。
最后,星星使項目更容易被發現。 除了明顯的高星數有助于項目脫穎而出這一明顯事實外,它們還影響GitHub的建議。 由于我曾出演過類似的項目,因此我通常會查找新的ML項目:
由于所有這些原因,星級很有價值-它們并不是評估開源項目的完整指標。