首页 > 其他分享 >如果你死了,你的代码怎么代替你继续存在下去

如果你死了,你的代码怎么代替你继续存在下去

时间:2024-06-22 19:31:45浏览次数:11  
标签:PCRE 代码 Hazel Exim 代替 下去 Philip PCRE2 维护

问你个问题,如果你写的程序代码特别耐用,特别引人注目,几乎全世界的人在用。那么问你个比较丧的问题,有一天你死了,你怎么维护你的程序代码呢?

你可能听说过这个人:Philip Hazel 。他在剑桥大学获得博士学位,1971 年加入 Cambridge Computing Service 担任软件开发者。他曾经负责过邮件服务,这段经历促使他决定使用 C 编译器和运行时为现代操作系统开发一个邮件传输代理(Message Transfer Agent 或 MTA)。

1995 年 3 月,Philip Hazel开始着手开发 Experimental Internet Mailer(就是大名鼎鼎的Exim),到 1995年11 月该项目完成了基本的邮件收发功能,他的同事想要试用 Exim ,但被他以还没写说明文档为由拒绝了(这可能是程序员拒绝发布无文档代码的已知第一个案例,非常非常的具有骑士精神)。

完成说明文档的初稿之后Philip Hazel才开始公开 Exim。

Richard Stallman 说服Philip Hazel将 Exim 的许可证切换到了著名的 GPL。Exim后来被移植到到包括 Linux 的其它操作系统,今天它是世界最流行的 MTA,其流行度超过了 Hazel 自己的预期。再后来邮件管理需要正则表达式,因为已有的方案满足不了需求,Philip Hazel就动手开发了自己的 Perl-Compatible Regular Expressions(PCRE)。

PCRE 的新版本 PCRE2 如今被 Git、Grep、MariaDB、nmap 在内的应用广泛使用。

Hazel 在 2007 年退休时将 Exim 的维护交给了其他人,神奇的是,如今高龄 80 岁的Philip Hazel还在维护 PCRE2,随着身体机能减退,精力不济,Philip Hazel正考虑转交其维护权。

Philip Hazel认为,维护一个成功软件所需的努力远远超过开发该软件本身,创业难,守成更难啊,因为目前还没有人接手维护 PCRE,Philip Hazel还在等待有资格的维护者能挺身而出将 PCRE2 带到未来。

如果你死了,你的代码怎么代替你继续存在下去?

#开源

标签:PCRE,代码,Hazel,Exim,代替,下去,Philip,PCRE2,维护
From: https://blog.csdn.net/bugsycrack/article/details/139886788

相关文章

  • 538个代码示例!麻省理工教授的Python程序设计+人工智能案例实践
    Python简单易学,且提供了丰富的第三方库,可以用较少的代码完成较多的工作,使开发者能够专注于如何解决问题而只花较少的时间去考虑如何编程。此外,Python还具有免费开源、跨平台、面向对象、胶水语言等优点,在系统编程、图形界面开发、科学计算、Web开发、数据分析、人工智能等方面......
  • Vue3的Composition API:Composition API是Vue3的一大新特性,它提供了一种更灵活的方式来
    1.介绍1.什么是CompositionAPI CompositionAPI是Vue.js3.0中引入的一项新特性,提供了一种新的、更灵活的方式来组织Vue组件的代码。CompositionAPI是基于函数的,并允许在组件的setup函数中直接处理响应式数据和生命周期钩子,使得代码更加清晰,更便于维护和测......
  • 对于大型 Clojure 项目,如何进行有效的代码组织和模块划分以提高可维护性?
    在大型Clojure项目中,以下是一些有效的代码组织和模块划分的方法,可提高可维护性:使用命名空间(namespace):将相关函数和数据结构组织到逻辑上相关的命名空间中,以便更好地理解和管理代码。按照功能或模块划分命名空间,可以避免命名冲突和代码混乱。使用文件和文件夹:将每个命......
  • C#如何保证代码的健壮性
    增加C#代码的健壮性可以通过以下几种方法来实现:异常处理(ExceptionHandling):使用try/catch块来捕获可能的异常,确保代码在遇到异常情况时能够graceful地处理,防止程序崩溃或产生不可预料的结果。                try{//尝试连接MQ......
  • Boosting原理代码实现
    1.提升方法是将弱学习算法提升为强学习算法的统计学习方法。在分类学习中,提升方法通过反复修改训练数据的权值分布,构建一系列基本分类器(弱分类器),并将这些基本分类器线性组合,构成一个强分类器。代表性的提升方法是AdaBoost算法。AdaBoost模型是弱分类器的线性组合:......
  • 这款新颖的故障诊断方法成为1区SCI顶刊常客?(附matlab代码)
    引言本期介绍一种用于故障诊断的新颖方法-对称点模式(symmetrizeddotpattern,SDP)。SDP直观的将一维序列(温度,振动、电流等)转换成二维镜像雪花图,通过图形中的差异可直观地反应不同的状态序列。基于SDP和深度学习网络的故障诊断方法,频繁登上1区SCI。关于SDP的理论部分,可以在以下......
  • 让你的 Python 代码更快的小技巧
    我们经常听到“Python太慢了”,“Python性能不行”这样的观点。但是,只要掌握一些编程技巧,就能大幅提升Python的运行速度。今天就让我们一起来看下让Python性能更高的9个小技巧python学习资料分享(无偿):字符串拼接的技巧如果有大量字符串等待处理,字符串连接将成为......
  • 【无人机三维路径规划】基于鱼鹰算法OOA实现复杂城市地形下无人机避障三维航迹规划附M
    %定义地图map=zeros(10,10);%10x10的地图map(3:7,4)=1;%障碍物map(3:7,7)=1;%障碍物%定义起点和终点start=[1,1];goal=[10,10];%进行A*路径规划path=astar_path_planning(map,start,goal);%绘制地图和路径figure;holdon;gridon;......
  • 基于时间卷积门控循环单元融合注意力机制TCN-GRU-Attention实现负荷多变量时间序列预
    %导入数据load(‘data.mat’);%请替换为你的数据文件名%数据应该是一个矩阵,每一行代表一个时间步,每一列代表一个特征或变量%划分训练集和测试集trainRatio=0.8;%训练集比例trainSize=round(trainRatio*size(data,1));trainData=data(1:trainSize,......
  • RAG与LLM原理及实践(3)--- RAG结合LLM的local实现并附完整代码
    在写RAG结合LLM时,如果你读了我前面写的文章,你应该对里面的技术原理及流程有了很详细的了解。在上一篇文章讲了如何在通义千问中使用function的方式来完成LLM与RAG的结合。其实LLM结合RAG的方式可以有很多种,但是原理都是上一节介绍的,其实本质上就是要LLM知道,哪一类问题‘我’......