When friends ask me how they could improve their programming skills I often reply that they should imagine that they are writing poems. How do poets improve their skill and quality of their poems? They read many more poems than they write. Reading what masters produced in the past can give you insights into ideas, patterns, and structure. When was the last time you went and read how something is implemented?
Etage is a data-flow based programming language. It is build upon Haskell and provides nondeterminism and laziness. It is text based and through few basic commands it allows defining operations (neurons) and connections between operations (nerves) along which data can flow. Moreover, program can form a network with loops and is not limited to only tree-like structure.
I am still waiting for somebody to create a programming framework where user could edit the program itself while it is running. Each user interface element would contain an “edit” button and by clicking it you would get source code editor for all code related to that element. Edit it, try it temporary, click save, and you have a new version of the program.
A great talk by Bret Victor about the future (or past?) of programming.