It's quite common for experienced programmers to understand the semantics of a system, but not the syntax. All the arbitrary (but finite, and structured) design decisions have to be learned.

Example-centric programming accelerates the learning of syntax by allowing the programmer to rapidly experiment with the system. They can look at examples which illustrate the principles of the language (the syntax) and they can then create a mental translator from the already-known semantics to the system's syntax.

The brain is designed to be easily learnable -- there are a small number of basic inputs and outputs for the sensory and control modules. This allows rapid evolution, because changes in the inputs/outputs are easy to adapt to. It's also analog, which means that changes to the inputs should produce proportional changes to the outputs. These all assist discovery and learnability.

Fixed-sparsity distributed representations allow slightly-wrong inputs to still produce outputs. This flexibility accelerates experimentation. In a fully non-distributed symbolic system, changing one bit on the input or the internals of the code will usually break everything. This doesn't allow for experimentation OR evolution.


HCI/Ambient_Learnability (last edited 2013-10-28 10:49:35 by Chris)