开源项目不只是其星级指标
直觉上,我们都知道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项目:
由于所有这些原因,星级很有价值-它们并不是评估开源项目的完整指标。