Charles Simonyi

Learn More
Wysiwyg editors simplified document creation by separating the document contents from the looks and by automating the re-application of the looks to changing contents. In the same way Intentional Software simplifies software creation by separating the software contents in terms of their various domains from the implementation of the software and by enabling(More)
Even as the software industry learns to deliver higher quality programs and on more predictable schedules, we feel dissatisfied. We feel that the promise of software is so much greater thant what has been actually achieved, especially in the reuse area. We feel ashamed every time we see that on the hardware side Moore’s law has worked for yet another 18(More)
Intentional programming is a new paradigm in sofmare engineering that allows programming languages to be implemented in a highly extensible manner. In particular, the programmer can specl$ new abstractions that are specific to his problem domain, while simultaneously recording any domain specific optimizations that may apply to such new abstractions. This(More)
This note is based on Gregor Kiczales’ position paper on Aspect-Oriented Programming: “AOP, The Fun has Just Begun”. I am a big fan of AOP. It has working and useful examples, and it brings into focus a key fault of traditional languages and OOP in particular, namely that modularity or refinement by itself can provide for a proper separation of concerns. It(More)
beginning to understand that simplicity is required for reli;ibility. The big wads of software that we have grown used to might be replaced by small, simple components that do only what they need to do and can be combined together. It’s a move from the Baroque to a Bauhaus style, and one I think we all need to embrace and encourage. Part of this revolution(More)
We consider a parametrized boundary-value problem containing an unknown parameter both in the non-linear ordinary differential equations and in the non-linear boundary conditions. By using a suitable change of variables, we reduce the original problem to a family of those with linear boundary conditions plus some non-linear algebraic determining equations.(More)
and suitably fascinating, profile was published in Technology Review. (See A sidebar, “Intentional Programming Explained” ( contained a throwaway line that suggested that UML models could not be executed. This is simply not true, as I will outline in(More)