Software
used to be written as strings of numbers, then acronyms.
Now we use language-like expressions. A more important
paradigm shift will be when 3D objects and behaviors
- referents from reality, become the instruction set
of software.

Current
software has a very difficult task, it has to deal with
complex objects in the real world, which it doesn't
really have the machinery to cope with. it's a bit like
watching little wooden toothpicks trying to manipulate
huge boulders. They keep rolling the way they want,
the tooth picks getting crushed underneath.
When
you see the computer mouse close in on a button target,
you see it as a complete animated 3D scene, the computer
cannot see it at all, it has to logically test the mouse
coordinate against each button coordinate until a match
is found.
Computers
use little bits to 'talk' about little functions, minds
use millions of bits to 'talk' about those little bits.
There is a gulf between the two. When a human thinks
of a for-next loop, billions of parallel 'bits' are
needed to handle the concepts as learned animated beliefs.
But a computer needs only a tiny few. When a computer
'thinks' of a 3D object, all its 'effort' is in just
holding the thing together. It's not generally seen
as a computational unit in its own sense. - It needs
to be.
Humans
never use tiny bits to understand anything. There is
no equivalent of ADD, SHIFT LEFT, COMPLIMENT etc. in
the human mind. Every simulated object is made up of
many thousands of parallel bits of data with many thousands
of linked associations to other parallel sets of data.
Any
subsequent thought processes are really meta computations
using large data objects animated over time. Even to
understand a simple XOR operation requires a 3D animation
or at least a linked pattern sequence.
When
we can model the procession of bits using animated 3d
objects or pattern beliefs, we will be able to handle
software development the same way we handle reality
in the real world. These meta objects becoming the representational
models of regular computer instruction code. They can
then be properly simulated and used as the building
blocks of robust computer generated code.
Common
human language is much too ambiguous to control software
processes. This is because it evolved primarily for
the communication of emotional states, and then later,
to include the description of objects and behaviors
in reality.
Actual
software code will be produced by translating the animated
simulations of the computer code to actual binary code.
The same way human language is primarily derived from
interpreting animated scenes of reality. The animations will need
to be 'emotionally' graded according to bit processing efficiency,
code re-usability and speed etc.
Research Challenge:
Take
a commercial 3D animation package like 3D Studio Max
and develop a software interface layer that can leverage
the power of the package to perform visual computing
functions, such as align surfaces; align vertices; merge
scale; merge form; break apart; join; equalize perspective;
exaggerate motion vectors; clone behavior; fit to shape;
enclose form; substitute behaviors etc.