  I guess I must have missed urlLink this interview , from back in July. I like this quote: I also believe that work that is expressed in a factored form: namely as a DSL (Domain Specific Language) and as a generator, is inherently more reusable than the product of the generator applied to the DSL; Programmers today manually generate code by applying their skills to the specs that is really just a DSL. A metaphor here is the public key cryptosystem where two factors are combined with a difficult-to-invert function. So programmers become unwitting cryptographers – they work against themselves when they apply the programming patterns to the specs and obscure the intent. Another useful link to a urlLink demo of Intentional Programming . This makes it much clearer what Intentional Programming is.
Firstly, it eliminates the concept of a text-based code file, and replaces it with a tree like structure that can be displayed in many ways. So, for example you could display a piece of code as C# or VB.NET, depending on your preferences. Next, it utilizes this form of editing to increase the possible level of abstraction that we work with. This enables Domain Specific Languages. There are other benefits to the style of programming. Simple refactorings such as name changes are very easy, because the underlying framework knows what a variable, or a function is.
So, if you change a name, it will automatically propogate to every place that name is used. Contrast that with today's text-based editors, where you need to do a search &amp; replace, and not all search matches will be appropriate to replace. Source version control is also simpler, because the intention of changes is more apparent. 
