BANGALORE, INDIA: Programmers spend days understanding the requirements and needs for building a
software solution for an organization. They interact with business domain experts like financial analysts, HR personals, or marketing managers to understand what they need and try figuring out the specific business functionalities required to build the software solution.
|
Direct Hit!
|
Applies To: Developers
USP: Domain experts can design their own applications
Primary Link: NA
Keywords:?Intentional Programming |
Despite all these efforts, the software solution doesn't come out as desired by the domain experts, mainly due to the fact that the programmers have to convert the domain expert's knowledge into their own programmatical knowledge to build the software.
Now suppose the domain experts have the liberty to design the software solution as per their needs and the software solution reflecting the exact intentions of the domain expert who designed the solution, then the whole concept of Intentional Programming (IP) is achieved. With IP, the domain expert can use his expertise in form of graphical representations to define the logic of the tasks for the application.
What is Intentional Programming?
Intentional Programming was a research project led by Charles Simonyi at Microsoft, until early 2001. Later Simonyi found his own startup company 'Intentional Software Corporation' in year 2002, which was focused on making software based on his concept of IP.
Simonyi wanted to develop upon the concept in which the programmers could concentrate more on capturing the intentions of the computer users rather than fiddling with source codes, programming syntaxes, etc. The intentions are the expectations of the business users of an organization for what an application has to perform. The programmers work in tandem with the domain experts in determining these intentions that the software application must possess.
The idea of intention is the representation of the 'intent' of the programmer of how the code for a particular application has to function, and how these 'intents' are viewable to programmer in the language of his choice. And as we know, it's the source code that we use to view, edit, and save changes to the intents. It's the source code of all the programming languages that is represented as text, and where symbolic names are given to all objects, variables, and tasks. IP extends upon this idea of direct representation of task to source code by introducing an intermediate language as the standard representation of the code. This means the programmer can design or envisage his intent for an application in a standard language but its executable code can be viewed in any of the programming languages.