GitHub可能是克隆俱乐部,但Java代码是最原始的

我们中间谁还没有从GitHub复制一些代码到我们正在从事的工作中? 毕竟,代码共享是GitHub的存在理由。 但是,该网站上有大量的复制猫。

一个基于UC Irvine的国际研究人员团队开始研究代码在复制之间如何变化。 但是随着结果的出现,“惊人的”重复率导致他们改变了焦点。

研究人员分析了超过4.28亿个文件,代表使用Java,C ++,Python和JavaScript编写的450万个非叉子项目。 其中,他们发现只有8500万个唯一文件。 总体而言,GitHub上超过70%的代码由先前创建的文件的克隆组成。

朋友,这真是太多复制粘贴了。

而“最原始代码”奖授予了……

有趣的是,编程语言之间存在相当大的差异。 有些语言是Dolly的忠实拥护者 ,有些则不是。

根据Lopez等人的说法 ,这种变化是惊人的。 JavaScript的文件复制率最高,只有6%的不同文件。 C ++略胜一筹,相差23%,其次是Python,相差28%。 Java是最独特的,大约有60%的原始文件。

GitHub可能是克隆俱乐部,但Java代码是最原始的

这是他们的代码重复图。 y轴是每个项目的提交数; x轴是项目中文件的数量。 每个图块的值是图块中所有项目的重复文件百分比。 红色的深阴影意味着任何给定项目的更多克隆。

项目级分析表明,在9%到31%的项目中至少包含80%的文件可以在其他地方找到。

GitHub可能是克隆俱乐部,但Java代码是最原始的

为了增加趣味性,研究人员为最经常使用的项目挖掘了数据。 即批量复制文件,没有任何更改。

  • Java – Minecraft-API和PhoneGap
  • C ++ – GNU ISO C ++库,作业模板和Arduino示例
  • Python –仙人掌,Shadowsocks,Scons
  • JavaScript – Adob​​e PhoneGap的Hello World Template7,可在多达1746个项目中找到

C ++学习者也许不会公然欺骗对方吗?

收到

为什么这么重要? 并不是说我们每个人都被for窃。 研究人员非常清楚,这是对其他希望“随机采样” GitHub数据集的数据科学家的警告。 例如,考虑到JavaScript中重复项的绝对数量,如果您不控制克隆,就很难得出什么流行的结论。

为了解决这个问题,他们创建了DéjàVu ,这是一个用于克隆信息检索和简单源代码/项目/数据集分析的Web服务。 如果您有兴趣,他们在Java,C ++,Python和JavaScript上有很多文件映射GitHub上的克隆文件。

DéjàVu依靠社区的帮助。 因此,如果您想标记一些克隆,它们将很乐意为您提供帮助。

翻译自: https://jaxenter.com/github-clone-club-java-code-139149.html