Fog Creek Software
Discussion Board




A Quote By Charles Simonyi

(This was written some 20 years ago
Do you think he's right in his statements,
Any comments? things to add to that?

What does he actually means by maintaining invariances in the structures?
(Just another Phd idiot or am I too dumb!) ;-)

"... The knowledge of the best algorithms is the science, and the
imagining of the structure is the art. The details of algorithms,
writing efficient lines of code to implement transformations on those
structures, is the trade aspect of programming. Technically, this is
called maintaining the invariances in the structures. Writing the code
to maintain invariances is a relatively simple progression of
craftsmanship, but it requires a lot of care and discipline."
- Charles Simonyi

Humble Uni Student
Friday, February 27, 2004

Microsoft tried to follow Simonyi's idea of having master programmers leading lesser coding monkeys and it didn't work.

John Topley (www.johntopley.com)
Friday, February 27, 2004

John Topley :

From what I've read he has shipped
world class software using his methodology (based on his Phd thesis)

In the 1970's at the Palo Alto Research Center
he shipped Bravo, the first WYIWYG word processor
for a machine called "The Alto" (designed by Butler Lampson I think, now at Microsoft Research Labs)
The Alto was pretty much a Mac :
Bitmapped graphic user interface with a mouse ...

Later in the 80's he build the unfamous Application Division at Microsoft where they shipped certainly the most used
pieces of sofware ever ....

I wonder what Intentional Programming is going to be all about ?

A New paradigm in computer programming ?
Has anyone got a clue here???

Humble Uni Student
Friday, February 27, 2004

I read a bit about IP in a book; it's basically about moving development closer to problem domains using customisable languages and stuff. The code, rather than being a plain text file which is compiled is written as a parsed tree, allowing the context which underlies the code to be saved. You don't need a "search/replace" tool to go rename a variable, you just change the name in the declaration and all the references know they're talking to the same variable, so the "names" in the code all change.

Rather disturbingly, the code in the screenshots, although in neat little context-driven editors, where you can't write insyntactic code, but it still appears to need all tat Hungarian alphabet gunk on the front of the identifiers. Which seems unnecessary in an environment where the type of a variable is only a click away...

I guess, once CS has created an idea,  he can't bear to throw it away...

Katie Lucas
Friday, February 27, 2004

Katie :

I also read an article which confused me a hell of a lot :

I've have some recollection of Biological Metaphors such as Enzymes trees, etc,etc ...

That was some 5 years ago I think, and back then
it was very theoretical,

I wonder if an Enzyme tree compiler is now available somewhere in Hungary :-)

Humble Uni Student
Friday, February 27, 2004

"Best", "Efficient"

Bah. Just give me a program that works and meets the needs of the customer. Moores Law or a modicum of optimization will sort things out if it's too slow.

pdq
Friday, February 27, 2004

Based on the context, it sounds like Simonyi is talking about invariants.  An invariant is a condition that always true a a certain point (or points) in the program.  The most common example is a loop invariant.  Therefore a structure invariant is a condition that must be held true throughout the transformation of the data.

P.S. I double-checked by googling "define: invariances" and came up with no definitions. So I'm pretty sure his English was just wrong.  I think he assumed that invariances was the plural for invariant.

Nick
Friday, February 27, 2004

By "maintaining the invariances in the structures" he probably means making sure the rules that should always stay true from one state of data to the next *do* stay true.  It's a rather academic way to say "ensuring the data always satisfies certain integrity constraints" by the end of each transformation.  See for example Bertrand Meyer's discussion of class invariants in Object Oriented Software Construction.

veal
Friday, February 27, 2004

A big second here on the Meyer book: the insights it gave me about loop invariants were a *big* leap in my understanding of algorithms about 15 years ago when I first read it.

To this day, if I am about to write a complex loop, I think about it in terms of the loop invariant, and suddenly things become clear.

Phillip J. Eby
Friday, February 27, 2004

"He shipped Bravo, the first WYIWYG word processor
for a machine called "The Alto" (designed by Butler Lampson I think, now at Microsoft Research Labs)
The Alto was pretty much a Mac :
Bitmapped graphic user interface with a mouse ..."

So customers actually paid Xerox money for an Alto and Bravo did they? I didn't think it ever left the confines of PARC.

"Later in the 80's he build the unfamous Application Division at Microsoft where they shipped certainly the most used
pieces of sofware ever ...."

Yes, but they weren't using Simonyi's methodology. Read your JoS:
http://www.joelonsoftware.com/articles/fog0000000034.html

John Topley (www.johntopley.com)
Friday, February 27, 2004

free( lpstrSimonyi );
lpstrSimonyi = NULL;

// Now I feel much better.

hoser
Friday, February 27, 2004

This article discusses the Alto in the context of the award recently given to its inventors.  It's not entirely clear, but it sounds like they sold a few of them (600 were produced.)

http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2004/02/25/BUGDD57F741.DTL

Also, some interesting screenshots and histories about the Alto here -- I hadn't realized just how advanced and Mac-like it really was.  The inventors truly deserved that award.

http://members.fortunecity.com/pcmuseum/alto.html
http://www.aci.com.pl/mwichary/guidebook/articles/thexeroxaltocomputer
http://www.digibarn.com/collections/software/alto/index.html

Robert Jacobson
Friday, February 27, 2004

ship != sell

seth
Saturday, February 28, 2004

hoser - don't you mean

$ kill -9 Simonyi

?

Mind you, SCO would probably sue in such a case.


Monday, March 01, 2004

*  Recent Topics

*  Fog Creek Home