Bret Victor gave a really interesting talk about how programming should really work, and that invention can be based on/motivated by a principle. He has a very interesting view of what is static and what is dynamic and how it can affect how we create things. Right now, programmers spend their time typing in complex code that is then compiled or interpreted by the computer. These worlds of editing and runtime are very related, but not really directly connected in a two way sense. In his world programming is part definition and part performance. It is a long talk, but around 24:00 he talks about how his ideas apply to designing circuits as well as software. If you are at all interested in this topic, it is worth your while.
He isn't the only one who is interested in this type of idea. The video below is much shorter and shows a system called Gliimpse that connects code to result via simple animation.