开源代码的寿命为何只有 1 年?

说实话,如果古希腊的西西弗斯是一个在2016年编写开源代码的开发者,那他会有宾至如归的感觉。著名的西西弗斯处罚,是神话流传下来的,他被迫推 一块巨大的石头上山,当登顶之后,只能眼睁睁看着它滚下去,周而复始直到永远。悄无声息的,全球的开发者在过去的几年里,也在接受类似的处罚。而且巨石还 在不断变大。

美国国会图书馆拥有约2400万本各种类型的图书。它是人类有史以来,创造的书写人类知识最大的宝库。

2009年,Github成立。它现在拥有超过3500万软件库或信息库,有着几十万亿行代码。研究表明,这一数额以指数速度增长,每14个月左右还会双倍增长。开放源代码是毫无疑问今天编程技术的前沿,是人类知识最大的、功能最强大、最先进的宝库。

那么,为什么90%-98%的开放式源代码,12个月后会被抛弃?

细节处见代码

我们先来看一组惊人的数字:今天写的代码,明年今日,90%以上将永远不会被再次使用。

它 们变得无效、过时,在时间的流沙中被遗忘。在2015年调查中,Stack Overflow发现,每个开发者在工作之外一周平均花费大约7小时来编程。 GitHub的报告指出超过1200万用户在开源项目工作。数百万聪明的人花了数百万个小时的工作就这样被人们置之不理了。

最疯狂的一部分是似乎没有人问“为什么?”。为什么绝大多数开放源代码被掩埋,被忘记了?为什么我们每一天一遍又一遍地编写相同的代码,而同一时间该代码几乎可以肯定就在开源平台的某处, 在等待被我们使用的?

这 种事发生的主要原因是,因为人们只是把信息库作为存储库。开发者都知道AngularJS,或JQuery的或React,但很少有人知道超过10个开源 软件包。这就是让人疯狂的部分,因为人们不知道、或者不使用整个开源软件包,所以没有人使用其中的代码。写于2015年的软件包可能对一个人来说不是整体 都有用,但也许它恰好就包含了所需的功能。最有用的部分不总是整个包,有时是其中的一段代码。

比方说,有人正在寻找一个 JavaScript的功能以在数组中洗牌元素,或不同的功能来创建随机的字符串。这些小的代码片段在开源平台有几百个相同的。但是,没有人知道他们的存 在,即使他们知道,也没有人知道如何找到它们。因此,这些有价值的知识被丢弃或遗忘,只是因为它们难以获得。实在太扯了,对所有人而言都没好处。

整理所有代码,并使其方便找到

那么,我们要如何解决这个烂摊子?回答这个问题很容易,做起来就很难,你需要做三件事情:

1.从功能方面整理所有开放的源代码,对它们进行详细分类

2.建立一个模型来表示这些不同代码的实际功能

3.创建一个容易简单的方法来搜索和查找这些代码片段。

这就是我们建立Cocycles的原因。Cocycles满足上述所有的条件,同时还在继续完善。它的算法可以处理大量的开源代码,阅读和理解每一条不同的代码的功能。然后,它可以让人们使用简单的英文来搜索代码。

例如,用户只需要输入“洗牌阵列”或“创建随机字符串”,然后它们会用各种开放源代码执行、文档、用法示例和更多的方式呈现。它甚至会提供生成的包含所有的附属和子功能的有用片段。

在未来的几年后,人工智能软件也许能够用它来寻找和学习新的代码;不断完善和改变代码。

====================================分割线================================
文章转载自 开源中国社区[http://www.oschina.net]

时间: 2024-11-05 19:38:19

开源代码的寿命为何只有 1 年?的相关文章

使用Facebook开源代码FBShimmering封装进度显示的ShimmeCircleView

使用Facebook开源代码FBShimmering封装进度显示的ShimmeCircleView 效果图: 静态图: 源码: ShimmeCircleView.h 与 ShimmeCircleView.m // // ShimmeCircleView.h // YouXianMingClock // // Created by YouXianMing on 14-10-13. // Copyright (c) 2014年 YouXianMing. All rights reserved. //

jpeg-冈萨雷斯 JPEG2000 参数不知道设置为多少合适 下载了开源代码 也不会运行

问题描述 冈萨雷斯 JPEG2000 参数不知道设置为多少合适 下载了开源代码 也不会运行 10C 冈萨雷斯 JPEG2000 参数不知道设置为多少合适 下载了开源代码 也不会运行

调试-小白请教,基于知网的词语相似度计算开源代码,为何无法找到词语?

问题描述 小白请教,基于知网的词语相似度计算开源代码,为何无法找到词语? 传送门:http://download.csdn.net/detail/liuygvip/4379328 包括了论文,算法描述,完整代码.代码注释也非常清晰,也调试可用. 问题是: 为什么我在其他项目中引用这个项目的相似的计算时,永远提示未找到收录词汇.....? 按理说词典没有加载成功的话会报错提示的,可是没有啊.只不过输入任何词汇都提示未找到收录词汇,这是怎么回事啊?

开源代码调试 Stereo Matching IEEE 2009

问题描述 开源代码调试 Stereo Matching IEEE 2009 各位大神有木有人调试成功过<Stereo Matching with Nonparametric Smoothness Priors in Feature Space>的开源代码呀?求帮助 解决方案 给个链接我给调试一下看看,stereo 的东西我在做

makefile文件-Realvnc3.3.7开源代码嵌入式移植

问题描述 Realvnc3.3.7开源代码嵌入式移植 在realvnc下载了源码版本3.3.7进行交叉编译,解压源码后查看README分两步进行编译,其编译方式说明为: To build this distribution you need a C++ compiler as well as a C compiler. You also need a reasonably recent version of the X window system installed. This come as

C++开源代码项目汇总

Google的C++开源代码项目 v8  -  V8 JavaScript EngineV8 是 Google 的开源 JavaScript 引擎.V8 采用 C++ 编写,可在谷歌浏览器(来自 Google 的开源浏览器)中使用.V8 根据 ECMA-262 第三版中的说明使用 ECMAScript,并在使用 IA-32 或 ARM 处理器的 Windows XP 和 Vista.Mac OS X 10.5 (Leopard) 以及 Linux 系统中运行.V8 可以独立运行,也可以嵌入任何

源代码格式化是如何实现的?有什么好的实现源代码格式化功能的开源代码?

问题描述 源代码格式化是如何实现的?有什么好的实现源代码格式化功能的开源代码? Sublime.VS.Eclipse等很多开发工具都提供了格式化代码的功能,那么如何实现这些功能呢?有没有开源的格式化代码可以参考阅读呢? 解决方案 读取源代码,解析成抽象语法树(ast),然后产生对应的缩进.如果是C#,用rolysn,sdk有例子.

完整复现何恺明ICCV获奖论文结果并开源 !(附论文&amp;开源代码)

ICCV 作为计算机视觉的顶级会议,2017年共收到2143篇论文投稿,比上一届ICCV2015的1698篇增加了26.2%.共621篇被选为大会论文,录用比例28.9%:poster.spotlight.oral 比例分别为24.61%.2.61%和2.09%. 组委会根据作者署名统计了不同大学的研究数目,清华大学超过CMU.MIT.ICL.斯坦福以及谷歌名列第一,上海交通大学.北京航空航天大学也在前10当中. 而此次大会最大的新闻一定是何恺明大神在 ICCV 上拿下了双best paper!

Hacking Team 恶意程序被发现使用开源代码

安全研究员Collin Mulliner在其博客上披露,意大利公司Hacking Team未经许可就使用了他的开源工具--如Android Dynamic Binary Instrumentation --去开发产品监视活动人士,他感到生气和伤心.在黑客泄露的400GB Hacking Team内部文件中,该公司工程师在电子邮件中谈论了Mulliner开发的开源代码.此外,Hacking Team还被发现使用了其它开源代码如Cuckoo Sandbox.Mulliner表示将为其开源代码加入许可