Sunday, 30 November 2014

Programmable animals

Humans are programmable animals. The programming language involved varies between humans - some humans are programmable in English, some in Japanese, and others in Swahili.

Other animals are programmable too. You can train dogs, dolphins, birds and other apes to perform tasks. However, few other animals have such advanced languages, programming them is trickier and they have a less flexible behavioural repertoire.

Drawing a parallel with Turing-completeness seems appropriate. Before the 20th century, machines could be built that performed more than one task, or had functions that could be changed by the user. However then the universal computer was invented - and suddenly machines could do anything - at least anything that was permitted by the available memory, sensors and actuators, if you gave them a suitable program.

Humans are the animal version of a universal computer. You can make them do almost anything. Never before has an animal's behavioural repertoire been so flexible or user modifiable. Cultural transmission is a lot like sharing subroutines.

This is not a new observation. There's neuro-linguistic programming - which is all about influencing behaviour using language. There's a book from 1998 by Jack Balkin titled "Cultural Software" that makes the link between culture and software explicit. Daniel Dennett has drawn a similar analogy: while laptops are programmable by virtue of their Java virtual machine implementation, humans have "necktops" which are programmable via their implementation of the "English Virtual Machine". Just as computers may be given instructions in Java code, so humans can be given instructions in the form of recipes, requests and purchase orders. David Deutsch gives human language as an example when describing his concept of a "jump to universality".

What of any use follows from viewing humans as animals programmable via a universal language?

That humans have already made the jump to universality means that this isn't something that has been left for machine intelligence. Of course, machines can be faster or have more memory than humans - but they can't be more computationally universal than humans already are. Humans are already Turing complete.

Perhaps there is some mileage to be had out of viewing education as similar to software upgrades. Uninstalling existing software isn't always easy - sometimes uninstallation takes important components with it by accident.

Another area of similarity is viruses and spyware. When installing new software, one is often concerned about whether its source is trustworthy. Some software resists being uninstalled again later and does not really have its users interests at heart.

There are a few areas of mismatch: Installing culture often requires repetition - this is not normally needed for software. Software often comes with licenses, but other culture does so much more rarely. Culture can involve "non-disclosure agreements" - but these are only rarely used to protect software.

However, overall, I think that the link between culture and software is useful and under-appreciated.



  1. Programmable animals is very interesting article. nice sharing...
    software windows crack

  2. i agree..humans are programmable animals. and also thanks for great sharing.
    portable software tools

  3. Thanks for interesting article about Programmable animals.
    new softwares ideas

  4. it is very useful post! thanks for giving nice information.
    cracked softwares | cracked software download

  5. that's really awesome...thanks for giving informative post.
    android data recovery license key

  6. Software Scale bases its definition of software quality on the ISO/IEC 9126 quality model, thus distinguishing internal quality, external quality and quality in use. SCALE, Software Scale Quality framework, focuses on the first part of the model which specifies six characteristics for internal quality: Best Scale Software Quality Information