A Perspective on Automatic Programming