我们希望有一种简单的方法来评判开源程序。这是可以做到的。但是很容易吗?那是另一回事了。说到开源,你不能依赖明星的力量。
“群众智慧”启发了各式各样的在线服务,人们在这些服务中分享自己的观点,并指导他人做出选择。互联网社区已经创造了很多方法来做到这一点,比如亚马逊评论、GlassDoor(你可以在这里对雇主进行评级),以及TripAdvisor和Yelp(针对酒店、餐馆和其他服务提供商)。你也可以对商业软件进行评级或推荐,比如在移动应用商店或通过产品猎头之类的网站。但是,如果您需要帮助您选择开源应用程序的建议,结果是令人失望的。
这不是因为没有尝试。很多人已经创建了系统来收集、判断和评估开源项目,包括有关项目的受欢迎程度、可靠性和活跃性的信息。但这些评论网站及其方法都有缺陷。
以最古老编程指标:代码行(LoC)为例。是的,它很容易测量。但它也具有深刻的误导性。正如编程天才Edsger Dijkstra在1988年观察到的那样,LoC给人一种“令人放心的错觉,认为程序只是一种和其他程序一样的设备,唯一承认的区别是,它们的制造可能需要一种新型的工匠,即。程序员。从那时起,用“每月产生的代码行数”来衡量“程序员的生产率”只是一小步。这是一个非常昂贵的测量单位,因为它鼓励编写平淡的代码。“。
1997年,著名开发者Patrick Lenz创建了第一个免费和开源软件的上市和公告网站Fresmeat.net。它的本意是作为开源程序的指南。但是鲜肉从来没有兑现它的承诺。
由于方向和所有权的改变,鲜肉以失败告终。最后,没有人真正清楚地知道如何将该网站货币化。
鲜肉紧随其后的是免费码(Freecode)。该站点的任务是维护“网络上最大的Linux、Unix以及跨平台软件和移动应用程序索引”。它解释说,“每个条目都提供了对软件的描述、下载链接和获取更多信息的链接,以及项目发布的历史记录,这样读者就可以了解最新的发展情况。”你可以认为Freecode是雅虎第一次迭代的开源软件专用版本,作为网络指南。
就像它的前身一样,这个网站慢慢地停了下来-然后完全停止了。它的所有者宣称,“从2014年6月18日起,Freecode网站已经转移到静态状态,因为流量很低,这样人们就可以专注于更有用的工作,而不是维护网站。”
开源联合创始人埃里克·S·雷蒙德(Eric S.Raymond)试图重振免费码(Freecode)。雷蒙德认为,没有其他网站“能如此全面地了解开源世界在做什么”。在他看来,Freecode有很多但可以修复的问题。其中包括:减少人类的节制,只专注于开源软件,并将其削减到基本功能。唉,他的努力收效甚微。这个遗址仍然是一件静态的古董。
今天,GitHub Stars被认为是评估开源程序优点的一种快捷、简单的方法。最大的开源Git存储库GitHub将其STAR系统描述为跟踪人们感兴趣的项目的一种方式。然而,许多开发人员将明星作为提升自己声誉的一种方式。
Docker的联合创始人所罗门·海克斯(Solomon Hykes)强烈反对。“GitHub明星是个骗局。这种胡说八道的标准是如此普遍,GitHub对开源社区的束缚是如此之彻底,以至于维护者不得不扭曲他们的工作流程,以适应“GitHub模型”,否则就有被行业分析师公开羞辱的风险。太丢人了。“。
海克斯并不是唯一一个认为GitHub明星是一个误导性失败的人。高德纳(Gartner)高级总监芬坦·瑞安(Fintan Ryan)认为,明星只是一个混淆了营销和GitHub上实际代码的游戏。微软在Azure上负责开源开发的项目经理Ralph Squillace在推特上写道:“在我看来,对于微软项目[工程]和管理来说,它们一文不值。(但)不管怎样,总会有人抓住它们。“。
这就是问题所在。人们喜欢简单的指标。他们想要一个快速、一目了然的答案来解决他们的编码(和其他)问题。剧透提醒:根本没有这回事。
尽管如此,一些网站和服务为项目的整体健康状况提供了有价值的见解。许多这样的网站,比如面向GitHub One客户的商业独立应用程序GitHub Insights,都仅限于项目开发经理,而不是关注项目的外部人士。
Synopsys的Black Duck Open Hub(前身为Ohloh)是一项确实能让每个人了解开源项目的服务。通过在该站点上搜索,任何人都可以深入到主要项目中,看看谁在特定开源应用程序的版本控制系统中做什么。
虽然Open Hub不会为您提供关于项目的简单答案,但它确实分享了一些重要信息,如最近十个版本的安全漏洞、每月提交的数量以及最近活跃的开发人员数量。您还可以确定项目中最活跃的开发人员。有了这些数据,您就可以对特定项目的价值得出您自己的结论。
比方说,您想知道哪个开放源码程序对于给定的需求来说是最受欢迎的。多亏了谷歌趋势(Google Trends),比较项目比你想象的更容易确定。
例如,一个永恒的开源争论是OpenOffice还是LibreOffice是更好的开源办公套件。LibreOffice的相对质量可能还有待商榷,但通过比较这两个程序的搜索量,你很快就会发现LibreOffice出现在搜索中的平均频率是OpenOffice的两倍多。
这只触及了皮毛。你也可以使用该服务的时间范围选项发现,LibreOffice自2016年末以来一直比OpenOffice更受欢迎。(碰巧,这是在我宣布LibreOffice成为两者之间的胜利者几个月后。)。
或者,选择一个更面向企业的搜索,当谈到容器编排时,我们都知道Kubernetes是赢家。但是,它是什么时候变得明确的,它将击败Docker群模式和中间层,现在是D2IQ?在谷歌趋势搜索之后,你会发现到2016年春天,Kubernetes已经在集装箱编排方面占据了很大的领先地位。
最后,当你想看看还没有发生什么的时候,谷歌趋势也是不错的。例如,“Breakout”指的是某一特定搜索词的流量突然上升。通过对“技术”进行全面搜索,我发现最热门的突破性词汇是一个我甚至从未听说过的词--尽管我是通过跟踪科技热点:交通即服务(TAAS)来谋生的。看着点,利息很高。
如果有一个真正有用的评级系统来帮助人们发现优秀但不太显眼的开源项目,那就太好了。但是,在成千上万的项目中找出哪些是至关重要的、重要的项目--如果你愿意的话,可以说是软件Yelp--的简单方法是不存在的。它可能永远不会成为现实。
希望永远涌现。RedHat的开源项目办公室(OSPO)经理Brian Profitt正在与其他人合作一个新项目,以便于评估开源项目:项目CHAOSS。这个Linux基金会项目致力于创建有助于定义开源社区健康的分析和指标。
“自从我开始在红帽工作以来,找出一种定量衡量社区健康的方法一直是我的团队的优先事项,”普罗维特解释说。“一开始,我们使用西班牙供应商Bitergia提供的工具,采用巨型仪表盘的方式。他们使用像Grimoirelabs这样的开源项目来组装令人惊叹的仪表盘,每天更新我们管理的项目的进展情况报告。
然而,就像我们一直在讨论的其他努力一样,这种方法遇到了麻烦。这一次信息太多了。普罗维特说:“我们的大多数社区经理没有时间分析这些大量的数据,并在此基础上做出有意义的决定。”
因此,红帽公司也开始了CHAOSS项目的工作。这将Grimoirelab和类似的项目,如Augur和RedHat自己的Prospector结合在一起。CHAOSS有两个方面:从事软件应用程序工作的人,以及“其他人从事可以被定义为社区健康一部分的事情的人,”Profitt说。“过去的争论总是,‘嗯,我的社区因为X而不同,所以你不能用和Y一样的标准来评判我们。’”
Profitt和CHAOSS不同意这样的观点。“看看中国农村的一个小村庄。看看欧洲的一个特大城市。两个社区,但有很大的不同,对吗?只是他们都必须有办法解决水、食物和卫生问题。他们都必须有办法四处走动。是的,在村子里可能是土路上的自行车,而在大城市里,可能是街道、高速公路、有轨电车和地铁。但从根本上说,社区的健康只取决于有没有合适的交通工具,而不是什么类型的交通工具。“。
虽然重点放在社区上,但CHAOSS的度量标准也可供项目经理和维护人员使用。它的衡量标准包括做出了什么贡献;什么时候做出了贡献;以及谁做出了贡献。所有这些对于理解项目的整体健康状况都是至关重要的。
CHAOSS仍在进行中。它的正式发布定于2021年2月。
在一个相关的发展中,从2019年末开始,比特贾开始了一个新的上游项目-大锅(Kauldron)的工作。该公司将其一直在仪表盘中呈现的数据作为一项服务提供给用户。普罗维特在这方面看到了巨大的潜力。“这真的非常有趣,而且非常简单:您可以将其指向git回购,它将显示有关贡献者、结束问题的时间、贡献级别…的统计信息。这些作品。“。
RedHat已经在使用Cauldron提供社区快照。“众所周知,RedHat的开源过程是成功的,所以OSPO从合作伙伴和客户那里得到了很多关于如何使用开源的问题,”Profitt说。有些问题是具体的,比如,“我们想和X项目合作,它健康吗,它可持续吗?”普罗维特解释说,“如果我们能提供一个社区健康的关键方面的快照报告,我们就可以帮助对话进行下去。”
最终,这些数据将向所有人开放,从最终用户到项目负责人。“事实上,我希望这种情况经常发生,因为我们可以更快地改进我们的模型,”普罗维特说。“例如,如果我们确实发现一个项目在某些方面有缺陷--比如说,他们似乎缺少一个主要的沟通渠道,比如邮件列表--我们当然非常欢迎他们回来说,‘不,我们有一个,就在这里!’”然后,我们可以更正我们的数据,并为将来可能以相同方式配置其通信通道的其他项目的报告做笔记。如果它真的很模糊,我们可以建议他们也许可以让它变得更明显,所以这是一个双向的对话。“
“可量化的指标是设定具体目标和改进计划的好方法,”Profitt总结道。这也是60年代使用LoC作为度量标准的人的目标。今天,由于更好地理解了什么是真正重要的,什么是无关紧要的,我们越来越接近于有一种真实而简单的方式来理解哪些程序值得我们花时间,哪些我们可以安全地忽略。
自动化正在给商业和IT世界带来革命性的变化。测试界也不例外。在我们精美的新电子书中了解更多关于测试自动化的五个级别。
Steven J.Vaughan-Nichols,又名sjvn,自从CP/M-80是尖端的PC操作系统;300bps是快速的互联网连接;WordStar是最先进的文字处理器;我们喜欢它之后,他就一直在撰写关于技术和技术业务的文章。他的作品发表在从高科技出版物(IEEE Computer,ACM NetWorker,Byte)到商业出版物(eWEEK,ComputerWorld,ZDNet)到流行技术(CNET,PC Magazine,PC World)到主流媒体(华盛顿邮报,旧金山纪事,商业周刊)的方方面面。