Intentional Programming

6/25/2004 3:16:38 AM

Intentional Programming

There's an interesting thread on Intentional Programming in the comments of my post predicting changes to code editing.

Intentional Programming was coined by Charles Simonyi, a famous Microsoft Distinguished Engineer, who helped bring Word. Having free reign at Microsoft, he's been pursuing his pet project for IP for over a decade to find a way to speed up the development of software by freeing programmers from the syntax and by capturing the explicit intentions of the programmer.

Having very little to show, at least externally, he left Microsoft to form a company Intentional Software dedicated to the concept of IP. This project has been pursued for so long without any fruit, that there are only skeptics now at Microsoft.

The home page describes IP in the following way.

Using Intentional Software, the actual software source code looks like the design. So the design information is captured, not lost, and all the stakeholders – programmers and others – can have their design intent clearly represented in the code. This increases the quality and value of the software, by making it easier to develop, maintain and change.

I have never seen a demonstration of IP, and every explanation provided has been highly vague and ambiguous. It's not clear if it's a new visual language, or it is similar to the concept I described in the post, where the underlying language may be C# but the presentation onscreen is no longer text-based. A second blurb in the site provides a little more specificity as to the type of technologies used:

Intentional Software Corporation will develop tools and technology based on a synthesis of recent innovations including aspect-oriented programming (AOP), generative (or transformational) programming (GP), intentional programming (IP), model-integrated computing (MIC) and others.

I do believe that Charles Simonyi and gang are on to something real.

At the risk of losing some credibility, I have often thought of English as a programming language; indeed, in a Computational Linguistics course I audited two years ago, no distinction was made between natural languages, programming languages, and formalisms like predicate calculus. English is very expressive and yet at the same  concise; as a consequence of English utterances, we have mental images and actions. It seems that Intentional Programming is attempting to approach some of these qualities of the natural language, but with code formulation as the byproduct.

I'll have more to say about my thoughts in this blog, when I actually start shipping products from my current AI software development work, which has similar goals.






SoftPerson develops innovative new desktop software applications by incorporating artificial intelligence and natural language technologies to bring human-like intelligence to everyday applications.

Social Media