140 votes

What was the point of separating stdout and stderr?

Because you might not want error messages in your output. According to computer scientist Stephen C. Johnson: One of the most amusing and unexpected consequences of phototypesetting was the Unix ...
snips-n-snails's user avatar
125 votes
Accepted

Why wasn't ASCII designed with a contiguous alphanumeric character order?

Why is ASCII this way? First of all, there is no one best sorting order for everything. For example, should UPPER or lower case be first? Should numbers be before or after letters? Too many choices, ...
manassehkatz-Moving 2 Codidact's user avatar
116 votes
Accepted

Why is Windows using CR+LF and Unix just LF when Unix is the older system?

This is covered largely in the history section of Wikipedia’s entry on newlines. Basically there are two primary lineages of operating systems leading to modern-day desktop usage: Windows on the one ...
Stephen Kitt's user avatar
113 votes
Accepted

What was the point of separating stdout and stderr?

You are thinking that all output is for human reading. For instance, take the Unix cpio command. It writes the archive to stdout, which is always redirected to a device or file. It writes the ...
mannaggia's user avatar
  • 3,264
109 votes

Why was `!` chosen for negation?

Since the few document trails on this topic quickly run cold, I contacted Ken Thompson. He confirmed that if there was anything he would have been influenced by at the time, it would have been BCPL ...
Kaz's user avatar
  • 1,660
100 votes
Accepted

Why didn't the 8086 use linear addressing?

For once, I do have a direct source for a "Why didn't they ...?" question. Eric Isaacson, back in the late '80s and '90s, wrote a commercial assembler for the 8086, called A86. (His ...
Davislor's user avatar
  • 8,549
85 votes
Accepted

Why did the NES not allow rotated sprites?

For each sprite displayed on a scanline, the hardware fetches two bytes from memory, and then clocks the pixels out one by one. The sprite is eight pixels wide, and each pixel is two bits, which is ...
Omar and Lorraine's user avatar
70 votes

Why did old IBM-PC-compatible computers only have 16 colors available?

The original IBM Color Graphics Adapter (CGA) for the first IBM PC introduced the "80x25 at 16 colors" text display mode for use with output to color monitors like the IBM 5153 (as opposed ...
ssokolow's user avatar
  • 6,351
62 votes

Why wasn't ASCII designed with a contiguous alphanumeric character order?

According to ASA X3.4-1963 Appendix A, one of the design considerations was: (7) Ease in the identification of classes of characters Furthermore: A4.4 The character set was structured to enable ...
Greg Hewgill's user avatar
  • 6,849
57 votes

Why was `!` chosen for negation?

The ! was around as part of the B programming language, according to the "User's Reference For B" (K Thompson, Jan 1972). Somewhere between BCPL and B, the decision was made to use !. In the ...
Clinton Pierce's user avatar
52 votes

Could we have avoided the whole UTF-16 fiasco?

The designers of Unicode did consider whether 16 bits would be sufficient, and decided that they would be, based on their assumptions: Unicode gives higher priority to ensuring utility for the ...
Stephen Kitt's user avatar
52 votes
Accepted

How was the clock frequency of the PS/2 keyboard protocol chosen?

Why is the clock frequency of the PS/2 keyboard protocol so high? I wouldn't call it high. It's quite in line with similar keyboard speeds - like Amiga operating a 17 kHz. At 11 bits per scancode, ...
Raffzahn's user avatar
  • 213k
52 votes
Accepted

Why were single quotes ('…') chosen for characters, and double quotes ("…") for strings?

For type system reasons, and for compatibility with B. B is a programming language that served as the immediate ancestor of C. The salient thing about B is that it had no type system: all values in B ...
user3840170's user avatar
  • 21.6k
51 votes
Accepted

Did they forget to add the physical layout to the USB keyboard standard?

They didn’t forget to add such a function, they chose not to add one. The HID Usage Tables explain this as follows (section 10, page 88): Note: A general note on Usages and languages: Due to the ...
Stephen Kitt's user avatar
49 votes

Why didn't Microsoft use a well-known encryption algorithm like RSA for telephone activation?

My question is why didn't Microsoft simply use RSA or another proven algorithm? Because they thought it was important to minimize the signature. That is, in the use case: For those who don't know I ...
poncho's user avatar
  • 591
48 votes

Why are the Nintendo 64 memory cards' batteries *soldered* on?

It's cheaper and possibly more reliable than providing a connector. These are disposable consumer products designed to be sold at the lowest price and highest margin. Your question assumes devices ...
knol's user avatar
  • 11.8k
40 votes
Accepted

Why did post-8008 CPUs not keep the on-chip stack idea?

In short, to better support interrupts, because interrupts were arguably broken (or at least very limited in usability) on the 8008. The direct answer to the question of why you'd move the stack off-...
cjs's user avatar
  • 24.6k
40 votes
Accepted

Why did mainframes have big conspicuous power-off buttons?

Yes, huge safety concerns as I remember engineers sitting inside the cabinets of large mainframes while it was running, fully powered, large currents in each cabinet powering fans. Cooling water being ...
Brian Tompsett - 汤莱恩's user avatar
39 votes

Why do variable names in BASIC need type suffixes?

TL;DR: Most straight answer: Because it's BASIC A trailing '$'-sign is the syntax BASIC defined when adding strings. Also, the suffix is not only a type marker, but part of the name. In BASIC A and A$ ...
Raffzahn's user avatar
  • 213k
39 votes

Why couldn't early C compilers handle variable declarations between statements?

Some early compilers, such as the ones described in the 1974 C reference manual, required that all automatic object declarations within a function precede the first executable code therein. Imposing ...
supercat's user avatar
  • 34.7k
38 votes
Accepted

Why did some CPUs use two Read/Write lines, and others just one?

What reasons would CPU designers have for choosing these different approaches? It depends on what the designers intended to mark a valid bus cycle, which is the 'leading' signal for decoding. In a ...
Raffzahn's user avatar
  • 213k
38 votes

Why did the original design of COM on Windows rely on the Registry?

At that time, developers at Microsoft were still dreaming the dream of version independent management of libraries, so newer, more powerful libraries could replace older, less powerful or buggy ...
Raffzahn's user avatar
  • 213k
38 votes

Was leaving all xxxxxx11 opcodes unused on the 6502 a deliberate design choice?

The instruction decode is quite simple on the 6502. If we call the bits in the opcode byte aaabbbcc, then one of the first things that happens is that cc, the two bits you're talking about, gets ...
Omar and Lorraine's user avatar
38 votes

Why did the stock Amigas not have a battery for keeping the time/date?

You specifically mention the Amiga 1200 in your question, but your statement about real-time clocks is not true for Amigas, in general. From 1987, the Amiga was offered in at least two versions aimed ...
Brian H's user avatar
  • 60.1k
37 votes

Twist in floppy disk cable - hack or intended design?

This was a good piece of production engineering. IBM expected to sell lots of twin-floppy PCs, even after the launch of the XT (personal experience in a UK reseller in late 1984). To assemble a twin-...
grahamj42's user avatar
  • 1,162
35 votes
Accepted

Were the dungeons in Legend of Zelda designed to fit together?

As seen in that incorrect† image, the levels seem to merge well. This wasn't a case of "Let's take these shapes, and see if they... whoa! They fit together!" It was more like, "Here's ...
TOOGAM's user avatar
  • 581
35 votes

Why wasn't ASCII designed with a contiguous alphanumeric character order?

man 7 ascii of Linux Programmer's Manual says, Uppercase and lowercase characters differ by just one bit and the ASCII character 2 differs from the double quote by just one bit, too. That made it ...
比尔盖子's user avatar
  • 3,084
35 votes
Accepted

What aspect of portable floating point did Java back down on?

The range of intermediate results. The Java Language Specification, 2nd Ed. relaxed the evaluation rules for floating-point expressions by introducing the notion of an ‘FP-strict’ expression, defined ...
user3840170's user avatar
  • 21.6k
34 votes
Accepted

Why are the magnetic floppy disk drives (FDD) heads not frictionless?

TL;DR: "Frictionless" Floppies are called Hard Disks (*1), consisting of a hard media platter and a head in distance of the media (flying or otherwise) Floppies are 2D tapes. While slower ...
Raffzahn's user avatar
  • 213k

Only top scored, non community-wiki answers of a minimum length are eligible