Bitwise is a podcast about the history of computer science, software development, and an examination of the implications of an increasingly digital world.

#001 | The Ancient Origins of Computation

#001 | The Ancient Origins of Computation

In the flagship episode of the Bitwise Podcast, we examine the ancient origins of computation in ancient Babylon, China, India, and Greece, and raise questions like “When and where in the history of civilization did computation arise?” and “What was the Antikythera mechanism?“ I also introduce myself and talk about the short and long-term goals of the podcast.

Episode Transcription

Hi, This is Wes Doyle, and I'd like to welcome you to the first episode of the Bitwise Podcast, where will explore the history of computer science, the craft of software development and the implications of an increasingly digital world. A quick bit about myself. I’m a mechanical engineer-turned-software developer and a student of engineering. I've spent the last year reading more about the history of computer science, and the more I've read, the more fascinating it gets. So, I thought I'd make a podcast as sort of an outlet for that story to be told. I think it's a captivating history and one that's perhaps not as well known as it deserves. My hope is that over time, this podcast might provide a resource not just for computer scientists and engineers but really for anyone interested in the story of human ingenuity and ambition, as well as what it means to live during a time when computation is ubiquitous, where algorithms and social networks play an ever increasing role in our lives, and the social, ethical and scientific implications of technological progress.

One of the things that I find so fascinating about the history of CS is that it's a story of ideas meeting application - where some of the most abstract thinking ideas about logic and epistemology is balanced by the concrete practice of engineering; the sweat and perseverance of craftsmanship and business. It's a story of philosophers and writers setting a vision for engineers and laborers and the scientists to bring into being.

Even if you've never written a line of code, I hope you find this story is explored in this podcast, fascinating, if only for the human element. So thanks for joining me, and I hope you enjoy the podcast.

In the first phase of this podcast, I'm going to do my best to deliver a concise history of computer science. We'll start with the ancient origins of computation, explore some of the mathematical foundations developed in Europe and the US throughout the eighteenth to early twentieth centuries, the emergence of computing hardware and software, cryptography, seminal languages and operating systems, the personal computer revolution, the Internet up to present day with an examination of topics including artificial intelligence and quantum computing.

Where the podcast will go from there. I'm not entirely sure, but I think it would be fun to do deep dives into specific subjects, especially with subject matter experts as well as perhaps post discussions about the implications of technological progress, especially as it relates to computer science. In this episode, we'll examine some of the earliest known examples of human calculation to get a sense of where all this may have started.

Think for just a minute about how often you engage in some activity that requires computation. Now think about the tools we use for those types of tasks. That is something that takes an input and, by some set of rules, produces some useful output, often with a way to storing retrieve information for some period of time. I think it's really pretty easy to take this for granted, but just consider how ubiquitous tools of computation are today. We’ve virtually offloaded all of these tasks to machines, whether it's to provide some mundane functionality, like an oven timer or a parking meter, or something more complex and specialized, like predicting the weather, controlling a geothermal power plant or searching and indexing millions of books.

We, as humans, have progressively discovered more and more elaborate ways to leverage tools to help us with the types of tasks that involve counting measurement calculation according to sets of rules and information, storage and retrieval.

If we back up a bit, we might contemplate how we got here, at least from a sort of functional perspective.

It's easy to imagine how the need for tools of calculation arose as human civilization expanded. If we think about the systems of accounting, for example, required for trade, transportation, property management, military, religious and political institutions, all of these systems surely emerge long before the advent of tools of computation did, unless these social systems provided a need to track larger and more complex entities and perform calculation. Certainly the earliest forms of using external symbols for counting included using our own anatomy like our hands, fingers, segments of our digits. But at a certain point, we certainly needed more reliable scaleable utilities for keeping track of numeric information. One of the earliest known tools used for accounting and memory aid is the tally stick. The simplest form of a tally stick consisted of a piece of wood or bone or some other hard material whereby notches were made in succession to represent a number of events or some other quantity that perhaps map to some concept in the real world. One of the earliest examples we have is the Ishango Bone, discovered in nineteen sixty in the Belgian Congo, currently the Democratic Republic of Congo, and it dates from the upper Paleolithic era or about forty thousand years ago. This Ishango Bone is actually the fibula - one of the lower leg bones - of an ancient baboon. Another example of such an artifact is the Lebombo bone, which is even a bit older, perhaps forty-three to forty-four thousand years. It was discovered in a cave in the Lebombo mountains in Swaziland. It also, interestingly enough, is constructed from a baboon fibula and has a serious of notches on it, which some researchers believe may correspond to a lunar calendar. While it is certainly impossible to know for sure how or why these prehistoric artifacts were used, we can see how creating a sort of pneumonic device on a simple piece of bone - just drawing some notches on it - might be a way that some of our ancient ancestors used a tool for keeping track of information.

If we look at another form of tally stick - the so called split tally - we find a much more recent tool that seems to have been widely used throughout medieval Europe to establish a receipt of trade between two parties whereby wooden sticks were marked with a series of notches before being split lengthwise. That way, each party of a transaction could keep track of a record for accounting purposes. This was useful because it was fairly tamper proof in that if one party tried to modify their record by adding notches to their end of the stick and the two splits were ever rejoined, the tampering would be immediately evident. In nearly twelfth century, Henry I of England introduced the use of the split tally as a means of currency for taxes. In fact, this method was in use for nearly seven hundred years to follow until 1826.

If we look back about forty-five hundred years, we find the first believed use of a real tool for calculation: the Sumerian abacus, or accounting board, a sort of precursor to the modern abacus. It was originally a surface used for counting in the Sumerian number system. This number system is actually sexagesimal, or base 60. It's interesting to note that 60 is still used in measuring time, angles and geographic measurement. So there are sixty minutes in an hour, for instance, and three hundred sixty degrees in a circle. 60 is actually quite useful number system for things like fractions, since it has twelve factors. One fancy mathematical property of the number sixty is that it is a “Superior Highly Composite Number,” which just means that it's a natural number with more divisors than any other number scaled relative to some positive power of the number itself. So between zero and sixty, there are more factors than there are for any other number between zero and sixty.

The interesting thing here, though, is that the divisibility of sixty may not have been the only reason it came to be used for counting and calculation by the Sumerians, who had seven sky gods. Today we might look up and recognize them as the sun, the moon, Mercury, Venus, Mars, Jupiter and Saturn.

The two slowest moving of these are the planets Jupiter and Saturn, which take twelve and thirty years, respectively, to track through the Zodiac, which is just an imaginary bed in the sky, a belt that's about 20 degrees wide in latitude through which the sun, the moon and the planets appear to move.

It's remarkable, but the Sumerians actually understood this twelve and thirty year time span. The least common multiple of twelve and thirty is sixty. So in sixty years time, Jupiter would go through five cycles and Saturn will go through two. This may just be another reason why sixty was chosen by the Sumerians as an important number and a useful one for measuring time.

There may also be a sort of geometric case for the number sixty. The Pythagorean theorem was actually well known in ancient Mesopotamia, and, if we take a look at the example of a three for five right triangle, we notice that actually the product of those numbers is also sixty.

The oldest known surviving counting board is called the Salamis tablet from approximately 300 BCE from Babylon. So, a little bit later than the Sumerians. It was discovered on the Greek island of Salamis, and it's essentially a flat piece of marble containing different sets of lines for different figures. We find similar tools for counting and calculation throughout other ancient civilizations. The ancient Greek historian Herodotus, who lived from 484 to4 25 BCE, describes the Egyptian use of accounting board that was operated by moving pebbles from right to left on a surface. Similar counting boards and precursors to the modern abacus were likely and use throughout ancient China, Japan, India and Africa.

An interesting entomological note here the Roman expression for “to calculate” is calculo ponere - literally to place pebbles. The word calculi in Latin is a term for a pebble used as a game piece where reckoning counter, which in turn is diminutive of the Latin calx or chalk. And this is where we get the term calculate. Some of the earliest counting boards consisted of a series of grooves on a flat surface, preventing the pebbles from rolling off. These grooves were called alveoli, and as mentioned, the pebbles were called calculi. You can imagine how this might have been used. Marked at the top of each group was a number represented by each counter in that column, so we could use different pebbles, and their positions represent different orders of magnitude in some larger number.

The Chinese abacus, or suànpán (算盘) dates back two thousand years and is in fact, still used today throughout different parts of the world, particularly in certain shops and markets throughout rural Eastern Europe and Asia. If you've never seen one, encourage you to find an image to get a visual sense of the tool, you can probably picture it, but it's basically just a handheld flat wooden-framed mechanism. It contains a series of rods or strings that tether a series of beads used for counting. One of the most common classical variations of the abacus contains a series of thirteen rods corresponding to orders of magnitude in the base ten number system in certain Japanese variations of the abacus called soroban. They have nine rods, and even up to thirty one rods.

There's a lower section in the Chinese abacus, called Xià zhū, containing five beads on each rod, each having a value of one for its order of magnitude. In an upper section, the Shàng zhū, which is separated from the lower section by a perpendicular bar, having two beads per rod, each having a value of five for its order of magnitude. This is a little bit difficult to describe just an audio format, so it might help if you kind of pull up a picture and get a sense of what it looks like.

Sometimes you hear this commonly described as the five-plus-two abacus. More modern abacus actually have a four-plus-one configuration. There's a little bit of a difference between the way the two configurations air used with the four plus one implementing a complementary number system for calculation. You might actually be surprised to see just how quickly a skilled abacus user can calculate very large numbers. And, in fact, for basic arithmetic, a skilled abacus user can basically use an abacus as quickly as they might a digital calculator.

Now, if we go back just about two thousand years to ancient Greece, right around 100 BCE, we find one of the earliest known mechanical analog computers, the Greek Antikythera mechanism. So, a mechanical analog computer is basically just a device that uses some material phenomenon some high level mechanics, if you will, to model some other phenomenon in the world. In the case of this device, it's believed to have served as an orrery, or a mechanical model of the solar system. And it could be used to predict, with great precision, the position of astronomical bodies and events like eclipses. There are other notable analog computers even earlier in the fifth century BCE In China, we have the South Pointing Chariot - which was actually also the first known use of a differential gearing system like you might find in your car, for example - the South pointing Chariot was used to provide a means of navigation without the use of a magnetic compass.

If we jump ahead now, back to the 12th century, al-Jazari of Turkey invented an elaborate precursor to the clock tower. So if you think about a sort of structure that contains some elaborate series of pulleys and perhaps levers that control a very large clock. al-Jazari created this device that we call his Castle Clock, which was pretty big. It was actually three and a half meters tall, and it was an astronomical clock that not only kept time but modeled the orbits of astronomical bodies. And it implemented a series of mechanical automata in the form of musicians that played music. It was powered by a water wheel, and it was even programmable. The device could be recalibrated to account for the change in the length of the day, according to the time of year. al-Jazari’s device is actually considered to be the first programmable analog computer.

So we have sense now of some of the ancient innovations that predated computer science. It's interesting to note how these devices really focused on augmenting the human ability to understand and calculate the change in time, and also to deal with quantities and arithmetic that would be too difficult to store in our heads for any length of time. We can imagine also how a deeper, more reliable understanding of the configuration of celestial bodies must have helped with things like navigation and planning. So far, we're talking about advancements in tool use, essentially a sort of engineering or material history, if you will. But there's another side to this, too, as we try to think about this in the context of the history of computing. The other facet of this history we should investigate is the idea side, if you will: the mathematical and philosophical origins of computer science. That is the theoretical side of the history, which is really just as fascinating. So in the next episode, we will start to take a look at some of the early mathematical foundations of computer science.

#002 | Language, Form, and Automation: Panini to Leibniz

#002 | Language, Form, and Automation: Panini to Leibniz