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
JAJansenJr on 01/08/2007 at 2:02 AM
5
But the big part is being able to see what code "snippets", mini blocks of code, and other
code entities are doing by watching what they do.
There needs to be invention of and instruction on useful code entities, too. Far too much of the time the proverbial reinvention of the wheel takes place. The art of software architecting needs more research - building up logical systems from logical components is a part of the art of computer programming that is vastly underdeveloped.
konrad.schwarz on 01/08/2007 at 6:05 AM
1
VCRAGAIN on 01/08/2007 at 8:20 AM
34
1. "They (the user community) don't know what they want until they see what you have produced" - so yes they need a way to 'play' with the options until they really define their needs
and plugin modules of functionality is the way to go, but - very hard to do that in a business setting when they think they want (what they have defined) by -tomorrow- and your pay check is riding on the delivery, AND we have legacy code that has to be incorporated which is a clone of a clone of a clone, and has no resemblance to 'plug in module' ( check out java's structure if you dont know it - they are REALLY on board with these concepts )
2. Commercial software pkgs try to give you everything you could possibly EVER need in their package - result - big clunker software that takes up the whole machine and drives you crazy -
SIMPLIFY, SIMPLIFY, LEAN AND MEAN AND therefore
FAST is what we need - I think loadable/unloadable functionality ( ie really OFF the machine ) eg : have to convert a file to a jpeg - load jpeg converter/use/unload - totally separate pieces of code NOT giant clunker DLL's that hog the whole machine - that's where the
problem lies - let the user decide WHAT he needs from the software instead of trying to load him up with everything -
note : that "clippy" nuisance is switched off from every machine I have met lately - when you find yourself yelling 'GO AWAY" at the machine you know it's getting too 'clever' - there was a 'Purdy' internet fiend that I found a couple of years ago, which I absolutely loved for about 3 days - until the 'chirping' help got on my nerves, but it WAS very clever and I wished I had written it - what a fun job - but that's what is going on also - all those programmers who have to put in just one more 'cutesie' thing - they are feeding their egos actually not the needs of
lean mean software, so that's another area to nip in the bud - yes we all do it !
Brandyberry on 01/08/2007 at 1:43 PM
1
It's great to have those options, but I may never use them. Is there a way to have those extras available, but not taking up space on my computer? Provide the basics to make the program work, but have the fluff available to tweak off my hard drive?
dickcaro on 01/08/2007 at 11:08 AM
7
Often overlooked, SFC constitute a new programming paradigm for complex systems well outside industrial automation or process control. SFC gives a graphical top-down method of programming complex systems of any type. The essential method is that of linking function blocks (aka objects) in series and parallel with explicitly defined checkpoints. Each function block may itself be defined by an SFC (nesting) until the complexity is reduced to a simple I/O operation or memory transfer.
To me, SFC is my META. It is now widely available for execution on the Windows or Linux environments. Contact me at CMC.us to find out more about SFC as a META programming tool.
Dick Caro
snedunuri on 01/14/2007 at 6:45 PM
15
javachip on 01/08/2007 at 1:52 PM
3
Having said that, I did read the rest of the article and will definitely read part II...with a big grain of salt...
JavaChip
colinnwn on 01/09/2007 at 10:45 PM
9
Your statement seems somewhat conceited unless you are one of the richest and most proficient programmers in the world who managed against all odds and a little luck to pull yourself out of the dismalness of Soviet Hungary.
This may be his most audacious project of his career. But given what he has overcome, it would be silly to dismiss him.
wscii on 01/10/2007 at 1:35 PM
1
enantiomer2000 on 01/08/2007 at 4:17 PM
28
gabrielg01 on 01/18/2007 at 11:39 PM
297
auzzie22301 on 01/11/2007 at 1:58 AM
1
What an exhilerating day at PARC, a day I will never forget. My first demo was BRAVO given by Charles and I could not believe what I was seeing. The next treat was to see the large laser duplicator driven by the Alto generating those finished documents. All my problems were solved. I was going to be a hero back at the Fund. I could not wait.
Unfortunately, it took many years for the vision to manifest in the real world. Nevertheless, from that point on I was a Xerox devotee, having been captivated by the magic I saw in PARC that day. I will never forget that thrill.
aurin on 01/18/2007 at 12:38 AM
2
Server Error in '/' Application.
Runtime Error
Description: An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine.
Details: To enable the details of this specific error message to be viewable on remote machines, please create a <customErrors> tag within a "web.config" configuration file located in the root directory of the current web application. This <customErrors> tag should then have its "mode" attribute set to "Off".
<!-- Web.Config Configuration File -->
<configuration>
<system.web>
<customErrors mode="Off"/>
</system.web>
</configuration>
Notes: The current error page you are seeing can be replaced by a custom error page by modifying the "defaultRedirect" attribute of the application's <customErrors> configuration tag to point to a custom error page URL.
<!-- Web.Config Configuration File -->
<configuration>
<system.web>
<customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/>
</system.web>
</configuration>
<congratiulations>
you are so absolutely right that there is somethings terribly wrong with nowadays software and i thank you for the effort and truly hope you will bring something useful to light - i have been programming and studying system analysis, so i do know the hurdles!
</congratulations>
aurin
finland
billybobbilly on 01/24/2007 at 12:43 AM
1
I expect a huge splash (this guy IS rich, after all) and a new buzzword-de-jour or possibly even a New Programming Paradigm, which will have some small effect on how programmers write software in the future - one of those tiny incremental changes Mr. Simonyi apparently despises.
When a programming tool is genuinely useful, you don't have to hype it - programmers will pick it up and use it naturally. If he has something useful, he should release it as Open Source. No way is he going to generate any huge delta in his wealth (several billion?) with a programming tool, no matter how amazing.
day5 on 01/25/2007 at 11:58 AM
1
The real problem with software gone amuck is well beyond the downsized, outsourced, sleep deprived, optionless or option worthless, team of programmers and engineers; it encompasses the whole company and all the companies that deal with that company and everyone in those companies and all of their children and grandchildren, until everyone on the planet living and dead has a finger in the blueberry pie. It starts with the CEO who is having Visions and moves to the head of Marketing who is having cocktails with the Movers and the Shakers of something. From there it moves down the food chain, circling the earth many times. Finally the idea has coalesced into a project and in a short time the programming begins. Only the idea continues to orbit the earth and even a Chinese missile won’t bring in down. The idea spawns new directions for the project. Time goes on, people die (but not the idea, which transforms itself into a myth) and new ones take their place, which is good because new is always better than old, and on and on it goes.
Tell it to me again, the child with extra big sun hat says. Okay, kid. WAITER, could you bring me another Dummy?
Cpt_Nemo on 01/25/2007 at 8:29 PM
14
I am of the opinion that if such a unit of study was available for programmers, they might be able to speed up their production of bug free code by having a more comprehensive grasp of how their work is affected by the 'leaking' that occurs through the layers.
It should also help them to flatten the complexity of current programming - pay attention Microsoft, with your bloatware you might learn something valuable.
vzn on 02/15/2007 at 4:40 PM
4
however! rosenberg is a really great author, check out some of his other articles on the web. looking fwd to reading his great book
more discussion on cutting edge algorithmics
http://groups.yahoo.com/group/theory-edge/
Corbier on 12/28/2007 at 4:03 PM
4