Charles Simonyi and Programming
In your otherwise excellent coverage of Charles Simonyi and his pioneering concept of intentional programming (“Anything You Can Do, I Can Do Meta,” January/February 2007), you unfortunately included a throwaway remark about the Unified Modeling Language (UML): “But UML diagrams can’t be transformed into finished software, which is Simonyi’s dream for intentional programming.”
This would come as quite a surprise to a large and growing community of software architects and developers. While it is true that UML, now a staple of every major software-development tool worldwide, is often used only for “sketching” an architecture or design, people have for years been successfully employing the full capabilities of UML “all the way down” to executing systems.
Richard Mark Soley
Intentional programming might be a great help to those who must maintain software, as original “intent” is often lost. However, I suspect there may be too many potential dimensions to the task. One can only hope the effort won’t run off the rails. As I wrote in the March 1990 issue of C Users Journal, “Complexity is neither created or destroyed–it only changes its appearance or location and distribution.”
I found the criticism of the intentional-software idea referred to in the article amusing to ludicrous. The notion that Simonyi’s idea is “implausible” is astounding. It reminds me of the prediction of scientists that the four-minute mile was a human physiological barrier. Every single scientific breakthrough has received that sort of dismissal before it was achieved.
Also, the complaint from programmers that it distances them from the “raw code” is ludicrous. Being stuck with the raw code is exactly the problem that intentional software is aiming to solve. The complaint sounds like a concern over job security.
Charles Simonyi’s intentional programming is a great idea, but Simonyi’s huge programming background unfortunately ties him so much to conventional programming techniques that, no matter how hard he tries, he will never be able to conceive of the truly radical approach to programming that’s needed to solve the software crisis. We need someone not steeped in current programming methods to devise a totally new, unfettered approach. I wish Simonyi the best of luck in his endeavor, but I fear we’re only going to get a marginal reduction in program obfuscation and a still further slowdown in run-time speed. Let’s hope it’s not a C+++.
I liked editor in chief Jason Pontin’s most recent column about programming languages (“On Rules”), but I am a little bit disappointed that he did not mention Prolog, a rule-based software language model that is really elegant in terms of expressing solutions to problems. Once upon a time, I used a mixture of Prolog and C, and I can tell you it was a real delight. On the other hand, I remember an article in Technology Review by the late Michael Dertouzos about making all computing matters simpler [“Creating the People’s Computer,” April 1997]. I do not see that spirit in Simonyi’s proposal. What I think is more in line with Mr. Dertouzos’s agenda is what is known as Business Process Management (BPM) systems. Most BPM solutions offer a Lego-like graphical programming paradigm that allows the user to define his organization’s processes and computations. I think this is the paradigm we should follow.
Luis Fernando Flores Oviedo
Aguascalientes, Aguascalientes, Mexico