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

2024-06-22 21:28

本文主要是介绍如果你死了,你的代码怎么代替你继续存在下去,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

你可能听说过这个人: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 带到未来。

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

#开源

这篇关于如果你死了,你的代码怎么代替你继续存在下去的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1085459

相关文章

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

Python中顺序结构和循环结构示例代码

《Python中顺序结构和循环结构示例代码》:本文主要介绍Python中的条件语句和循环语句,条件语句用于根据条件执行不同的代码块,循环语句用于重复执行一段代码,文章还详细说明了range函数的使... 目录一、条件语句(1)条件语句的定义(2)条件语句的语法(a)单分支 if(b)双分支 if-else(

MySql死锁怎么排查的方法实现

《MySql死锁怎么排查的方法实现》本文主要介绍了MySql死锁怎么排查的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录前言一、死锁排查方法1. 查看死锁日志方法 1:启用死锁日志输出方法 2:检查 mysql 错误

MySQL数据库函数之JSON_EXTRACT示例代码

《MySQL数据库函数之JSON_EXTRACT示例代码》:本文主要介绍MySQL数据库函数之JSON_EXTRACT的相关资料,JSON_EXTRACT()函数用于从JSON文档中提取值,支持对... 目录前言基本语法路径表达式示例示例 1: 提取简单值示例 2: 提取嵌套值示例 3: 提取数组中的值注意

CSS3中使用flex和grid实现等高元素布局的示例代码

《CSS3中使用flex和grid实现等高元素布局的示例代码》:本文主要介绍了使用CSS3中的Flexbox和Grid布局实现等高元素布局的方法,通过简单的两列实现、每行放置3列以及全部代码的展示,展示了这两种布局方式的实现细节和效果,详细内容请阅读本文,希望能对你有所帮助... 过往的实现方法是使用浮动加

JAVA调用Deepseek的api完成基本对话简单代码示例

《JAVA调用Deepseek的api完成基本对话简单代码示例》:本文主要介绍JAVA调用Deepseek的api完成基本对话的相关资料,文中详细讲解了如何获取DeepSeekAPI密钥、添加H... 获取API密钥首先,从DeepSeek平台获取API密钥,用于身份验证。添加HTTP客户端依赖使用Jav

Java实现状态模式的示例代码

《Java实现状态模式的示例代码》状态模式是一种行为型设计模式,允许对象根据其内部状态改变行为,本文主要介绍了Java实现状态模式的示例代码,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来... 目录一、简介1、定义2、状态模式的结构二、Java实现案例1、电灯开关状态案例2、番茄工作法状态案例

nginx-rtmp-module模块实现视频点播的示例代码

《nginx-rtmp-module模块实现视频点播的示例代码》本文主要介绍了nginx-rtmp-module模块实现视频点播,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习... 目录预置条件Nginx点播基本配置点播远程文件指定多个播放位置参考预置条件配置点播服务器 192.

CSS自定义浏览器滚动条样式完整代码

《CSS自定义浏览器滚动条样式完整代码》:本文主要介绍了如何使用CSS自定义浏览器滚动条的样式,包括隐藏滚动条的角落、设置滚动条的基本样式、轨道样式和滑块样式,并提供了完整的CSS代码示例,通过这些技巧,你可以为你的网站添加个性化的滚动条样式,从而提升用户体验,详细内容请阅读本文,希望能对你有所帮助...