I imagine a parallel world where people instantly went crazy and kill themselves whenever they try to conceptualize nothingness which we now known as the number zero, so no one I mean absolutely nobody will bring up the number zero be it a symbol or anything that could potentially represent nothingness unless they have a death wish. So I wonder how would such computer be like? Would it be able to be reprogrammed for a variety of tasks on par with computer we loved and liked today?
-
22$\begingroup$ What is the difference between nobody and zero people? And the real question is how would they be able to progress to the level of building computers if they fail at basic arithmetic... $\endgroup$– AlexPCommented Jan 22, 2022 at 3:47
-
7$\begingroup$ This is an interesting line of enquiry. Unfortunately, the question, as it's asked, can't really be answered without telling us more about the people. There is obviously a very strong tabu culture surrounding the whole concept of nothing. One can only imagine that people must never run low on mixed nuts at a party, lest the bowl become --- empty! The last cooky is always left on the plate since no one wants to be the person who causes the existential crisis that nothingness brings with it. Explain to us how they actually deal with the tabu so they can, er, talk about nothing in particular. $\endgroup$– elemtilasCommented Jan 22, 2022 at 3:53
-
4$\begingroup$ Merchant: “I have sold all my apples! I am rich” customer: “Do you have enough apples for me to buy two?” Merchant: “huh, let me check how many apples I have.” - Merchant’s suicide note. $\endgroup$– user64888Commented Jan 22, 2022 at 4:12
-
3$\begingroup$ @CharlieHershberger or alternatively, they shout "Augh! I have NO APPLES LEFT" and every person in the market kills themselves. $\endgroup$– Starfish PrimeCommented Jan 22, 2022 at 10:49
-
6$\begingroup$ @TheSquare-CubeLaw: I don't know where this myth comes from. Yes, the ancient Greeks did not normally use a positional system for number representation, but that's only because they normally did not compute in writing. When they needed to, for example in trigonometric tables and such, they did use a positional number representation (in base 60, hah!) and that of course implies a symbol for zero, or, actually, an empty rank. It was a small raised circle, which even looked a bit like our zero, or like our degree sign. $\endgroup$– AlexPCommented Jan 22, 2022 at 13:29
9 Answers
Computers don’t actually have 1s and 0s
Technically, computers use high/low electrical charge to transmit and store their information. We use one and zero since that can easily conceptualize and represent truth values, numbers, and ascii values. Instead of values going from 0 to 15, 4 bits would go from 1 to 16. Because of this all computer systems will be one indexed, instead of zero indexed. Computers would be able to do everything they can currently. But instructions might be tuned so that all bits are at least one high or low in a string, so there is no zero interpretation of a string.
One thing that computers won’t be able to do is anything you can’t do in this universe. A few examples:
A computer counts inventory of a store, the store then runs out of stock of one item. The computer then has to display, “Null” which means no data is available. If even guessing this means that there is nothing is a problem, then the system also needs to randomly display “Null”.
A computer programs a brake to multiply the resistance it applies by distance to an object. A function returns the distance between two objects. The function must again return “Null” which means all functions that interact with it must accept “Null”.
Any math function that uses zero will not work, instead you will need to use a function that determines if a zero occurred and branch to do the math properly.
-
1$\begingroup$ One could argue that null as a concept evolves from zero so maybe computers wouldn't display null. I don't know what computers would do instead though, maybe an empty string but that also feels like a related concept. $\endgroup$– Lupus590Commented Jan 22, 2022 at 4:21
-
4$\begingroup$ Rather than "NULL" which is synonymous to "zero" or "nothing" it would return "NaN" meaning not a number or "undefined". This is what computers typically return when you divide by zero. $\endgroup$ Commented Jan 22, 2022 at 6:14
-
2$\begingroup$ You can also think of it as "true" and "false". $\endgroup$ Commented Jan 22, 2022 at 7:31
-
1$\begingroup$ Good answer pointing out that 1 and 0 is high and low voltage. However, a little UX can solve the display problems. For no items, the computer can display a blank or
none
; having none of a thing would be familiar. For the distance, it could saytouching
. And since their math has no concept of zero, they would simply get an error;1/0
gets an error in most calculators because our math doesn't account for discontinuities. $\endgroup$– SchwernCommented Jan 22, 2022 at 16:59 -
2$\begingroup$ Seems like in order to "use a function that determines if a zero occurred" the programmer has to acknowledge that it exists. Even if the code doesn't contain zero (e.g. replacing "if A-B==0" with "if A==B") it seems like explicitly handling that case requires the programmer to consider zero. I dunno - maybe in OP's world, math has evolved such that everyone is taught that you simply can't subtract a quantity from itself; it's an illegal operation you're checking for, not zero. Or maybe all software depends on lower-level libraries that were written by programmers who went mad in the process. $\endgroup$– A CCommented Jan 23, 2022 at 4:27
Before the invention of algebra, advanced math was done by moving tokens and geometric shapes around: not by equations. Geometric math is fundamentally different than algebra in a lot of ways. For starters, there was no such thing as "negative" or "zero" since all math was based off of physical things. Instead, all math was seen as more like vectors. You move a value one way or another, and you end up with a value based on how these manipulations compound based on directionality. So, if you you needed to solve something like Profit - Lose = Net, you would do this by placing down a token and moving it left or right to represent the opposing values. So, you would move your token right a positive number of Profit spaces, and then left a positive number of of Lose spaces. If you equation would be 300-500 = -200 in algebra, in Geometric math, you avoid the concept of negative by saying something more like 300 profit + 500 loss = 200 loss.
However, in Geometric math, you also can not have a zero, because is not a tangible thing you can represent with tokens or shapes. But you can have procedures that equal zero like 1 left + 1 right. So, zero existed only as a complex number, but not as a simple number. This should not be all that unfamiliar of a concept though since we still have all sorts of numbers that can only be expressed by a complex number like 1/3. And where Zero itself is concerned we have still yet to figure out how to represent it in algebra in every situation. "what is 3/0?" It is not Zero or infinity or any other thing we recognize as a number. If you divide by zero, it returns "Not a Number" or "undefined" in most systems.
So can you make a modern computer work this way? Technically, yes. Computers at the most basic level are based on the Turing machine which work by tracing through possible values left and right. Binary shown as 1s and 0s is just one concept that can represent that. But you could just as easily name binary values as up and down or left and right, and it would all still work exactly the same. That said, geometric math can't solve all the same problems algebra can solve; so, even if the computers themselves are Turing Complete, the people programming them will not be able to solve all the problems with them we can. This would limit their software quite a bit. But they could certainly still do some interesting things when you consider that thing like the Antikythera mechanism was built by a civilization still using geometric math.
tl;dr: Nothing would change.
Misconceptions
There are several misconceptions in your question:
- The mathematical concept of an operation on a set having an identity element has nothing to do with the philosophical concept of Nothingness, so the taboo does not prevent us from inventing this concept.
- Computers don't use Zeroes. They use two symbols whose names are utterly irrelevant.
- Actually, they don't necessarily use two symbols. Binary computers use two symbols. Ternary computers use three, decimal computers use ten.
- Actually, that's only digital computers. Analog computers operate on continuous domains, so they don't even have a finite set of symbols at all.
Equating 0
to "nothingness" is purely a human interpretation of the symbol 0
. There is nothing inherent in either the symbol 0
or the mathematical concept of Zero that equates it with nothingness.
Zero in algebra
E.g. in Algebra, Zero is simply a name we attach to an object that obeys certain laws.
For example, a monoid is defined as an ordered pair (S, ω) of a set S and an operation ω, which satisfies the following laws (assume a, b, and c are elements of S):
- Associativity: (a ω b) ω c = a ω (b ω c)
- Identity Element: There exists a unique element e for which the following holds for all a: a ω e = e ω a = a
If these two laws hold, then we call (S, ω) a monoid and call e the identity element of (S, ω).
And that's it. Everything else we put on top of that is just an interpretation. For example, in the group (ℝ, +), we call the operation + "addition" and the identity element "zero", but those are just labels we attach to those mathematical concepts.
If we had a taboo on "nothingness", we would still eventually invent this concept … we just wouldn't think of it as "nothingness". It would probably take as a while longer to invent it, and it might take a convoluted meandering path to get there, but in the end, we would find it.
This actually happened!
But the most damning evidence that this would not be a problem is that this is actually what happened. The foundations of Computer Science laid down by people like Alan Turing, Alonzo Church, Haskell Curry, Kurt Gödel, Gottlieb Frege, and others, only talked about operations on natural numbers, which do not include 0
.
In other words, computers were invented without using the number 0
.
… multiple times!
Obviously, those logicians knew about Zero, they just didn't use it for building the foundations of Computer Science. But, there is an example of a computer built by people who didn't even know about Zero:
The Ancient Greeks had no Zero, yet they built the Antikythera mechanism, one of the oldest known computers. (In this case, a mechanical analog computer.)
-
8$\begingroup$ Whether the set of natural numbers includes zero or not is a matter of convention. For example, when I was at university, we used $\mathbb N$ for set with zero and $\mathbb N^*$ for the set without zero. And the ancient Greek did use a positional number representation system when they absolutely had to, complete with a symbol for an empty rank. (And for them even one was not really a number!) $\endgroup$– AlexPCommented Jan 22, 2022 at 13:34
-
$\begingroup$ @AlexP In fairness, while I don't agree with OP, I think there is a plausible steelman in that the lambda calculus doesn't really have a zero as such. Or rather, the Church numeral that represents $0$ is a function which really has genuine meaning, and has no connotations of "emptiness" unless you choose to view it that way. In the lambda calculus, everything has substance, since everything is viewed as an operation rather than a thing. $\endgroup$ Commented Jan 22, 2022 at 14:23
-
$\begingroup$ (I bumped that up to an answer: worldbuilding.stackexchange.com/a/222906/13796) $\endgroup$ Commented Jan 22, 2022 at 14:34
-
1$\begingroup$ A bit of a nitpick-- $(\mathbf{R},\times)$ isn't technically even a group-- 0 has no inverse for multiplication (defined the usual way, at least). $(\mathbf{R}-\{0\},\times)$ is, but the identity element is 1, not 0 (and 0 explicitly is not even a member of the group). I think you probably meant to say $(\mathbf{R},+)$, which does have 0 as the identity element. $\endgroup$ Commented Jan 22, 2022 at 15:26
-
1$\begingroup$ I can't agree that equating zero with nothingness is just interpretation. There's certainly a parallel to an addition identity and doing nothing. Even more so because it is the other way around: mathematicians came up with the intended interpretation before formalizing math. $\endgroup$ Commented Jan 23, 2022 at 13:17
Others have gone into how the computer guts would be designed, but what about the interface? Surely you need to display a zero!
zero doesn't have to be nothing
Charlie Hershberger brought up some interesting user interface examples which made me realize the ethnocentric premise in the question; that zero is nothing. A terrifying void.
Does it have to be? Can we map what we use zero for onto comfortable tangible concepts?
$\emptyset$ : zero is an empty bag
What if your inventory system has no stock of an item? Surely they can count and understand the idea of having none of a thing or they wouldn't live very long.
If I have a shelf with 2 apples and take 2 apples off the shelf, I have an empty shelf of apples. This is the empty set: $\emptyset$. It isn't nothing, it is an empty shelf. An empty shelf is a comfortable concept.
But what does it mean for there to be none of nothing? Or none of everything? For that matter, what does "5" mean? How do you have 5 of nothing? You have to have 5 of something! Even if that is just "5 things". "5 things take away 5 things" is "no things": $\emptyset$.
Watch Numberphile's What is a Number? for a bit more on numbers and set theory.
$x = y$ : zero is balance
What if they're using a calculator and subtract 6 from 6?
$6 - 6 = 0$. We can rewrite that as more generally as $x - y = 0$. Nothingness. They cancel each other out.
We can also write it as $x = y$. Balance and equality.
If we're weighing two items we could say "the difference between their weights is 0" or we could say "their weights are equal". They are in balance.
zero is the center
Look at a number line.
Where is 0? It is at the center. Endless possibility stretches off in either direction.
If we expand into two and three dimensions we add more zeros: $0,0,0$ is the center of all space (we're talking psychological philosophy here, astrophysicists sit down).
zero is togetherness
What if we measure the distance between two objects and find it to be zero? Is the distance nothing?
Or are they touching? A perfectly comfortable physical concept.
zero is the beginning and the end
If your distance traveled is zero, you are at the beginning.
If the distance remaining to be traveled is zero, you have arrived.
infinity is our zero
Our own computers have trouble with infinities. Yes, infinities, plural.
Mathematical systems are a set of internally consistent rules which we decide on. Sometimes to make them internally consistent we need to define certain expressions as undefined.
Our everyday math declares that $\frac{x}{0}$ is not a number and a lot of other things having to do with zero. Zero solves some problems, but it introduces more.
Zero is a perfectly good number and you ignore it at your peril. The problem is, it's a dangerous number and a lot of things can go horribly wrong with zero. And because it is a slightly more nuanced number you have to be more careful with how you handle it. -- Matt Parker
If you put $\frac{1}{0}$ into most calculators you will get an error. Or maybe infinity
, which is even less correct than getting an error. $\frac{1}{0}$ represents a discontinuity in the number line.
If you try to solve for it from the right, you get positive infinity. If you try to solve it from the left, make x a really big negative number and you get negative infinity. The answer diverges, it is both positive and negative infinity. See Problems With Zero for why
Our common everyday math does not have a concept for this. Our brains struggle with infinity, let alone something as simple as $\frac{1}{0}$ having multiple infinities at once. We don't like the idea of a question not having one answer, and we struggle with the idea of counting and never stopping. You probably won't kill yourself over it, but most people would struggle to even know how to write the answer down.
$$\lim \limits_{x \to 0^-} \frac{1}{x} = \infty^-$$ $$\lim \limits_{x \to 0^+} \frac{1}{x} = \infty^+$$
So we just say error
or not a number
or undefined
. When we write computer programs we make sure to check for divide by zero errors. You can't divide by zero because we said so; it's just too hard.
Their computers would be no different. Their math and vocabulary and analogies would be built around the idea of avoiding nothing, like we avoid infinities, and this would seem perfectly natural to them.
Zero is a problem. We choose to stare into the void and sweep it under the rug.
Computers based on the lambda calculus.
The history of general-purpose computing machines in our world, by what amounts to historical accident, specialised primarily in the direction of Turing machines; these are inherently discrete and skirt a fine line next to forcing you to confront what it means for something to be empty. But there's a hypothetical timeline where Church won, and the lambda calculus was the primitive. In such a world, programs aren't defined by state machines, but instead are defined by composition of terms. No lambda-term is "empty": emptiness isn't even part of the model of what it means to be a lambda-term. The number $0$ is conventionally expressed in the lambda calculus as the corresponding Church numeral which is essentially the concept "apply your first argument $0$ times to your second argument"; i.e. it is the function $(f,x) \mapsto x$. There's no reason anyone needs to contemplate nothingness here: this is a genuine function which really does do something "positive" and useful! (For completeness, the number $2$ is represented as the concept "apply your first argument $2$ times to your second argument", i.e. the function $(f, x) \mapsto f(f(x))$.)
Functional programming languages are often inspired, directly or indirectly, by the lambda calculus. For example, LISP is quite a lot like the lambda calculus in spirit. At one point, we even had computers for which LISP was the primary abstraction. I don't know quite how their hardware was implemented, but I wouldn't be at all surprised to find it was possible to represent a LISP machine entirely in hardware without needing to consider what "emptiness" was.
Modern computers do not naturally handle numbers as decimal digits, they use a binary encoding more naturally suited for handling with the electronic logic they are built on, based on a fixed length sequence of bits. For programmers working close to the hardware, even this is often too awkward to work with, and it is converted to/from octal or hexadecimal instead.
Why these and not decimal? Because the digits match up in these representations, but not with decimal. Each hexadecimal digit corresponds directly to 4 bits, an 8-bit or 16-bit unsigned integer has a maximum value of exactly 0xFF or 0xFFFF, etc. In decimal, those are 255 and 65535...not quite so obvious. Floating point numbers are even further removed from decimal, and can't even exactly represent quantities as simple as "0.1".
All this typically has to be hidden from normal users by the programmers, converting to and from decimal, applying artificial limits, carefully rounding results, etc. The presentation form doesn't need to be a zero-based decimal positional representation, it could be something like Roman numerals, or a bijective numeration (a positional system that starts numbering with 1, with no zero digit and the quantity zero being represented as an empty string). Only the programmers need be aware that the machine has a bit pattern for "nothing" that it considers as valid as all the other bit patterns. They may consider it just a quirk of the encoding or a convenient special value. If they lack the mental flexibility to do even that, I doubt you have to worry about them building computers.
The idea of the paradigm is to use some usually-continuous aspect of physics to do computation for you; I guess one of the simplest examples could be a sand timer or water clock, but the slide rule is probably the analog computing device we're most familiar with today.
Analog computers can work without anyone needing to think of zero - in fact, since continuous quantities never really tend to hit zero in real life, analog computing is probably the paradigm that was born to serve these people.
You can use bespoke analog computers to solve a large number of specific problems (e.g. solving various kinds of differential equations for innumerable practical purposes). You can make a "programmable" analog computer by essentially having a mechanism that switches between a number of analog computers (or chains together a number of components of an analog computer).
I'm afraid this is not at all my area of expertise, but the Wikipedia article contains a great many examples that may give you inspiration. For a detailed introduction, the Omega Tau podcast did an episode a few years ago.
-
$\begingroup$ "Continuous quantities never really tend to hit zero in real life": The voltage supplied by the outlets in my house passes through zero one hundred times per second. $\endgroup$– AlexPCommented Jan 23, 2022 at 0:07
-
$\begingroup$ Through zero, sure, but can you tell me when it happened? The strong version of the intermediate value theorem doesn't hold in all constructive formulations of analysis, remember! $\endgroup$ Commented Jan 23, 2022 at 7:36
Inventing a zero certainly was a big progress for mathematics in our world, but it's not strictly necessary to have working arithmetic. $\def\X{\mathrm X}$
While we are usually using digits $0$ to $n-1$ in our base-$n$ systems (like base-10 or base-2), one can build a positional notation (aka "base-$n$-system") using digits $1$ to $n$.
Just as an example, with base $10$ (written $\X$ here), the first natural numbers might be written like this: $$1, 2, ..., 9, \X (=10), 11, 12, ..., 1\X (=20), 21, ..., \\ 99, 9\X (= 100), \X1 (=101), ..., \X9 (=109), \X\X (=110), 111, ...$$
I've first read about this in the article Sennula nombrosistemo by Bertilo Wennergren (in Esperanto). I guess it's also called bijective numeration, but I didn't know this term until now.
With a base-$2$ system (which we'd use in computers) you could have digits $1$ and $2$, and you'd count like this: $$1, 2, 11, 12, 21, 22, 111, 112, 121, 122, 211, ...$$
This works when you can have a variable number of digits, but for efficiency you'd also want to have a fixed width representation (in our world, done by left-padding with 0). I don't know how that might work here – maybe we'd need a third digit just for the padding, or need to additionally keep track of the number of actual digits. Or we'd go for a higher-base directly.
Making a computer without zero is possible, after all universal Turing machine has no concept of numbers and can perform all possible calculations.
However, it will be impossible to build an actual machine while evading the concept of zero. Anyone who works on engineering will eventually reach a point where they will have to deal with 0. In fact, your society will not function far. How many steps are needed to access to your home can have an answer of 0, whether it is represented arithmetically or literally as no steps.