Technology Review - Published By MIT
Log in to My.TechnologyReview.com | Register
Advertisement
[1] 2 3 4 5 Next »

Monday, January 08, 2007

Part I: Anything You Can Do, I Can Do Meta

Space tourist and billionaire programmer Charles Simonyi designed Microsoft Office. Now he wants to reprogram software.

By Scott Rosenberg

smaller text tool iconmedium text tool iconlarger text tool icon
Charles Simonyi president and CEO of Intentional Software.
Credit: Brian Smale
Multimedia
•  Additional Photos of Simonyi

On April 9, at a remote launchpad on the plains of Kazakhstan, a ground controller will finish his countdown; a Soyuz rocket will fire; and Charles Simonyi--Microsoft's former chief architect, the tutelary genius behind its most famous applications, the inventor of the method of writing code that the company's programmers have used for 25 years, and now the proponent of an ambitious project to reprogram software--will begin his ascent into space.

Snug in a Russian space suit, feeling four Gs pressing him down into a form-fitting molded seat liner, the 58-year-old billionaire will become the fifth space tourist to visit the International Space Station. The journey, which will cost Simonyi around $20 million, will fulfill his dream of becoming a "nerd in space" (to borrow one name he chose for the website that documents his extraterrestrial adventure: www.nerdinspace.com). It will also give him an opportunity to view our planet from above and beyond.

This has always been Simonyi's preferred vantage. In a career spanning four decades, every time he has confronted some intractable problem in software or life, he has tried to solve it by stepping outside or above it. He even has a name for his favorite gambit: he calls it "going meta." In his youth in 1960s Hungary, he learned the basics of computing on an antiquated Soviet mainframe powered by vacuum tubes, then engineered his own escape to the West. In the 1970s, at Xerox's legendary Palo Alto Research Center (PARC), as part of the team that invented personal computing, ­Simonyi wrote the first modern application: a word processor that banished the complex codes then used to tag text and displayed a document as it would look on paper. Whether in his Stanford University doctoral dissertation on a "meta-­programming" approach to boosting programmer productivity, his career at Microsoft organizing legions of software developers and teaching them how to structure their code, or his planned voyage into Earth orbit this spring, moving beyond established ways of doing things has always been Simonyi's method. Now he is plotting what he hopes will be his most vaulting meta-move of all. Simonyi believes he can solve a host of stubborn problems that have always plagued computers by offering everyone who uses them, and the coders who program them, a higher-order view of software.

Bill Gates calls Simonyi "one of the great programmers of all time." Indeed, Simonyi is arguably the most successful coder in the world, measured in terms of financial reward and the number of people who use his creations. (Other celebrated programmer-billionaires, such as Larry Ellison and Bill Gates himself, made their money and names founding and managing technology ventures.) Simonyi could easily choose to spend the rest of his life endowing philanthropic ventures, flying planes, or cruising in his yacht. Instead, he says, he is "programming probably harder than ever before." He is obsessed with a project that he has pursued for a decade and a half, and that four years ago carried him right out of Microsoft's doors. He is proud of his profession. But he is also haunted by the thought of what programmers must contend with each time they sit down to code. He asks, Why is it so hard to create good software?

[1] 2 3 4 5 Next »
January/February 2007

Would you like to read more articles from the January/February 2007 issue?

This article is from the January/February 2007 Issue of Technology Review. To read other articles from this issue simply register for My.TechnologyReview.com. It's free.

Subscribe today and save up to 41% »

Comments

  • The Holy Grail in Programming
    JAJansenJr on 01/08/2007 at 2:02 AM
    Posts:
    5
    The holy grail in programming - easy, timely and error free coding.  R. P. Feynman said we can't see what a mathematical equation is doing by merely looking at it. Coding where you "see" what a snippet of code is doing by running it is part of the answer.  Another part is to get hard drives to run at RAM speed, so you can avoid "wait" time for computers to do something.
    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.
    Rate this comment: 12345
  • All Software is late
    konrad.schwarz on 01/08/2007 at 6:05 AM
    Posts:
    1
    A recent editorial by Hennesy in CACM disputed these sort assertions, in particular, it seems the consutling group's data gathering process is very skewed.
    Rate this comment: 12345
    • Re: All Software is late
      VCRAGAIN on 01/08/2007 at 8:20 AM
      Posts:
      34
      Avg Rating:
      4/5
      FROM THE TRENCHES IN A BUSINESS SETTING -
      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  !
      Rate this comment: 12345
      • Re: All Software is late
        Brandyberry on 01/08/2007 at 1:43 PM
        Posts:
        1
        I agree with the comment about too much programming.  In my basic and simple use and knowledge of computers and programs I've seen this many times.  How many different fonts do I need to have on my computer if I only like 2 or 3?  It seems like the programming community has brainstormed every possible "extra" that someone might ever want to use to tweak a document or data project (I've used Word, Excel, Powerpoint, etc.) and included it in the options. 

        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?
        Rate this comment: 12345
  • Sequential Function Charting - a new programming paradigm
    dickcaro on 01/08/2007 at 11:08 AM
    Posts:
    7
    Avg Rating:
    2/5
    Industrial automation is an extremely intricate environment for programming. Like conventional programming, operations are often sequential. However, many operations are also parallel. Complicating this, many sequences depend upon completion of parallel segment operations. This complexity has demanded development of a new programming paradigm - the Sequential Function Chart (SFC) defined in IEC 61131-3, and taken from the original development of Grafcet by Telemechanique for use by their programmable logic controllers.

    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
    Rate this comment: 12345
  • Anybody else struck by the "Clippy incident"?
    javachip on 01/08/2007 at 1:52 PM
    Posts:
    3
    This guy can't figure out how to turn off the Clippy assistant? Pardon my skepticism this early in the year, but I don't really see this guy succeeding at changing the paradigm of computer programming.

    Having said that, I did read the rest of the article and will definitely read part II...with a big grain of salt...

    JavaChip
    Rate this comment: 12345
    • Re: No, I understand entirely...
      colinnwn on 01/09/2007 at 10:45 PM
      Posts:
      9
      Avg Rating:
      4/5
      It's not worth his time to hunt down how to kill clippy when he is so easy to ignore, it's and not entirely intuitive how to do it.

      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.
      Rate this comment: 12345
      • Re: No, I understand entirely...
        wscii on 01/10/2007 at 1:35 PM
        Posts:
        1
        Agreed.  I grew up in a community full of world class PhD scientists and it often suprised me how little time they devoted to the small issues of day to day life, like setting the clock on the vcr, etc. 
        Rate this comment: 12345
  • monday at technology review
    enantiomer2000 on 01/08/2007 at 4:17 PM
    Posts:
    28
    Avg Rating:
    3/5
    desperate for a story.  this is the result.
    Rate this comment: 12345
  • PARC Visit
    auzzie22301 on 01/11/2007 at 1:58 AM
    Posts:
    1
    Some time in the mid '70s, on a trip from Washington, DC to Australia on home leave I was priviliged to gain access to PARC. For the year prior, I had been trying various combinations of copiers and presses in an effort to automate the document duplication process in the International Monetary Fund. Traditionally, this task had been performed using a combination of stencils cut on IBM selectrics and duplicators supplemented with small presses. However, after the introduction of the word processors stencils could not be cut, only hard copies would come from the centralized WP''s. Hence the experiments.

    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.
    Rate this comment: 12345
  • the irony of software stopping this article
    aurin on 01/18/2007 at 12:38 AM
    Posts:
    2
    This is what i get when i press next or page 4:

    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
    Rate this comment: 12345
  • "Hey, let's have users program their own apps!"
    billybobbilly on 01/24/2007 at 12:43 AM
    Posts:
    1
    That's what I am getting from this.  Hasn't worked any time in the last 30 years, isn't going to work now.

    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.
    Rate this comment: 12345
  • Life on the beach
    day5 on 01/25/2007 at 11:58 AM
    Posts:
    1
    What about Meta-Physical programming. This is where we create perfect meta-beings that can fulfill our every software whim with just a mere thought. Thus leaving us extremely flawed programmers and software engineers (a.k.a. geeks, nerds, dweebs, etc), lounging pastily under palm trees, while sipping Rum Dummies and playing Second Life.

    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?
    Rate this comment: 12345
  • Simonyi and MIT OCW
    Cpt_Nemo on 01/25/2007 at 8:29 PM
    Posts:
    14
    Avg Rating:
    3/5
    I would like to see a unit produced by MIT for the OCW that helps the open source community make sense of all those various layers of programming that Simonyi was forced to understand due to the fact that he started out at the very bottom with that old Soviet era vaccum tube machine.

    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.
    Rate this comment: 12345
  • theory-edge discussion
    vzn on 02/15/2007 at 4:40 PM
    Posts:
    4
    intentional programming has had plenty of time to catch on, more than a decade, but its not more than a laboratory curiosity. however, one could argue that service oriented architecture and enterprise service bus (SOA/ESB) which have gained significant traction & acceptance are basically quite similar to some of the ideas simonyi espouses.

    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/
    Rate this comment: 12345
  • uCalc Language Builder offers another approach
    Corbier on 12/28/2007 at 4:03 PM
    Posts:
    4
    See details in the main comment section for: Anything You Can Do, I Can Do Meta
    Rate this comment: 12345
Advertisement

Current Issue

Technology Review September/October 2008
How Obama Really Did It
Social technology helped bring him to the brink of the presidency.
•  Subscribe
Save 41%
•  Table of Contents
•  MIT News

Magazine Services

Career Resources

MIT Technology Insider

Stories and breaking news from inside MIT about the latest research, innovations, and startups--in a convenient monthly e-newsletter. Subscribe today

Follow us on Twitter

Twitter

Get Technology Review updates via the web, cellphone, or Instant Messager – Follow techreview on Twitter!

Advertisement

More Technology News from Forbes

Advertisement
Advertisement
Advertisement
TECHNOLOGY RESOURCES
Advertisement
MIT Massachusetts Institute of Technology