To gain improvements in software development processes, corporations need a better separation of the software program and the problem set it is intended to solve, noted technologist Charles Simonyi told attendees at Technology Review's annual conference on emerging technology held at MIT in Cambridge, Mass. Simonyi has formed Intentional Software to address this issue.
Intentional is producing a Domain Workbench tool set that provides a combination of multiple domain views on problems. These can be viewed and edited. Simonyi suggested that the workbench would better enable domain experts such as business analysts to describe their needs to software developers.
"We fail to treat separately the problem and the program," Simonyi said. "This mix up creates complexity." That complexity may not be necessary for actually solving problems, he indicated, pointing to now familiar programs with, for example, five million lines of code. "What could all those lines be doing?" he asked with some apparent bemusement. "From a computer point of view they may be nice, but how do they relate to the problem we are trying to solve?"
On its face, the Domain Workbench looks as simple as any WYSIWYG interface. That may not be surprising in that Simonyi is a founder of the WYSIWYG approach. In the 1970s, he worked at the famed Xerox Palo Alto Research Center (PARC) where he created the first WYSIWYG text editor, called Bravo. From there Simonyi went to Microsoft, where he led teams that developed Microsoft Word and Microsoft Excel.
In 20 years at Microsoft, Simonyi served as director of application development, chief architect, and distinguished engineer. His tenure there left him as a very wealthy individual. His wealth enabled him to buy a ticket on a Soyuz rocket mission to the International Space Station in April of this year. That's not all. His close friend Martha Stewart packed a picnic lunch for space tourist Simonyi and his fellow cosmonauts.
As described by Simonyi, the key elements in Intentional's plans include the Domain Workbench, which is used for creating and editing descriptive domain code; an Intentional Tree that contains the domain code for meta data, as well as Domain Specific and general purpose languages; and Generative Programming that turns domain code into executable code. He said CapGemini consultants have been among the early beta users of the software.
Perhaps in a nod to his friend, Stewart, the famous cook, Simonyi used a food analogy in describing the software development process today. The complexity of development today is not intrinsic, he said. Then, he showed a picture of scrambled eggs. In scrambled eggs, he said, the input (egg) and the process tool (a whisk) are simple. He said that the complexity of the scrambled eggs is the result of the process, and thus not intrinsic.
The Intentional Software approach is meant to be language agnostic. Examples of interchange of notations and Intentional tree-generating templates shown at last year's OOPSLA conference were in C#.
Simonyi noted several predecessors to the Domain Workbench approach, including Domain-Specific Languages (DSLs), code generation, Model-Driven Architecture as well as internal DSLs found in Ruby. A key to success, he said is the separation of representation from notation as systems come into being.
When this reporter asked about the long-established Unified Modeling Language (UML), Simonyi said UML "doesn't have the properties that were in our requirements list."
More on the Domain Workbench approach
Intentional Software presentation at OOPSLA 2006 (PDF)
Intentional Software technical paper at OOPSLA 2006 (PDF)