Monday, August 18, 2008

When Software Was Actually Soft

Technology has come a long way in the past half a century. Today, MusicMaster comes to you on a thin piece of plastic which contains all the instructions needed for your hardware to work it's magic and bring you an interactive music programming environment. The programming language that we use to build MusicMaster gets translated into machine language that your microprocessor can understand. There, groups of binary numbers are manipulated. In binary language, 1's and 0's are the only letters of the alphabet, which when combined form words that physically change the circuitry of the computer to produce an effect. The process is quite complicated, but suffice it to say that "1" means a transistor should be on and "0" means off. An integrated circuit is made up of many transistors and working together, the combination of positive or negative electric pulse lead to things like Grand Theft Auto IV, Excel and - of course - MusicMaster.

But software wasn't always so abstract. In fact, back in the days when NASA engineers were programming the guidance computers for the first flights to the moon, software was a new concept. And to carry software to the moon on Apollo, engineers turned not to plastic discs and integrated circuits, but to a textile mill and a group of elderly women who were expert weavers! The Apollo programs were contained in ropes that were packed full of thin wires running in or out of magnetic cores (pictured at right). If a wire went through a particular code, it represented a "1" in binary, while a wire that went around the core reprensented a "0." Of course, a single wire could go through one core, skip two, go through one more, skip three, and so on. To build such a system, engineers essentially needed a weaving machine. At a texile manufacturing plant in Waltham, Massachusetts, older female workers - referred to as "little old ladies" or "LOLs" by the engineers, nimbly wove thousands of wires in and out of cores to create the ropes that made up the Apollo programs. To assist them, the United Shoe Machinery Company created a machine that held a rack of cores. The programmers inserted a paper tape with the code into a machine which controlled a needle eyehole which moved to the appropriate core given the instructions. The LOL would weave her wire through that core, and then the machine would reposition the cores so she could weave her wire back through the next appropriate core, and so on. Of course, this was not an easy process. It took many weeks to create the program ropes, and once they were done it was very hard to go back and make any changes in the code. Programmers had to be sure that their code was going to work for the mission, because up to four months prior to launch, no more changes could be made - no matter what.

Thankfully, it's much easier to write and manipulate code for software today. Over the years, MusicMaster has changed to meet users' needs in a changing world, and our users have enjoyed manipulating an interactive interface without needing to reweave wires. We're not at an age yet where computers will understand casual human speech ("Computer, locate Mr. Spock"), but while we can say that programmers today must still dedicate time to learning the "ropes" of their programming language, it's not in the literal sense of the word.

No comments: