简评:Quora上的一个问题,摘取两位网友的回答。
我会说,类似 Windows 的操作系统,是相当复杂和高难的软件。
该软件已有 32 年历史,从 16 位 MS Dos 到完全成熟的 64 位操作系统。它有 4500 万行代码。代码完成了硬件接口、操作文件系统、网络管理系统、监督内存访问等诸多功能。从头开始编写这样的代码是非常之困难的。(类似的还有 ReactOS 团队,他们已经编写了 500 万行代码)
另外个例子,Mozilla Firefox 是一款非常复杂的软件。
这个怪物大概有 5100 万行代码,其中大部分都是 C++,JavaScript 和 C,毕竟作为一个跨平台、多语言、全面、顶尖的 Web 浏览器,其难度可想而知。
第三个例子是 GNU/Linux 通用编译器 GCC。
在最后一个版本(v7.3.0)的源代码中使用 David Wheeler 的 SLOCCount工具,我发现 GCC 的核心部分大约有 500 万行代码(主要是 C,C ++ 和 Ada)。请记住,GCC 是一个庞大的软件,它的前端可以编译6种不同的语言(C,C ++,Ada,Objective C,Fortran,Go)以及 8 种即将推出的语言。编写一个多通道,跨语言编译器可能非常困难。
@Afrizal Fikri:
阿波罗 11 号火箭制导系统相当之复杂。最近有人在 github 开源了计算机指令和登月部分的源代码。
这有多困难?首先这是第一艘载人登月火箭,前无古人。一切都是从零开始。更重要的是,使用最低级的汇编语言编写,你敢想象么?
需要考虑的另一件事是这个系统如何保持内部时钟同步,如果你了解时区模块,你就知道其复杂度和处理难度会让人发狂的。
你所知道的最难编写的软件是什么?欢迎评论留言。
原文链接:Mohammed Isam's answer to What is the hardest program to code from scratch?
推荐阅读:这些是 Python 官方推荐的最好书籍