17

在整个软件开发的历史中,有时会发生某些人(通常不为人知,可能是不知情的)做出的事情,在当时看来是一个微不足道的短期决定,改变了编程世界。想到了什么这种性质的事件,我们的行业为减轻痛苦做出了什么反应?

插图(我能想到的最大的一个):当 IBM 设计最初的 PC 时,决定通过选择具有 8 位可寻址内存的半脑死 8088 来节省几美元的制造成本,而不是16 位选项(8086、680n 等),注定我们要进行 20 年的地址偏移计算。

(作为回应,开始了许多unix平台开发的职业。)

在天平的另一端,有人决定在键盘的左端有一个怪物 Shift Lock 键,而不是 Ctrl 键。

4

34 回答 34

30

Paul Allen 决定在 MS DOS 中使用 / 字符作为命令行选项。

于 2008-12-18T18:34:21.247 回答
28

仅为年份字段分配 2 位数字。

缓解措施是在字段溢出之前花费大量金钱和时间来扩展它们并修复代码。

于 2008-12-18T18:06:21.710 回答
24

艾伦·图灵在 42 岁时结束了他的职业生涯。

于 2008-12-19T03:09:49.397 回答
18

Microsoft 决定使用反斜杠而不是正斜杠作为路径分隔符。并且无法虚拟化驱动器号。

于 2008-12-18T18:49:32.917 回答
13

实际上 8088 和 8086 具有相同的内存模型和相同数量的地址位 (20)。唯一不同的是外部数据总线的宽度,8088 为 8 位,8086 为 16 位。

我会说不同操作系统(\n - UNIX,\r\n - DOS,\r - Mac)使用不一致的行尾是一个错误的决定。最终,Apple 通过将 \n 设为 OS-X 的默认值来让步,但 Microsoft 顽固地坚持使用 \r\n。即使在 Vista 中,记事本也无法正确显示使用 \n 作为行尾的文本文件。

这个问题的最好例子是 FTP 的ASCII模式,它只是将 /r 添加到从 UNIX 服务器传输到 Windows 客户端的文件中的每个 /n,即使该文件最初包含 /r/n。

于 2008-12-18T21:35:46.200 回答
9

C 的设计中有很多次优决策(运算符优先级、愚蠢的 case 语句等),这些决策嵌入在许多语言(C、C++、Java、Objective-C,也许是 C#)的大量软件中- 不熟悉那个)。

我相信丹尼斯·里奇(Dennis Ritchie)说过他很快就重新考虑了优先级,但不会改变它。世界上没有整整三个安装和数十万行源代码。

于 2008-12-18T18:48:44.667 回答
8

决定 HTML 应该用于标记超文本文档以外的任何内容。

于 2008-12-18T19:13:10.700 回答
7

Microsoft 决定使用“C:\Program Files”作为应在 Windows 中安装程序的标准文件夹名称。突然间,在命令提示符下工作变得更加复杂,因为那个冗长的位置带有嵌入的空间。你不能只输入:

cd \program files\MyCompany\MyProgram

每当目录名称中有空格时,都必须将整个内容用引号括起来,如下所示:

cd "\program files\MyCompany\MyProgram"

为什么他们不能直接将其命名为 c:\programs 或类似的名称?

于 2009-01-23T19:20:04.347 回答
6

Microsoft 决定不在 MS-DOS 中添加类似 *NIX 的执行/不执行文件权限和安全性。我想说的是,如果每个可执行文件都需要在系统上执行(更不用说造成严重破坏)之前都需要标记为可执行文件,那么我们今天拥有的 90% 的 Windows 病毒(和间谍软件)将被消除。

仅这一决定就催生了防病毒行业的诞生。

于 2008-12-19T03:09:00.880 回答
6

HTML 作为浏览器显示语言。

HTML 最初被设计为一种内容标记语言,其目标是描述文档的内容,而不会对文档应该如何显示做出过多判断。除了外观对于大多数网页非常重要,对于 Web 应用程序尤其重要之外,这很棒。

因此,我们一直在用 CSS、XHTML、Javascript、Flash、Silverlight 和 Ajax 修补 HTML,以便提供一致的跨浏览器显示渲染、动态内容和 Web 应用程序所需的客户端智能。

您有多少次希望浏览器控制语言一开始就正确完成?

于 2008-12-18T22:26:35.507 回答
6

苹果将​​史蒂夫·乔布斯(第一次)赶下台,由一连串的糖水推销员和毫无灵感的豆类柜台领导。

于 2008-12-18T18:32:34.527 回答
6

Gary Kildall 没有与 IBM 达成协议,将 CP/M 86 授权给他们,因此他们不会使用 MS-DOS。

于 2008-12-18T19:40:57.807 回答
5

银行等重要网站仍然使用“安全问题”作为忘记密码的人的二级安全措施。问问莎拉佩林,当每个人都可以在维基百科上查找你母亲的娘家姓时,它的效果如何。或者更好的是,找到 Bruce Schneier 写的关于它的博客文章。

于 2008-12-18T21:24:14.213 回答
5

EBCDIC,IBM 大型机的“标准”字符集。整理顺序是“疯狂的”(字母表中的字母不连续)。

于 2009-02-13T10:23:07.240 回答
5

对 time_t 和 Internet 协议的时间戳使用 4 个字节。

这还没有咬到我们——再给它一点时间。

于 2008-12-18T18:36:22.553 回答
4

Netscape's decision to rewrite their browser from scratch. This is arguably one of the factors that contributed to Internet Explorer running away with browser market share between Netscape 4.0 and Netscape 6.0.

于 2009-02-26T00:29:11.280 回答
4

Lisp 使用名称“CAR”和“CDR”而不是对这些基本功能合理的名称。

于 2008-12-18T21:10:47.080 回答
4

DOS 的 8Dot3 文件名,以及 Windows 采用文件扩展名来确定要启动的应用程序。

于 2009-02-26T01:10:03.037 回答
4

空引用 -十亿美元的错误

于 2009-01-23T19:29:07.400 回答
3

在计算机上使用 qwerty 键盘而不是 dvorak。

于 2008-12-18T18:40:28.660 回答
3

认为密码将是控制访问的一种巧妙方法。

于 2008-12-18T19:16:13.783 回答
2

微软从原始 Mac 复制了快捷键,但使用 Ctrl 而不是 Command 键来执行 Undo、Cut、Copy、Paste 等(Z、X、C、V 等),并在与小指的众多 Ctrl 键职责相比,拇指位置几乎没有任何作用。(现代 Mac 有一个有用的 Ctrl 键(用于终端命令)、一个位于拇指位置的 Command 键(用于程序或系统快捷方式)和一个用于输入奇怪字符的 Alt(选项)键。)(请参阅这篇文章。)

于 2009-01-08T00:48:30.247 回答
2

以空字符结尾的字符串

于 2009-01-14T00:52:36.813 回答
2

7 位文本。然后用代码页“修复”这个问题。编码问题总有一天会杀了我。

于 2009-02-22T11:12:34.587 回答
2

当唯一的原因是“只是为了与众不同”时,每个使语法不同的语言设计师。我在想 S 和 R,其中注释以 # 开头,_ 是赋值运算符。

于 2008-12-18T19:41:21.813 回答
1

决定 Internet 协议中多字节数字的“网络顺序”将是高位字节。

(当时网络的异构性意味着这是一个掷硬币的决定。三十年后,英特尔派生的处理器完全主导了市场,似乎低字节优先是一个更好的选择)。

于 2008-12-18T20:17:56.373 回答
1

Netscape 决定在其浏览器中支持 Java。

于 2008-12-18T21:11:50.603 回答
1

Microsoft 决定将 Window NT 建立在 DEC VMS 而不是 Unix 上。

于 2009-02-13T09:20:53.070 回答
0

不对现代语言强制执行类似 Smalltalk 的一元、二元和关键字方法。它可能是自该功能发明以来发明的最好的自我记录功能。

于 2011-01-21T14:20:29.497 回答
0

术语翻译后备缓冲区(应该按照页面缓存或地址缓存的方式称为某些东西)。

于 2008-12-19T03:55:00.833 回答
0

当 Atari 在 1982 年创建并发布电子游戏 ET the Extra-Terrestrial 时,最终只是用游戏填埋了垃圾填埋场......

替代文字
(来源:wikimedia.org

于 2009-01-08T01:04:34.723 回答
0

拥有一个用于Caps Lock而不是 Shift Lock 的键,实际上它是一个 Caps Reverse 键,但使用Shift Lock它可以是可控的。

于 2009-01-08T09:59:11.773 回答
-1

这些天我们已经被有用的图书馆所覆盖,但是 Netscape 的那个认为 cookie 到期日期应该是人类可读的白痴应该采取措施,永远不要亲自见到我。

于 2009-02-22T11:15:20.027 回答
-3

重新排列键盘上的字母以降低打字效率,回到最初的机械打字机时代,并将其转移到数字计算机上。

Qwerty的历史

于 2008-12-19T02:59:48.747 回答