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

美国国会图书馆拥有约2400万本各种类型的图书。它是人类有史以来,创造的书写人类知识最大的宝库。
2009年,Github成立。它现在拥有超过3500万软件库或信息库,有着几十万亿行代码。研究表明,这一数额以指数速度增长,每14个月左右还会双倍增长。开放源代码是毫无疑问今天编程技术的前沿,是人类知识最大的、功能最强大、最先进的宝库。
那么,为什么90%-98%的开放式源代码,12个月后会被抛弃?
细节处见代码
我们先来看一组惊人的数字:今天写的代码,明年今日,90%以上将永远不会被再次使用。
它们变得无效、过时,在时间的流沙中被遗忘。在2015年调查中,Stack Overflow发现,每个开发者在工作之外一周平均花费大约7小时来编程。 GitHub的报告指出超过1200万用户在开源项目工作。数百万聪明的人花了数百万个小时的工作就这样被人们置之不理了。

最疯狂的一部分是似乎没有人问“为什么?”。为什么绝大多数开放源代码被掩埋,被忘记了?为什么我们每一天一遍又一遍地编写相同的代码,而同一时间该代码几乎可以肯定就在开源平台的某处, 在等待被我们使用的?
这种事发生的主要原因是,因为人们只是把信息库作为存储库。开发者都知道AngularJS,或JQuery的或React,但很少有人知道超过10个开源软件包。这就是让人疯狂的部分,因为人们不知道、或者不使用整个开源软件包,所以没有人使用其中的代码。写于2015年的软件包可能对一个人来说不是整体都有用,但也许它恰好就包含了所需的功能。最有用的部分不总是整个包,有时是其中的一段代码。
比方说,有人正在寻找一个JavaScript的功能以在数组中洗牌元素,或不同的功能来创建随机的字符串。这些小的代码片段在开源平台有几百个相同的。但是,没有人知道他们的存在,即使他们知道,也没有人知道如何找到它们。因此,这些有价值的知识被丢弃或遗忘,只是因为它们难以获得。实在太扯了,对所有人而言都没好处。
整理所有代码,并使其方便找到
那么,我们要如何解决这个烂摊子?回答这个问题很容易,做起来就很难,你需要做三件事情:
从功能方面整理所有开放的源代码,对它们进行详细分类
建立一个模型来表示这些不同代码的实际功能
创建一个容易简单的方法来搜索和查找这些代码片段。
这就是我们建立Cocycles的原因。Cocycles满足上述所有的条件,同时还在继续完善。它的算法可以处理大量的开源代码,阅读和理解每一条不同的代码的功能。然后,它可以让人们使用简单的英文来搜索代码。
例如,用户只需要输入“洗牌阵列”或“创建随机字符串”,然后它们会用各种开放源代码执行、文档、用法示例和更多的方式呈现。它甚至会提供生成的包含所有的附属和子功能的有用片段。

在未来的几年后,人工智能软件也许能够用它来寻找和学习新的代码;不断完善和改变代码。
相关文章:
开源代码的寿命为何只有1年?
说实话,如果古希腊的西西弗斯是一个在2016年编写开源代码的开发者,那他会有宾至如归的感觉。著名的西西弗斯处罚,是神话流传下来的,他被迫推一块巨大的石头上山,当登顶之后,只能眼睁睁看着它滚下去…...
完善登录功能--过滤器的使用
系列文章目录 Spring Boot读取配置文件内容的三种方式 Spring Boot自动配置–如何切换内置Web服务器 SpringBoot项目部署 上述为该系列部分文章,想了解更多可看我博客主页哦! 文章目录系列文章目录前言一、创建自定义过滤器LoginCheckFilter二、在启动类…...
CSS基础:属性和关系选择器
字体属性 color 文本颜色 div{ color:red;} div{ color:#ff0000;} div{ color:rgb(255,0,0);} div{ color:rgba(255,0,0,.5);}font-size 文本大小 h1 {font-size:40px;} h2 {font-size:30px;} p {font-size:14px;}注意:chrome浏览器接受最小字体是12px font-we…...
设计模式:原型模式解决对象创建成本大问题
一、问题场景 现在有一只猫tom,姓名为: tom, 年龄为:1,颜色为:白色,请编写程序创建和tom猫属性完全相同的10只猫。 二、传统解决方案 public class Cat {private String name;private int age;private String color;…...
驱动开发(二)
一、驱动流程 驱动需要以下几个步骤才能完成对硬件的访问和操作: 模块加载函数 module_init注册主次设备号 <应用程序通过设备号找到设备>驱动设备文件 <应用程序访问驱动的方式> 1、手动创建 (mknod)2、程序自动创建file_oper…...
《狂飙》大结局,这22句经典台词值得细品
最近爆火的热播剧《狂飙》大家都看了吗? 剧情紧凑、演技炸裂、豆瓣评分9.0,可以说是开年评分最高的一部国产剧。 虽然大结局了。 里面有很多经典台词,值得每个人细细品味。 01 这世界不缺梦想 有本事你就去实现它 02 你这么善良 怎么跟坏…...
【计算机网络期末复习】第二章 物理层
✍个人博客:https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 📣专栏定位:为想复习学校计算机网络课程的同学提供重点大纲,帮助大家渡过期末考~ 📚专栏地址: ❤️如果有收获的话,欢迎点…...
多核异构核间通信-mailbox/RPMsg 介绍及实验
1. 多核异构核间通信 由于MP157是一款多核异构的芯片,其中既包含的高性能的A7核及实时性强的M4内核,那么这两种处理器在工作时,怎么互相协调配合呢? 这就涉及到了核间通信的概念了。 IPCC (inter-processor communication contr…...
【Rust日报】2023-02-11 从头开始构建云数据库 RisingWave - 为什么我们从 C++ 转向 Rust...
GTK4发布v0.60gtk4-rs代码库包含GTK4的Rust crates。还有个庞大的GObject库生态系统,其中许多库基于gtk-rs中包含的Rust绑定工具。 特别是:gtk-rs-core,一些核心库的绑定,例如 glib、gio、pango、graphenegstreamer-rs,…...
Linux驱动开发(一)
linux驱动学习记录 一、背景 在开始学习我的linux驱动之旅之前,先提一下题外话,我是一个c语言应用层开发工作人员,在工作当中往往会和硬件直接进行数据的交互,往往遇到数据不通的情况,常常难以定位,而恰巧…...
Spring MVC 之返回数据(静态页面、非静态页面、JSON对象、请求转发与请求重定向)
文章目录1. 默认情况下返回静态页面2. 返回一个非静态页面的数据2.1 ResponseBody 返回页面内容2.2 RestController ResponseBody Controller3. 实现登录功能,返回 JSON 对象3.1 前端使⽤ ajax,后端返回 json 给前端3.2 前端发送 JSON 的标准格式4. 请…...
leetcode-每日一题-2335(简单,贪心)
自己打表看一下过程就可以发现,其实就是每次选两个大的进行--之后秒数加1即可现有一台饮水机,可以制备冷水、温水和热水。每秒钟,可以装满 2 杯 不同 类型的水或者 1 杯任意类型的水。给你一个下标从 0 开始、长度为 3 的整数数组 amount &am…...
Verilog语法之数学函数
Verilog-2005支持一些简单的数学函数,其参数的数据类型只能是integer和real型。 Integer型数学函数 $clog2是一个以2为底的对数函数,其结果向上取整,返回值典型的格式: integer result; result $clog2(n); 最典型的应用就是通过…...
【手撕面试题】JavaScript(高频知识点一)
目录 面试官:请你简述 var、let、const 三者之间的区别? 面试官:请你谈谈对深拷贝与浅拷贝的理解 面试官:输入URL的那一瞬间浏览器做了什么? 面试官:说一说cookie sessionStorage localStorage 区别&am…...
如何用PHP实现消息推送
什么是消息推送 通过服务器自动推送消息到客户端(浏览器,APP,微信)的应用技术。 2. 为什么要使用消息推送技术 通常情况下都是用户发送请求浏览器显示用户需要的信息。推送技术通过自动传送信息给用户,来减少用于网络上搜索的时间。它根据…...
电子学会2020年6月青少年软件编程(图形化)等级考试试卷(四级)答案解析
青少年软件编程(Scratch)等级考试试卷(四级A卷) 分数:100.00 题数:30 一、单选题(共15题,每题2分,共30分) 1. 执行下图程序后,“花名…...
DaVinci:调色版本
调色版本 Grade Version记录着片段的全部调色信息。将一种调色风格或效果,保存为一个调色版本,从而可在多个调色版本之间查看、比较、挑选或者渲染输出。调色版本类型本地版本Local Versions在没有创建新的调色版本之前,片段的调色信息默认记…...
【C++初阶】十二、STL---反向迭代器的实现
目录 一、反向迭代器 二、反向迭代器的实现 一、反向迭代器 之前的模拟实现vector、list 的时候,这些都是实现了正向迭代器,反向迭代器都没有实现,这里就要实现反向迭代器 反向迭代器也是适配器(配接器)的一种&#…...
day 43|● 1049. 最后一块石头的重量 II ● 494. 目标和 ● 474.一和零
1049. 最后一块石头的重量 II 有一堆石头,用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x < y。那么粉碎的可能结果…...
[SSD固态硬盘技术 0] SSD的结构和原理导论
版权声明: 本文禁止转载机械硬盘的存储系统由于内部结构,其IO访问性能无法进一步提高,CPU与存储器之间的性能差距逐渐扩大。以Nand Flash为存储介质的固态硬盘技术的发展,性能瓶颈得到缓解。1. 什么是SSD固态硬盘(Solid State Drives…...
GLM-OCR公式识别效果展示:LaTeX格式精准渲染,学术党必备工具
GLM-OCR公式识别效果展示:LaTeX格式精准渲染,学术党必备工具 作为一名经常需要处理学术文献的研究人员,我深知公式识别的痛点。那些复杂的数学表达式,要么手动输入到LaTeX里费时费力,要么用传统OCR工具识别后变成一堆…...
LFM2.5-1.2B-Thinking-GGUF开发者案例:为开源硬件项目自动生成README与API文档
LFM2.5-1.2B-Thinking-GGUF开发者案例:为开源硬件项目自动生成README与API文档 1. 项目背景与模型介绍 LFM2.5-1.2B-Thinking-GGUF是Liquid AI推出的一款轻量级文本生成模型,专为低资源环境优化设计。这个1.2B参数的模型采用GGUF格式封装,结…...
终极指南:如何使用Pencil Project实现实时协作原型设计
终极指南:如何使用Pencil Project实现实时协作原型设计 【免费下载链接】pencil The Pencil Projects unique mission is to build a free and opensource tool for making diagrams and GUI prototyping that everyone can use. 项目地址: https://gitcode.com/…...
10分钟精通语音识别:FunASR热词定制实战指南
10分钟精通语音识别:FunASR热词定制实战指南 FunASR作为端到端语音识别工具包,其热词定制功能能够显著提升专业术语的识别准确率。在医疗、金融、科技等专业领域,通过简单的配置文件即可实现98%以上的专业词汇识别精度。本文将从零开始&…...
RPA-Python与pytest-xdoctest集成:Xdoctest测试自动化
RPA-Python与pytest-xdoctest集成:Xdoctest测试自动化 【免费下载链接】RPA-Python Python package for doing RPA 项目地址: https://gitcode.com/gh_mirrors/rp/RPA-Python RPA-Python是一款功能强大的Python自动化库,而pytest-xdoctest则是一个…...
ButtonIn:嵌入式C++轻量级按键消抖库设计与实践
1. 项目概述ButtonIn 是一个专为嵌入式系统设计的轻量级、高可靠性按键输入封装库,其核心定位是为 ARM Cortex-M 系列微控制器(如 STM32、NXP LPC、Renesas RA)上的InterruptIn硬件外设提供工业级消抖(Debouncing)能力…...
enwork
英语口语考试(Oral English Test)作业要求Choose a topic to make an in-depth oral presentation, your topic shall be closely related to your major, your job or any project you have worked on. take a 5-minute video and submit by the 29th of March, 2026.作业提交…...
Dify低代码平台异步能力深度解密(含源码级Hook注入点):为什么你的custom node总在/call接口返回500?
第一章:Dify低代码平台异步能力深度解密(含源码级Hook注入点):为什么你的custom node总在/call接口返回500?Dify 的 /call 接口默认采用同步执行模型,但 custom node 若包含异步 I/O(如 HTTP 调…...
EasyMQTT嵌入式MQTT轻量封装原理与实战
1. EasyMQTT 库深度解析:面向嵌入式工程师的 MQTT 轻量级封装实践EasyMQTT 并非一个通用型 MQTT 客户端抽象层,而是一个高度场景化、面向特定 IoT 生态闭环设计的固件级通信中间件。其核心价值不在于协议栈功能的完备性,而在于将 ESP32/ESP82…...
Checkpoint:3DS与Switch游戏存档管理器5分钟快速上手教程
Checkpoint:3DS与Switch游戏存档管理器5分钟快速上手教程 【免费下载链接】Checkpoint 项目地址: https://gitcode.com/gh_mirrors/che/Checkpoint Checkpoint是一款专为任天堂3DS和Switch游戏机设计的快速、轻量级自制软件存档管理器。无论你是想要备份珍贵…...
