当前位置: 首页 > news >正文

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

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

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

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

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

细节处见代码

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

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

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

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

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

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

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

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

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

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

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

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

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

http://www.lryc.cn/news/3447.html

相关文章:

  • 完善登录功能--过滤器的使用
  • CSS基础:属性和关系选择器
  • 设计模式:原型模式解决对象创建成本大问题
  • 驱动开发(二)
  • 《狂飙》大结局,这22句经典台词值得细品
  • 【计算机网络期末复习】第二章 物理层
  • 多核异构核间通信-mailbox/RPMsg 介绍及实验
  • 【Rust日报】2023-02-11 从头开始构建云数据库 RisingWave - 为什么我们从 C++ 转向 Rust...
  • Linux驱动开发(一)
  • Spring MVC 之返回数据(静态页面、非静态页面、JSON对象、请求转发与请求重定向)
  • leetcode-每日一题-2335(简单,贪心)
  • Verilog语法之数学函数
  • 【手撕面试题】JavaScript(高频知识点一)
  • 如何用PHP实现消息推送
  • 电子学会2020年6月青少年软件编程(图形化)等级考试试卷(四级)答案解析
  • DaVinci:调色版本
  • 【C++初阶】十二、STL---反向迭代器的实现
  • day 43|● 1049. 最后一块石头的重量 II ● 494. 目标和 ● 474.一和零
  • [SSD固态硬盘技术 0] SSD的结构和原理导论
  • Vue (3)
  • SQL语句,常用的DDL表操作语句
  • C 语言 宏定义 :字符串化 stringify 的应用
  • 代替swagger的api接口神器
  • 2月12日,30秒知全网,精选7个热点
  • HTML img和video object-fit 属性
  • Pascal版本的 - freopen
  • STM32单片机OLED显示
  • 备战金三银四,软件测试面试题(全)
  • 硬件篇-配置
  • 网页内容 中文乱码 解决办法