Sunday, July 28, 2013

Man vs. Machine (Part 1 - Similarities)

I am a computer software engineer.  I understand computers to a degree that most people do not.  I understand what takes place, inside the machine, to make the magic happen.  This is something that I've spent most of my life immersed in, it is a non-stop learning experience to write software.  Every time you turn around there is something new to learn.  However, the fundamental truth is that the core workings remain the same.  Moreover, I have come to find that those core workings of the machine resemble our own.

While they are not perfectly humanistic (yet) the basic model is highly similar.  Perhaps this was on purpose, or it was just the natural evolution of technology.  The best way to explain my point is probably through a simplistic example.   Note, this is a high level example.  For the sake of brevity and entertainment, I have omitted or briefly touched on some of the specifics.  


Example: Input, Processing, Storage, and Output.
A keyboard, mouse, fingerprint reader, microphone, etc. are all input devices, and they respond to the touch of the user, or the sounds in the environment, or in some scenarios data that comes in from a variety of sensors.   These input mechanisms represent the 5 human senses (touch, taste, smell, sight, and sound) although they manifest in different forms for a computer, again the core mechanics are quite the same.

The signals from our senses are transferred through our bodies using our nervous system.  The nervous system is akin to the System Bus in a computer.  This is simply a path by which data travels from the various ports on the machine to the CPU for processing, and from the CPU to the output devices.   The CPU is pretty much the brain of the machine.  

Our brain processes data at amazing speeds, because of this - with little thought - we can throw a ball at an arc to put it through a basket 10 feet away, judge the angle required for a golf shot to get within a few feet of the hole, or bounce a cue ball off the rail to sink the 8 ball.  Similarly a CPU can churn through the data coming from the various input devices at blazing speeds to tell the operating system and software (call it the software stack) what to do with it.

When I think of the brain, I think of the actual organ, not the mind, not our personalized spin on things.  The mind is more like the software stack than the CPU, it takes our own experiences and adds interpretation onto what the brain is processing.   Much in the way that the operating system and application software add interpretation about how to handle a key press event, mouse click, or voice command.  The responses to some of these events can be tailored, by settings that we can change.  Just as we can control our responses to certain stimuli, but not so much to others.

As we are processing data in this manner, it is being retained in short term memory.  So we can hang onto it briefly but then just discard it later.  Again, computers do this same thing using RAM.  It is quite explicitly volatile memory designed to allow the machine to discard it when it's done with it.  Only persisting what the software (mind) deems appropriate to remember to non-volatile storage media such as a hard disk (long term memory).

Later we may tell stories of events that went through this process described above and share it with others, offering them - if they are listening - a window into our world, how we think and feel about things, and how we interpreted that story.  We recall it by reaching into our long term memory and reading it up, just like a file from a hard disk.  We share the story by writing it out, speaking it, or even creating media to help visualize it.  This final piece is representative of the computer's output mechanisms - monitors, speakers, printers, etc.

In the near future I'll publish some differences, the big one of course being binary logic vs. human logic, and expand on things by discussing some programming structures and how those compare to human traits as well.