写点什么

GitHub “唯星论”可以休矣

  • 2020-07-21
  • 本文字数:2166 字

    阅读完需:约 7 分钟

GitHub “唯星论”可以休矣

本文最初发表在 Towards Data Science,经原作者 Caleb Kaiser 授权,InfoQ 中文站翻译并分享。


开源项目在 GitHub 上的星(Star)并不是它的全部意义。


译注:星是仓库的书签或赞赏表示。星标是项目受欢迎程度排名的手动方式。


凭直觉我们都知道,GitHub 的星,对于开源项目来说并不是决定性的因素。点击“星”按钮这个行为只是表示用户认为:“我觉得这个项目很有趣。”这是一个不错的信号,但它并不是项目是否成功的定论。


尽管如此,GitHub 的星还是很有诱惑力的。星很简单,可以计数,而且还是积极反馈的信号。作为用户,较高的星标数让你有理由查验一个项目而不是另一个项目。作为一个维护者,每一次星标数的增长都会让你感到兴奋——这是我的经验之谈。


我在 Cortex 工作,Cortex 是开源机器学习基础设施,尽管明知如此,我仍然会对星标数的激增感到莫名的亢奋。



来源:https://star-history.t9t.io/#cortexlabs/cortex


很显然,我并不孤单。围绕着 GitHub 的星,有一个完整的生态系统。开源营销已经成为自己的利基市场。



开源团队致力于通过公告实现星的里程碑。已经出现了一套完整的工具,可用于跟踪和分析星标数增长的情况(见上图)。


曾不知几何起,GitHub 的星,从“支持一个项目的公开方式”悄然变为“开源软件的流通货币”,因此,重新评估 GitHub 的星到底有什么价值是很有必要的。

为什么 GitHub 的星没有你想象的那么重要

GitHub 的星确实是有价值的,不过这一点我们稍后再谈。但今天对它们的强调,却有些不相称。总的来说,GitHub 的星并不像我们所认为的那样有价值,原因有以下几点:

1. 星并不等同于用户

你可以在不使用项目的情况下就为它标星。你也可以在不标星的情况下去使用某个项目。这可能是显而易见的事实,但必须强调的是,星与用户之间并不存在必然的因果关系(当然,其中一个可以导致另一个)。


例如,在 Cortex,就有数量惊人的用户没有在其仓库上进行标星。


我们评估 Cortex 是否健康是看它在生产环境中部署模型的人数。我们通过与实际用户的互动来衡量。如果这个数字上升,我们就知道我们做的是对的。如果它下降了,就说明我们有一些问题需要去解决,即使星标数仍在增加。

2. 星高度依赖环境

GitHub 的星并不是一个一致的价值单位,不同项目之间的星标数比较,并非完全直截了当。


一个项目的社区规模和活跃度、潜在用户的数量以及维护者的营销力度,都对该项目的星标数有着巨大的影响。


比如,如果你是前端 JavaScript 框架,并且你有 Facebook 的营销预算,那么你的星标数就会比 DevOps 工程师的工具还要高。换言之,与 Elasticsearch 的星标数为 4.9 相比,Rect 的星标数只有 14.8 万,但这一事实并不能说明 Elasticsearch 是否成功——它们的关系就好比苹果和橘子一样,没有可比性。

3. 从根本上说,GitHub 的星仍然是一种社交媒体

虽然 GitHub 显然不是 Twitter,但 GitHub 的星仍然是一种社交媒体,所有通常的注意事项都适用。


首先,一些 GitHub 用户在社交方面比其他用户更为活跃。有些用户为 2000 个项目进行了标星,而有些用户几乎就没标过星。


同样,很多 GitHub 用户也会用标星来表示对一个项目的普遍支持,即使他们从未打算使用这个项目。例如,当我们刚推出 Cortex 时,我们收到了很多来自 Go 社区用户标的星,甚至是那些对机器学习不感兴趣的人。这并没有什么不对,我们非常感谢大家的支持,但这只是强化了星与使用量的脱节。

星并非所有的一切,但它们仍然很有价值

尽管我提出了如前所述的注意事项,但如果你能获得一颗星,仍然是好事一桩。


GitHub 的星是人们普遍对一个项目感兴趣的信号,同样的道理,星标数可以为类似项目之间提供一个有用的基准。比较 React 和 Elasticsearch 可能没有什么意义;但 React 的星标数是 Angular 的两倍以上,这一事实可能是有意义的。


GitHub 的星也会提供一些反馈,告诉你哪些人觉得这个项目有意思。对于 Cortex,我们发现这个项目不仅在数据科学家中很受欢迎,在开发人员中也很受欢迎,这一点很让人惊讶。这就影响了我们如何开发这一项目的一些决策。


最后,我要说的是,GitHub 的星,能够让一个项目更容易被发现。除去显而易见的事实外,较高的星标数有助于项目脱颖而出,还会影响 GitHub 的推荐。我经常发现新的机器学习项目,那是因为我曾经给类似的项目标过星:



出于所有这些原因,GitHub 的星还是有价值的,只不过它们并非评估开源项目的完整指标。


作者介绍


Caleb Kaiser,Cortex Lab 创始团队成员,曾在 AngelList 工作,最初在 Cadillac 供职。


原文链接


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


2020-07-21 13:592561

评论

发布
暂无评论
发现更多内容

非科班面试阿里,拼多多,银行都问了些啥?

我是程序员小贱

简述Python中变量作用域的规则

wangkx

Python python升级 Python基础

troubleshoot之:分析OutOfMemoryError异常

程序那些事

Java JVM 异常 JIT

简谈Python3中的闭包

wangkx

Python Python基础

SpringBoot系列(四):SpringBoot特性_外部化配置(properties文件配置)

xcbeyond

Java 微服务 springboot

简谈Python3关键字nonlocal使用场景

wangkx

Python Python基础

IT人的身体健康

隆隆

IT人健康

你可能不知道的iPython使用技巧

wangkx

Python

憋再@官方了,头像加国旗,10行代码给你安排!

wangkx

Python python升级

重点发布!河北行动计划发布!聚焦7大重点任务发展大数据产业

CECBC

区块链技术 落地应用 政策

浅谈技术管理者的角色认知与自我管理

Geek_37rwst

团队管理 管理 自我管理 技术管理

图解JavaScript——代码实现(new、Object.create()、Object.assign()、flat()等十四种代码原理实现不香吗?)

执鸢者

Java 大前端 代码原理

Rust竟然没有异常处理?

袁承兴

rust 异常 java异常处理

架构优化与业务迭代,你会怎么选?

架构精进之路

软件开发

我们未曾见过的世界,大到无法想象

wangkx

ios 极客 apple 苹果 软件推荐

如何理解Python中的可迭代对象、迭代器和生成器

wangkx

Python python升级

HashMap、LinkedHashMap 学习笔记

Geek_vidmje

二叉查找树-增删查和针对重复数据的 Java 实现

多选参数

数据结构 算法 二叉树 数据结构与算法

推荐一个替代印象笔记,onenote的神奇笔记!

申屠鹏会

笔记

告诉你如何同时拿到腾讯两个部门的offer?

我是程序员小贱

大厂需要你的简历有这些内容!

我是程序员小贱

翻译: Effective Go (5)

申屠鹏会

翻译 Go 语言

Kafka和RocketMQ底层存储之那些你不知道的事

yes

kafka RocketMQ 零拷贝 Mmap

神经网络激活函数为什么要使用非线性函数?

wangkx

神经网络 激活函数

队列高级应用之设计一个高性能线程池

架构师修行之路

分布式 线程池 架构设计 架构师

一口气搞懂「文件系统」,就靠这 20 张图了

小林coding

操作系统 计算机基础 文件管理 文件存储 文件系统

领域驱动设计(DDD)实践之路(二):事件驱动与CQRS

vivo互联网技术

DDD 架构设计 CQRS

如何做好技术选型

xcbeyond

Java 架构 最佳实践 技术选型

架构师训练营 - 第 7 周学习总结

红了哟

第10周总结+作业

林毋梦

敏捷软件工程实践书籍

Bob Jiang

敏捷 敏捷书籍 工程实践

GitHub “唯星论”可以休矣_文化 & 方法_Caleb Kaiser_InfoQ精选文章