Hacker News new | ask | show | jobs
by alpaca128 1407 days ago
Reminds me of how after learning how CPUs, memory, operating systems etc work I thought "wow, it really is all ones and zeroes". A simple phrase but it became more meaningful with deeper understanding.
1 comments

Sorry, but ”computers work by ones and zeroes” is one of my pet peeves.

It is true in the sense that 1 and 0 are common representations for true and false in computer science, but really, it is false and almost certainly establishes magical thinking in the layperson.

Modern computers run on electricity, and in electrical circuits such as computers, true/false is represented as a transistor semiconductor being in a conducting or non-conducting state. Current can either flow, or it can’t.

In fact, one could build a computer out almost anything that lends itself to both being on and off, and to being controlled by its on/off state (or that of another equivalent assembly).

You contradict yourself here.

> (A) Modern computers run on electricity [not ones and zeroes]

> (B) one could build a computer out almost anything that lends itself to both being on and off

You got it right in B, which is exactly the point when people say computers are just 1s and 0s. Computers are a mathematical concept, not just some electrical device, as you seem to claim in A. The fact that you can build a computer out of water or air pressure or Minecraft Redstone is exactly the point people are making when they say they're built up from 1s and 0s (not electricity, not silicon and copper, not Redstone).

Cut me some slack, I was referring to our beloved contemporary devices when I was saying modern computers in A, so the comparison is a bit apples and oranges.
I'm not trying to nitpick you here; I'm genuinely confused why "Computers are all 1s and 0s under the covers" is a pet peeve of yours! It sounds like you mostly agree with the statement, so I'm just not sure why it would bother you.
Because I have seen so many laypeople operate off the misconstrued idea that computers literally work like that!

Granted, many of these people have been around since before typewriters and phones were a common thing, but the ”1s and 0s” explanation does not offer anything tangible for people who cannot see the trees from the forest (sic), and thus it only widens the ”digital divide”.

From what I've seen the problem is more being that people just take that as the whole truth without considering more interesting ideas that are based on it and make it actually work. But I don't think this contributes to a "digital divide", people who aren't particularly interested in computers wouldn't be more excited with different wording.

In my experience the best thing to get people interested in computers is to show them more than MS Word in school. Fortunately a substitute teacher was more competent than that and absolutely blew my mind with a for loop.

Is 1 indicative of current flowing? Or not flowing? Is that consistent with a given chip, let alone an entire system? Is it always DC current, or can it be AC? In fact, is the 1 represented by current, voltage, and/or frequency?

There's lots of different answers here in different contexts. The reason 1s and 0s are good is because they represent the information in the digital domain, not the implementation in the analogue.

Indeed. Those are implementation details and arbitrary conventions. :)
I recall trying to explain how hard drives worked to a guy who didn’t believe me, it was weird because he had aspirations of being a hacker some day. He got really mad “math is math” style when we explained they are analog rounded to binary and that’s why disk erasers exist and take so long (and this was before they got really paranoid).

Then people kept wandering up and agreeing with me and by the end it was practically an intervention.

> 1 and 0 are common representations for true and false in computer science

Long before standing for true or false, 1 and 0 have stood for the presence or absence of something arbitrary, so I don't see any issue here.

Just 1s and 0s don’t really do anything useful before we agree on some conventions, such as

- byte and word size,

- endianness,

- semantics of what means what in a string of bits (think Two’s Complement, IEEE 754, ASCII, ISO-8859-1, Shift-JIS, Unicode),

- what it means to do certain operations on bits (Boolean algebra),

- how different binary operations can be constructed from transistors / logic gates (ALU design),

- how information can be retained in and recalled from memory (basically just flip-flops),

- how said memory is laid out with respect to internal/external devices and program regions (conventions!)

- how said memory can be addressed, and how information can be transferred between CPU and memory (bus architectures),

- how the computer architecture can be programmed to do things (processor instruction sets),

- and whatever I forgot just now…

And then some people design and build trinary computers, imagine that.

In fact, if we consider the presence or absence of truth in a statement...

(There is no completion. The trailing off is intended.)

Turing, u here?
It still functions like an abacus.