Saturday, February 18, 2012

Google, Google, Google

No, this post is not about Google. My metrics had a blip when I posted about Google research so this is simply a red herring to see if it was mention of Google that made them bounce. However I am going to capture a thought I had after viewing the Bret Victor talk.

The most arresting part of the talk is the demonstration of the symbolic execution for the graphics code. There is no doubt in my mind that this is a very desirable direction in code creation and maintenance. We have virtually free machines cycles available to us and gamers have benefited for many years now. It is time the software engineering community insists that the traditional way of executing this code in our heads and writing it in an arcane symbolic language limits what people can create using the machines. Will this be how all code is written in the future? I highly doubt it. But if a significant portion of the day-to-day coding can be moved over to this style it should save many work-years of effort that can be used elsewhere.

The talk also makes me mindful of my going-in position regarding software engineering. One of the things that humans do exceptionally well is recognize patterns. As Gladwell observes, our brains are hardwired to recognize some patterns is a fraction of a second. The way this is done is obviously not using symbolic representation and some of the other high-level functions of our mind but instead uses something much deeper and closer to our lizard brain. Unless and until we can duplicate this ability with our machines it makes sense to use this ability to the extent possible. More visualization of code is one way this can be done.

This is not a novel idea. Fred Brooks had advocated for IA instead of AI; Intelligence Amplification, not Artificial Intelligence. This tends to push us toward a more cybernetic view with our machines acting as means of extending the inherent abilities of humans and not as autonomous agents. To do this most effectively means understanding where we can best extend the natural abilities of the brain.

Our path until now has been to treat the human as the adaptable member of the man/machine pairing. the inherent adaptability of the human has been exploited by machines for many centuries. If humans are really in control, you would expect that the machines would adapt to the human and not the reverse. I am well aware of the economic issues that have fed this trend. However this is a trend that will eventually reach some limit beyond which a human being cannot adapt to the machine and progress will cease. There must be a parallel trend in which the machines adapt to us.

It is not as if there is no indication that this occurs. Clearly our user interface design has turned a corner and is now taken seriously as a design issue. For all of their faults, Apple has demonstrated that design matters. I personally believe that design will be THE single biggest determinant of market success in the next century. Design is pure intellectual property and an endeavor beyond the ability of machine intelligence (imho) and will therefore be where companies can best achieve relative advantage in the marketplace. Creativity is a very human trait and what we seek to do in creating software engineering tools is to harness that creativity and aid it as much as we can.

So Google seems to be on a good track to exploit machine intelligence in their products. But for me, I am interested in figuring out how we can best exploit human creativity.

No comments:

Post a Comment