vlambda博客
学习文章列表

点赞能代表一切?Github的星数排行榜被高估了

流量时代注意力代表一切,这一条似乎在哪儿都说得通。即使是在GitHub上浏览开源项目,我们也会更关注那些获得星星更多的项目,这当然无可厚非。它们能简单直观地给出积极反馈。
从用户角度来说,较高的星数是你选择这个项目而不是另一个项目的理由。从维护者的角度来说,每多收获一颗星星就能刺激你分泌多一点多巴胺。
然而,我们内心其实都清楚一个开源项目在GitHub上收获星星的多少并不能说明它的成败。点击“Star”按钮也仅仅表示“我觉着它有趣”。这不是一件坏事,但也不能一锤定音一个项目的成败。
笔者正在做《Cortex,开源机器学习架构》这个项目,尽管知道星数不能代表一切,但只要星数大幅上涨,笔者都会毫无理由地兴奋。 
图源:Star History
很显然笔者不是个例。现在有专门围绕GitHub星数搭建的一个完整的生态系统,开源营销已经成为它的商机。
点赞能代表一切?Github的星数排行榜被高估了
开源团队致力于发布星数里程碑大字报,现在已经有一套完整的追踪分析星数增长的工具。
星数已不知不觉从“一个公开支持某一项目的方式”变成了“开源软件的货币”。这值得我们去重新评估一个星星究竟价值几何。
点赞能代表一切?Github的星数排行榜被高估了
为何星数不像你想的那么重要
星星确有价值,但如今人们对它们重视过头,有些不合常理。总体来说,星数并不像我们看待的那么重要,原因有以下几点。
1.星数不等同于用户数
你可以在没有使用某项目的情况下给它点一个星星,也可以使用过某个项目却不给它星星。星数与用户数之间不存在必然的因果关系,当然了,他们可以促进彼此数量增长。
用Cortex举例,有一大批用户没有给这个项目投星星,着实有些令人震惊。我们评估cortex星数是否有价值的north star指的是在实际生产中运用该项目模型的人数。
我们通过与实际用户交流进行衡量。如果得到的数据不断上涨,我们做的事情就很有意义;如果数据下跌,cortex项目里的东西就要修改,即便这个项目的星数仍在增长。
2.星数高度依赖开发环境
星数并不是一个始终如一的价值单位,比较不同项目之间的星数并非直截了当。一个项目受众的大小、活跃度、潜在用户数量以及维护者的营销努力,均能对项目的星数产生巨大的影响。
举个例子,如果你开发前端Javascript框架并且有Facebook的营销预算,那么与DevOps工程师使用的工具相比,你能收获更多的星星。
换句话说,React有148,000颗星,相比之下Elasticsearch只有49,000颗星,这一事实并不能说明Elasticsearch逊色于React——他们之间完全没有可比性。
3.星数从本质上来说是社交媒体营销
尽管GitHub不是推特和脸书,但星数仍旧是一种社交媒体营销,所有与社交媒体有关的特征在这里都适用。
首先,有些GitHub用户在社交方面比别人更加积极。有些人能给2,000个项目送星星,有些人只送了几个项目。同样,许多GitHub用户用星星表示对项目的总体支持,即便他们从来没打算使用这个项目。
当第一次发布Cortex的时候,我们收到了许多来自Go受众的支持,甚至还有对机器学习不感兴趣朋友的支持。这没什么不好,我们对这种支持深表感激,但这进一步强调了星数与项目的有用与否是毫不相干。
点赞能代表一切?Github的星数排行榜被高估了
星数不是万能的——但它们仍旧有价值
尽管有上述告诫,但收获一个星星始终是一件高兴的事。如果你想给Cortex送一个星,就不用管我说的这些,快去送吧。
星数表明人们通常对某个项目感兴趣,同理可知,它给衡量类似项目提供了一个有用的基准。比较React和Elasticsearch可能没有任何意义,但React的星数是Angular的两倍可能就大不一样了。
星数还能反馈哪些人认为这个项目有趣。不仅仅是数据科学家,也有很多其他开发人员对Cortex感兴趣,这令我们颇感意外,也影响了我们做出的许多有关如何开发项目的决定。
最后,星数能更容易寻找项目。除了高星数有助于项目脱颖而出这一显著事实之外,送星星还能影响GitHub的推荐系统。因为我曾给类似的项目送过星,所以我每天都能发现新的机器学习项目:
点赞能代表一切?Github的星数排行榜被高估了
星数的价值当然不可否认,但唯星数论显然是不合理的,它们不能作为评价开源项目的完整指标。不要因为星数的影响,而遗落了那些真正优秀的开源项目。

编译组:孔祺琪、高荣蔚

相关链接:

https://towardsdatascience.com/github-stars-are-overvalued-15ba780b36

-END-

已有50万人
领取Python案例实战课

世界正在奖励坚持学习的人!