JetBrains

Intentional Programming

Do what I mean, not what I say!

Introduction

Sometimes as a programmer we can get ahead of ourselves. We reference class we haven't yet imported or even created, assign values to variables we haven't yet defined, make calls to methods we haven't written, and so forth. Technically these could be considered mistakes, but they are mistakes made with the best of intentions.

The concept was introduced by long-time Microsoft employee Charles Simonyi, who led a team in Microsoft Research which developed an Integrated Development Environment called IP that demonstrates these concepts.

Cycle

As envisioned by Simonyi, developing a new application via the Intentional Programming paradigm proceeds as follows. A programmer first builds a toolbox specific to a given problem domain (such as life insurance). Domain experts, aided by the programmer, then describe the application's intended behavior in a WYSIWYG-like manner. Finally, an automated system uses the program description and the toolbox to generate the final program. Successive changes are done at the WYSIWYG level only, employing a system called the "domain workbench".