The perfect number of resources

posted: February 11, 2024

tl;dr: Zero, one, and infinity are the only perfect numbers for resources...

In the early days of the computer mouse, in the 1980s, computer experts and novices passionately debated how many buttons a mouse should have. Steve Jobs famously insisted upon one button for the Apple Macintosh computer, which limited what the user could easily do with the mouse and necessitated some other hand and finger movements to perform various operations. This is how we ended up with a single click to select an object and a double click to open or act upon it. When Bill Gates and Microsoft more-or-less copied the Macintosh user interface by creating the Windows operating system, they decided upon a two-button mouse, which led to the creation of the phrases “right-click” and “left-click”. At the same time that this battle was being fought, I was using a high-end Computer-Aided Design (CAD) system on the job that had a three button mouse. I felt like a true professional.

This is but one example of a question which arises often in the realm of computer software and hardware, as well as overall product design: how many of a given resource should a system have? What is the ideal number of mouse buttons, USB ports, disk drives, operating system threads, files, etc.? Product design teams and developers spend countless hours debating these questions.

Fortunately, when the computer mouse button debate arose, I already had the answer in hand, thanks to something I learned in a Cornell Computer Science (CS) class (I think it was CS Chair David Greis who taught this, but I’m not sure): the only “perfect” numbers of a given resource are zero, one, and infinity. Everything else is a compromise.

Two beige, angular, block-shaped computer mice, each with a single light brown button and a cord, pictured while resting on a wooden surface

Two examples of the original Apple Macintosh one-button mouse

Zero is a perfect number because if you have zero of a given resource, you learn how to do without it. While this sounds harsh, it can sometimes be the right product design decision. Maybe you are trying to discontinue use of an older technology in order to force users to adopt a newer, better solution. Maybe you don’t believe a new, fledgling technology will become popular and succeed. Maybe you’ve already provided a resource that can satisfy the basic need, and don’t desire to offer an alternative. Resources cost time and money, and introduce complexity, so zero can sometimes be the right choice.

One, the number of mouse buttons that Steve Jobs chose to use on the Macintosh, is also a perfect number because it gives the user one resource that can be both used for a certain operation and shared to perform other operations. It is very common for some users to demand more than one of a given resource. Some users may want two, or three, or five, or ten. When you can only provide a small, finite number of a given resource, it is impossible to satisfy all use cases and all users. If you provide three of something, along will come a user who needs four, and that user will have to figure out how to share one of the three provided resources. Except as described below, there’s no way to fully eliminate the need to share resources. So why not just provide one, unless there is a very common use case that demands another number?

Infinity, or a number so large that the user will never encounter the limit, is the final perfect number of resources. If you have an infinite number of a given resource, you never have to figure out how to share one, as there is always another one available. While it is impossible to truly provide an infinite quantity of a given resource, it is quite common to provide a huge number that will hopefully never be fully utilized in practice.

I’m not saying that zero, one, or infinity are the only acceptable answers to the question of how many of a given resource to supply. I am saying that they have unique qualities that should be considered when making a design choice.