分享

世界上最完美的两个软件,太厉害了!

 江海博览 2023-09-24

在阅读此文之前,辛苦点击右上角的“关注”,既方便您进行讨论与分享,又能给您带来不一样的参与感,感谢您的支持!

导语:

在今天的文章中,我们将介绍两个软件,它们分别代表了软件开发的极致和个体程序员能力的巅峰。首先,我们将深入探讨航天飞机飞行控制软件,这个软件不仅控制着价值数十亿美元的设备,还关系到航天员的生命以及国家的荣誉。然后,我们将转向排版软件TEX,由计算机科学家高德纳开发,它如何成为全球学术排版的首选,以及高德纳对代码质量的坚持。

01 航天飞机飞控软件:精确无比的控制

航天飞机,一个庞大的机械巨兽,重达120吨,携带着2000吨的燃料,它的飞行控制软件承载着巨大的责任。这个软件由四台硬件相同、软件也相同的计算机组成,它们精确控制着航天飞机的发射过程。每秒,它们从数千个传感器中提取信息,并做出数百个决策,每个决策都要进行投票。此外,还有第五台计算机待命,随时准备替换其他出现故障的计算机。

这些计算机的任务包括确定何时点火主发动机、何时点火固体火箭助推器、如何控制火箭的姿态等等。在每次发射中,这个软件不仅要掌控着数十亿美元的设备,还要确保六名航天员的生命安全,以及国家的宇航梦想。任何崩溃或重启都是不允许的,即使最微小的误差,比如一个三分之二秒的计时错误,都足以使航天飞机偏离航线近5公里。

洛克希德马丁公司的航天飞机小组通过极为苛刻的软件开发流程取得了巨大的成功。

这个小组的260名员工创造了一种不同寻常的开发文化,他们不依赖超级明星程序员,而是通过精心设计的流程来保证软件的质量。这个流程的核心包括规范的制定、需求的详细文档化以及严格的审查流程。规范不仅仅是口头达成的,而是书面记录,非常专业和精确。没有双方的同意,规范中的任何内容都不会改变。这种文档化的流程确保了每个细节都得到了充分的讨论和确认。

此外,洛克希德马丁公司建立了两个百科全书式的数据库。

世界上最完美的两个软件,太厉害了!

一个用于记录代码历史,每一行代码都有详细的注释,显示了每次更改的时间、原因和目的。另一个是错误数据库,记录了软件在编写和运行时发生的每一个错误,包括错误的发现时间、发现者、活动情况以及错误的引入方式。这些数据库为他们提供了宝贵的经验教训,甚至开发了一个代码模型,可以预测某个版本中可能存在的错误数量。

重要的是,他们强调不仅要修复错误,还要解决引入错误的根本问题,这需要对整个流程进行深入分析。

世界上最完美的两个软件,太厉害了!

这种流程使得航天飞机软件几乎没有错误,接近完美。事实上,最后的三个版本中,每个版本只有一个Bug,而最后的11个版本一共只有17个错误。这在同等复杂度的商业程序中是难以想象的。这种开发方式看似严格,但它确保了软件的可靠性和稳定性。

02 排版软件TEX:高德纳的艺术之作

1973年,高德纳的巨著《计算机程序设计的艺术》正在持续写作中,而这部书已经被计算机界誉为'神作'。

世界上最完美的两个软件,太厉害了!

当高德纳在1974年获得ACM图灵奖时,他选择了一个令人大跌眼镜的决定,宣布暂停写作。原因是他认为现有的计算机排版系统太差,严重破坏了书的美感。于是,他开始了单枪匹马的开发工作,创造出了排版软件TEX,这个软件至今仍然是全球学术排版的不二之选。

TEX的功能强大,几乎无懈可击。有趣的是,它的版本号并不采用传统的数字或年份表示,而是不断逼近圆周率的数值,这反映了高德纳对软件质量的自信,他曾表示:“最后一次升级是将版本数改为π,那时任何余下的漏洞将被看作程序的功能!”

为了验证TEX的质量,高德纳设置了一个奖金,奖励那些能从TEX中发现Bug的人。奖励金额从最初的2

.56美元开始,然后每年翻倍增加,5.12美元、10.24美元,以此类推。这种奖金制度反映了高德纳对自己代码质量的极度自信。然而,当奖金达到327.68美元后,很少有人再报告Bug了。那些找到Bug的人更愿意将高德纳亲笔签名的支票收藏起来,视之为珍贵的纪念品。

高德纳的编程能力堪称一绝,他曾在一次编程竞赛中以一台性能最慢的批处理机器取得胜利,碾压了硅谷的所有程序员。他的编程哲学是将创造力集中在一次运行中,确保没有错误,并设计出最佳的算法。这种严谨和专注于细节的态度让他在编程领域独树一帜。

总结:

这两个软件的故事展示了不同的软件开发方法和个体程序员的卓越能力。洛克希德马丁公司的航天飞机飞控软件通过苛刻的软件开发流程取得了令人印象深刻的成功,确保了航天飞机的安全和可靠性。

而高德纳则以他的排版软件TEX成为了计算机科学界的传奇,展现了在追求卓越的过程中,坚守原则和追求完美的重要性。这两个故事都告诉我们,在软件开发领域,质量和专注细节是取得成功的关键。

以上内容资料均来源于网络,本文作者无意针对,影射任何现实国家,政体,组织种族,个人。相关数据,理论考证于网络资料,以上内容并不代表本文作者赞同文章中的律法,规则,观点,行为以及对相关资料的真实性负责。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多