As a chemistry undergraduate in 1986, I dreamed of the possibility of designing and synthesizing macromolecules (molecules containing more than 100 atoms) that could do the amazing things that proteins do and more. I have programmed computers since the first TRS-80s came out in the late 1970s, and I thought it would be wonderful if I could build complex molecular machines as easily as I could write software. I wanted to create a "programming language for matter"--a combination of software and chemistry that would enable people to describe a nanomachine's shape and would then determine the series of chemical processes that a chemist or a robot should carry out to build the nanodevice.
Proteins, the fundamental nanomachines of life, have provided scientists like me with many lessons in our own efforts to create nanomachinery. Proteins are large molecules containing hundreds to thousands of atoms and are typically a few nanometers (billionths of a meter) to tens of nanometers across. Our bodies contain at least 20,000 different proteins that, among other things, cause our muscles to contract, digest our food, build our bones, sense our environment and tirelessly recycle hundreds of small molecules within our cells.