Monday, February 26

Anything you can do, I can do Meta: Intential Programming

I love that title, I wish I had thought of it.

Via the recent NYTimes article,
Awaiting the Day When Everyone Writes Software

Programmers don't know what a computer user wants because they spend their days interacting with machines. They hunch over keyboards, pecking out individual lines of code in esoteric programming languages, like medieval monks laboring over illustrated manuscripts.
Interesting comparison between scribes and coders. Thank goodness for us, we have source control! When monks made a mistake the whole manuscript was ruined. Imagine if software was that way!

The NY Times article is really a condensed version of the Tech Review article series:

Anything You Can Do, I Can Do Meta (part I) (part II) (part III)

There is a great quote where Mr. Simonyi, the father of MS Word, meets his match with 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.
I think Simonyi's law: Anything that can be done could be done 'meta.' is great.

Interestingly enough, there is a connection back to my days at IBM and AspectJ via Gregor Kiczales at UBC (leader of the team at PARC that created AspectJ). There is a really interesting section in part III of the article that describe Simonyi and Kiczales co-founding Intential Software, but the relationship soon fell apart:

Simonyi admired Kiczales's work on aspect-oriented programming--a way of organizing and modifying code according to "cross-cutting concerns" that resembles intentional programming. Kiczales, another veteran of PARC, has spent his career working on ways to "make the code look like the design." Kiczales saw joining Simonyi as a chance to further that end. But Kiczales trusted open-source development, where Simonyi did not. The Microsoft-style closed-shop approach simply didn't feel "organic" to Kiczales. "I would have done it in Java," he says. "The first release would have been in six months." The disagreement was friendly but irreconcilable, both men say, and before long, Kiczales had left.

If you really want to learn about Intential Software design, take a look at Simonyi's 2006 paper at OOPSLA: Intential Software

No comments:

Post a Comment