On a gray afternoon last October, I sat down with Simonyi in Bellevue, WA, in front of two adjacent screens in his office at Intentional Software, the company that he founded after he left Microsoft in 2002 to develop and commercialize his big idea. Simonyi was racing me through a presentation he was preparing for an upcoming conference; he used Microsoft Office PowerPoint slides to outline his vision for the proposed great leap forward in programming. He was in the middle of moving one slide around when the application just stopped responding.
In the corner of the left-hand screen, a goggle-eyed paper clip popped up: the widely reviled "Office Assistant" that Microsoft introduced in 1997. Simonyi tried to ignore the cartoon aide's antic fidgeting, but he was stymied. "Nothing is working," he sighed. "That's because Clippy is giving me some help."
I was puzzled. "You mean you haven't turned Clippy off?" Long ago, I'd hunted through Office's menus and checked whichever box was required to throttle the annoying anthropomorph once and for all.
"I don't know how," Simonyi admitted, with a little laugh that seemed to say, Yes, I know, isn't it ironic?
It was. Simonyi spent years leading the applications teams at Microsoft, the developers of Word and Excel, whose products are used every day by tens of millions of people. He is widely regarded as the father of Microsoft Word. (I am, of course, using Word to write these sentences.) Could Charles Simonyi have met his match in Clippy?
Simonyi stared at his adversary, as if locked in telepathic combat. Then he turned to me, blue eyes shining. "I need a helper: a Super-Clippy to show me where to turn him off!" Simonyi was hankering for a meta-Clippy.
In 2004, Simonyi proposed his own law: "Anything that can be done could be done 'meta.'" In his younger days--when he'd grandiosely named a project "Simonyi's Infinitely Glorious Network"--he would probably have been more arrogant: "Anything you can do, I can do meta!" But like many prodigies who have done well and aged well, Simonyi has learned to cut his cockiness with touches of humility and grace. A decade ago, he described himself as "a shaggy-looking guy with a foreign accent." He favors black turtlenecks and double-breasted blazers. With his upright posture and square face, a shock of dark hair combed forward over his forehead, he is often said to resemble a larger-boned Napoleon.
Intentional software is a grand scheme in a field where grand schemes have seldom worked. Every previous innovation introduced as a complete solution to software's woes has ended up providing no more than modest, incremental improvements. But Simonyi brims with the confidence of a self-made immigrant who's always had a firm grip on his own bootstraps. In a photo that hangs over his desk, he is standing in the White House beneath a portrait of Ronald Reagan. His broad grin mirrors the president's. The caption reads "The Two Optimists."
The offices of Simonyi's new company occupy a suite in a sleek glass skyscraper, and if you lean into the window and look down you can see the roof of the squat, nondescript white building that housed his first office at Microsoft, back in 1981. (It's a bank now.) Since then, Microsoft has grown beyond all recognition. The software industry has transformed the world. So why would Simonyi set out to rewrite all its rules? The problem is so big it seems part of the settled order of things. Simonyi's proposed solution could take decades to complete, and his critics are intensely skeptical. No one is asking him to leave behind the known routines of programming and strike off for a new world. But such migrations have paid off for him in the past.
Comments
rajuch on 02/07/2007 at 11:38 AM
1
How does it solve the software updates problem? What would happen, if they need to change some features six month from the installation? Can we put the bench back in the machine to refine the bench, or do we need to start over and pay for full new bench? Many online applications are being updated every other month.
If one needs to build a computer table or wooden cabinet, can he use that bench-making machine? Or does he need to build a new machine for each kind of products? I am not joking. You would agree, if you read the following.
We already invented such machines for building online-GUI-applications. Greatly appreciate your feedback, what you think about our online GUI application making machine. Please review brief overview to our application machine:
http://cbsdf.com/technologies/software-irony.htm
Each ‘Component Factory’ in the left side of the Figure#1 acts as a knob, to refine each part (i.e. a loosely coupled component/AC) in the application (shown right side). Please review the following WebPages, which show that this process builds perfect ‘application machine’ with simple to operate knobs to refine each part. Please review summary at the end to understand why it cost only a fraction to refine the application:
http://cbsdf.com/ps_blog/Minimum-couplings.htm
http://cbsdf.com/ps_blog/super-distribution.htm
P.S: Of course, one must use our highly-flexible online-GUI-API to build the online GUI components. You may see interactive GUI Components, which are built using SVG. We will be building the GUI Classes for XAML/Vista in the future.
http://cbsdf.com/technologies/demo-links/Demo-SVGS/misc-charts.html
More sample links at: http://cbsdf.com/technologies/demo-links/demo-links.htm
One may build his own custom GUI Classes, for example, to build multi-player online games or near real-time modeling of Air-traffic, as explained at:
http://cbsdf.com/Newbies/Flight-main.htm
http://cbsdf.com/misc_docs/online-apps-rock.htm
Best Regards,
Raju
sriramv.iyer on 02/13/2007 at 4:59 AM
1
But this article did rekindle my interest in DSLs. (I use python and not lisp, though)
rubs74 on 02/22/2007 at 5:27 PM
1
Model Driven Architecture also adds a new level of abstracction to software development and I guess that takes the base idea of Intentional Programming as well. There are already tools that work on production. Here there's a tool based on MDA that really allows you to think more about the bussiness logic and less about the complexities of building it, just take a look http://www.care-t.com/
JEfromCanada on 03/09/2007 at 3:10 PM
1
bushka on 03/14/2007 at 5:55 PM
1
oscarbhaskar on 06/13/2007 at 10:11 AM
1
The question now is how do we implement the concept? How do we capture the "Intention"?
I think we are about to see a new dimension in the way software is developed.
enterprise on 06/30/2007 at 2:45 PM
1
By Christmas.
We will make sure the writers of this excellent article know in good time.
In the meantime, if you want to be involved with the fun, get in touch on gedymail@gmail.com
GD
Corbier on 12/25/2007 at 2:02 PM
4
For a quick glance at what a language definition file might look like, check out:
www.ucalc.com/lisp.txt (Lisp)
www.ucalc.com/forth.txt (Forth)
The download includes more files like this, which you can load up into the generic interpreter, at which point it becomes an interpreter for the language you just loaded. (The supplied interpreter demonstrates just one possible kind of interface. You can create your own fancy interface to interpret such code).
uCalc LB is no longer in the idea stage. An actual fully working beta implementation can be downloaded.
I am the author of uCalc Language Builder (as well as uCalc Fast Math Parser), and I am looking for early adopters of the uCalc LB technology. An interactive tutorial that comes with the download can walk you trough the various concepts. Other forms of documentation are also included, as well as an interactive interpreter.
--
Daniel Corbier
www.ucalc.com