Throughout human history, the closest thing to a computer was the abacus, which is actually considered a calculator since it required a human operator. Computers, on the other hand, perform calculations automatically following a series of built-in commands called software.

In the 20^{th} century breakthroughs in technology allowed for the ever-evolving computing machines we see today. But even prior to the advent of microprocessors and supercomputers, there were certain notable scientists and inventors that helped lay the groundwork for a technology that has since drastically reshaped our lives.

**The Language Before the Hardware**

The universal language in which computers use to carry out processor instructions originated in 17^{th} century in the form of the **binary numerical system**. Developed by German philosopher and mathematician **Gottfried Wilhelm Leibniz**, the system came about as way to represent decimal numbers using only two digits, the number zero and the number one. His system was partly inspired by philosophical explanations in the classical Chinese text the “I Ching,” which understood the universe in terms of dualities such as light and darkness and male and female. While there was no practical use for his newly codified system at the time, Leibniz believed that it was possible for a machine to someday make use of these long strings of binary numbers.

In 1847, English mathematician **George Boole** introduced a newly devised algebraic language built on Leibniz work. His “**Boolean algebra**” was actually a system of logic, with mathematical equations used to represent statements in logic.

Just as important was that it employed a binary approach in which the relationship between different mathematical quantities would be either true or false, 0 or 1. And though there was no obvious application for Boole’s algebra at the time, another mathematician, **Charles Sanders Pierce** spent decades expanding the system and eventually found in 1886 that the calculations can be carried out with **electrical switching circuits**.

And in time, Boolean logic would become instrumental in the design of electronic computers.

**The Earliest Processors**

English mathematician **Charles Babbage** is credited with having assembled the **first mechanical computers** – at least technically speaking. His early 19^{th} century machines featured a way to input numbers, memory, a processor and a way to output the results. The initial attempt to build the world’s first computer, which he called the “**difference engine**,” was a costly endeavor that was all but abandoned after over 17,000 pounds sterling were spent on its development. The design called for a machine that calculated values and printed the results automatically onto a table. It was to be hand cranked and would have weighed four tons. The project was eventually axed after the British government cut off Babbage’s funding in 1842.

This forced the inventor to move on to another idea of his called the analytical engine, a more ambitious machine for general purpose computing rather than just arithmetic. And though he wasn’t able to follow through and build a working device, Babbage’s design featured essentially the same logical structure as electronic computers that would come into use in the 20^{th} century.

The analytical engine had, for instance, integrated memory, a form of information storage found in all computers. It also allows for branching or the ability of computers to execute a set of instructions that deviate from the default sequence order, as well as loops, which are sequences of instructions carried out repeatedly in succession.

Despite his failures to produce a fully functional computing machine, Babbage remained steadfastly undeterred in pursuing his ideas. Between 1847 and 1849, he drew up designs for a new and improved second version of his difference engine. This time it calculated decimal numbers up to thirty digits long, performed calculations quicker and was meant to be more simple as it required less parts. Still, the British government did not find it worth their investment.

In the end, the most progress Babbage ever made on a prototype was completing one-seventh of his first difference engine.

During this early era of computing, there were a few notable achievements. A **tide-predicting machine**, invented by Scotch-Irish mathematician, physicist and engineer **Sir William Thomson **in 1872, was considered the first modern analog computer. Four years later, his older brother **James Thomson** came up with a concept for a computer that solved math problems known as differential equations. He called his device an “**integrating machine**” and in later years it would serve as the foundation for systems known as differential analyzers. In 1927, American scientist **Vannevar Bush** started development on the first machine to be named as such and published a description of his new invention in a scientific journal in 1931.

**Dawn of Modern Computers**

Up until the early 20^{th} century, the evolution of computing was little more than scientists dabbling in the design of machines capable of efficiently perform various kinds of calculations for various purposes. It wasn’t until 1936 that a unified theory on what constitutes a general purpose computer and how it should function was finally put forth. That year, English mathematician **Alan Turing** published a paper called titled "On computable numbers, with an application to the Entscheidungsproblem," which outlines how a theoretical device called a “**Turing machine**” can be used to carry out any conceivable mathematical computation by executing instructions. In theory, the machine would have limitless memory, read data, write results and a stored program of instructions.

While Turing’s computer was an abstract concept, it a German engineer named **Konrad Zuse** who would go on to build the world’s **first programmable computer**. His first attempt at developing an electronic computer, the Z1, was a binary-driven calculator that read instructions from punched 35 millimeter film. The problem was the technology was unreliable, so he followed it up with the Z2, a similar device that used electromechanical relay circuits.

However, it was in assembling his third model that everything came together. Unveiled in 1941, the Z3 was faster, more reliable and better able to perform complicated calculations. But the big difference was that the instructions were stored on external tape, allowing it function as a fully operational program-controlled system.

What’s perhaps most remarkable is that Zuse did much of his work in isolation. He had been unaware that the Z3 was Turing complete, or in other words, capable of solving any computable mathematical problem – at least in theory. Nor did he have any knowledge of other similar projects that were taking place around the same time in other parts of the world. Among the most notable was the **IBM-funded Harvard Mark I**, which debuted in 1944. More promising, though, was the development of electronic systems such as Great Britain’s 1943 computing prototype **Colossus** and the **ENIAC**, the first fully-operational electronic general-purpose computer, which was put into service at the University of Pennsylvania in 1946.

Out of the ENIAC project came the next big leap in computing technology. **John Von Neumann**, a Hungarian mathematician who had consulted on ENIAC project, would lay the groundwork for a **stored program computer**. Up to this point, computers operated on fixed programs and altering their function, like say from performing calculations to word processing, required having to manually rewire and restructure them. The ENIAC, for example, took several days to reprogram. Ideally, Turing had proposed having the program stored in the memory, which would allow it to be modified by the computer. Von Neumann was intrigued by the concept and in 1945 drafted a report that provided in detail a feasible architecture for stored program computing.

His published paper would be widely circulated among competing teams of researchers working on various computer designs. And in 1948, a group in England introduced the **Manchester Small-Scale Experimental Machine**, the first computer to run a stored program based on the Von Neumann architecture. Nicknamed “**Baby**,” the Manchester Machine was a experimental computer and served as the predecessor to the **Manchester Mark I**. The **EDVAC**, the computer design for which Von Neumann’s report was originally intended, wasn’t completed until 1949.

**Transitioning Toward Transistors**

The first modern computers resembled nothing like the commercial products used by consumers today. They were elaborate hulking contraptions that often took up the space of an entire room. They also sucked enormous amounts of energy and were notoriously buggy. And since these early computers ran on bulky vacuum tubes, scientists hoping to improve processing speeds would either have to find bigger rooms or come up with an alternative.

Fortunately, that much-needed breakthrough had already been in the works. In 1947, a group of scientists at **Bell Telephone Laboratories** developed a new technology called **point-contact transistors**. Like vacuum tubes, transistors amplify electrical current and can be used as switches. But more importantly, they were much smaller (about the size of a pill), more reliable and used much less power overall. The co-inventors **John Bardeen**, **Walter Brattain,** and **William Shockley** would eventually be awarded the Nobel Prize in physics in 1956.

And while Bardeen and Brattain continued doing research work, Shockley moved to further develop and commercialize transistor technology. One of the first hires at his newly founded company was an electrical engineer named **Robert Noyce**, who eventually split off and formed his own firm, **Fairchild Semiconductor**, a division of Fairchild Camera and Instrument. At the time, Noyce was looking into ways to seamlessly combine the transistor and other components into one integrated circuit to eliminate the process in which they were pieced together by hand. **Jack Kilby**, an engineer at Texas Instruments, also had the same idea and ended up filing a patent first. It was Noyce’s design, however, that would be widely adopted.

Where **integrated circuits** had the most significant impact was in paving the way for the new era of personal computing. Over time, it opened up the possibility of running processes powered by millions of circuits – all on a microchip the size of postage stamp. In essence, it’s what has enabled the our ubiquitous handheld gadgets millions of times more power than the earliest computers.