Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Xerox PARC Mesa Programming Language 5.0 (1979) [pdf] (bitsavers.org)
97 points by pjmlp on Jan 19, 2022 | hide | past | favorite | 33 comments


Whenever I see a link to an interesting and historical document like this, I look up the authors to see what the ended up doing after. I didn't recognize any of the authors, but did some searching.

James Mitchell [1] is still with us and developed the first ARM instruction set, and went on to work at Acorn, Sun and Oracle doing interesting work.

Richard (Dick) Sweet was most recently at Adobe and just completed a 4000 mile Tesla trip around the America West.

I couldn't find any other info about William Maybury outside of his work at PARC. William (Bill?) are you out there in HN land?

Here is some additional info on Mesa. [2]

[1] https://en.wikipedia.org/wiki/James_G._Mitchell

[2] https://en.wikipedia.org/wiki/Mesa_(programming_language)


Dick Sweet was living in Ashland, OR last I checked. Jerry Morrison and I actually went to his fabulous house in the 00's. (Jerry is the coauthor of the "Let's DO allow hindsight" page on [1]).

As many HN'ers know, I wrote a book about this; it's a novel mainly so I could have characters and dialog; no one remembers what they said 45 years ago, if they're even still alive! If they did remember things, their memories would be colored by hindsight, and I didn't want that. The underlying facts are rigorously accurate.

I don't know where Bill is, either, or if he's alive. He was down in El Segundo, not up in Palo Alto, and joined Star from the old XDS (Xerox Data Systems).

Funny about the Mesa language: I just got an audiobook made of this, and I had to tell the narrator how to pronounce the language! Also that it's re-flect-OM-eter, not re-FLECT-o-meter, and Terry Winograd's name is WIN-oh-grad, not WHY-no-grad.

AMA.

[1] https://www.albertcory.io


I'm one of those unfortunate souls who did not know about your book until now. Needless to say, I just ordered a copy, and am champing at the bit for it to arrive now. I love this kind of historical stuff. Probably the same reason I've watched all of Halt and Catch Fire twice now, and will probably watch the whole series again at some point. There's just something amazing about that era (by "that era" I'm intending to say sometime approximately in the mid-to-late 70's, through the "PC revolution" in the 80's, and some part of the "Internet revolution" of the 1990's).


Some other pointers:

"Fire in the Valley", "Soul of a New Machine", everything Maher has published on http://www.filfre.net/ , "Where Wizards Stay Up Late", the stories at https://www.folklore.org/ about the Macintosh.

But bear in mind that the Mac became big, which is why it's easy to find Mac stories. There are similar stories about other communities too, though harder to find. For example, here's a 2-part story about the Amiga - https://www.youtube.com/watch?v=ws3DJF7MbMU .

As a reminder, don't only read books about success, but also failure. "Startup: A Silicon Valley Adventure", about an early pen-based platform in the 1990s.

And there's fiction, like "Microserfs".


Right.

On "Soul of a New Machine" check out my podcast interview of Dick Sonderegger [1]. Besides being an incredibly fun story of learning computers in the Marines during the Vietnam era (spoiler: he never left the US), he talks about knowing the real Data General guys in that book (another spoiler: they didn't have much regard for Tracy Kidder)

[1] https://operationcode.org/podcast#dick-sonderegger-link


Yeah, I kinda liked Halt and Catch Fire until it got into video games in Season Two. Not really my thing.

The cover picture on my book actually features Dave Smith's son Jeffrey playing MazeWar on a real working Alto.


Albert,

Thanks for the additional info. I'll be sure to check out your book.

Whenever I think of Xerox, I only think of PARC. I rode past it for years and years and years as I went up and down Foothill from Apple. I didn't know about the El Segundo location.

Whenever I think of Star, or Alto, I focus on the GUI, the Smalltalk, etc. but of course the actual system had to be in place to host these applications.

Just for fun, I tried to see if the various sculptures were visible on current satellite at the (former?) Xerox A&E location on Aviation Blvd. but I couldn't find them. Bummer!

P.S. I just bought your book. I hope I meet you someday and can get you to sign it!


I'd be delighted.

The A&E sculptures were there for a long, long time, but now that it's been renovated and re-rented (look up 777 S. Aviation), I guess they got rid of them.

I'm actually Bob Purvy. I didn't change my name; just using a pen name, for no very good reason.


Bob, I am pleased to report the sculptures are visible in this Street View scene. [1]

I hope they won't vanish like the giant icons in the Apple Infinite Loop campus.

https://www.google.com/maps/@33.906084,-118.3786489,3a,75y,2...


Most of the Xerox papers (including mine) are behind paywalls, individually, but fortunately you can get them all for free on bitsavers [1].

Fun fact: LeRoy Nelson has a paper in there. In the book, I had to pick some job for "Janet Saunders" that didn't do too much violence to the real story, so I picked LeRoy's (build czar). Janet is not in any way modeled on LeRoy!

"D.C. Smith" (or Dave Smith, the inventor of icons) has a bunch of papers in that PDF, and he wrote the Foreword for my book. It's his son Jeffrey on the cover, playing MazeWar.

[1] http://bitsavers.org/pdf/xerox/sdd/OSDR8203_Xerox_Office_Sys...


That link doesn’t work!


Seems to have lost a hyphen: http://bitsavers.org/pdf/xerox/sdd/OSD-R8203_Xerox_Office_Sy... (note Bitsavers has directory listings).


> I just got an audiobook made of this

You probably want to update your [1] accordingly, now that Christmas and New Year is over and we’re all somewhat conscious again :)

(Not an audiobook person, but just got the ebook version and looking forward to gobbling it up, given I reread folklore.org every year or so.)


Sigh. Yeah, thanks for the reminder.


Done. Thanks. Check it out.


Sophie Wilson and Steve Furber should be surprised... kidding aside, ARM was significant and I think it behooves us all to be more accurate with our attributions!


Quite! According to Wikipedia he "managed the development of the first ARM architecture", which is not the same thing as GP claims, at all!


Sorry about that. Thanks for the correction!


Lol, I didn't expect a reaction after this amount of time! Thanks for taking this seriously!


Great info! Thanks for the links.


I really liked Mesa. My wife worked as a developer at XBS (Xerox Business Systems) first in El Segundo and later in Palo Alto after we moved to the Bay Area and I was very envious of XDE, the Xerox Development Environment. At the time I was stuck using a 25 line by 80 column terminal to do code development on and seeing how effective and useful all that screen real estate and tools were on here Dandelion (the Xerox workstation that was the basis for their Star systems) I thought, "Wow, it would be cool to work in an environment like that." Relatively shortly thereafter I ended up going to Sun where I got to use Sun Tools which, no surprise, had many people from both XBS and PARC working on it at Sun and so had many features that I admired about XDE as part of it.


Great info Chuck. What systems did she end up working with post-XBS and what were here thoughts about them vs. Mesa?


She went to Tandem after Xerox. Mostly to follow her manager and partly because it was painfully obvious to pretty much everyone that XBS didn't understand how to productize the computers and technology that PARC came up with. By then it was clear that Apple was going to do that with the Macintosh.


That is cool. I wonder if she worked in the Tandem buildings on Tantau? It was in one of these buildings (post-Tandem, post-Compaq, post-HP) that I think Apple set up some iPhone radiation testing back when I was at Apple. The buildings had large Tandem red color panels on the front. The buildings are gone now, replaced by the Apple Visitor Reception Center.


Yes, and Pruneridge, a perfectly good east-west street, now no longer goes through to Wolfe because of the Spaceship. Money talks.


A favorite road on a running route of mine. I loved the tree lined street. I imagine those trees are gone now.


Mesa was later replaced by the more modern Cedar programming language integrated with Tioga programming and desktop environment by Xerox, after they've evaluated few languages for potential replacement including Lisp for the later part of the 80s and 90s [1],[2],[3].

Apple and Microsoft copied their modern GUI desktop idea from Xerox in the 70s but interestingly nobody has copied the excellent Cedar/Tioga programming environment until today.

[1] A Description of the Cedar Language:

https://www.microsoft.com/en-us/research/publication/descrip...

[2] Eric Bier Demonstrates Cedar:

https://youtu.be/z_dt7NG38V4

[3] The Tioga Editor:

http://www.bitsavers.org/pdf/xerox/parc/cedar/Cedar_7.0/07_T...


Previous HN discussion about that video:

https://news.ycombinator.com/item?id=22375449

https://www.youtube.com/watch?v=z_dt7NG38V4

I posted about PCR:

https://news.ycombinator.com/item?id=22378457

This is a great video!

They discussed and demonstrate Cedar's early text selection, copy and move commands, and compare them to Larry Tesler’s cut and paste (which didn't require any special keys or more than one mouse button). The Tioga text editor and other Cedar applications made common operations like repeatedly copying text into a document from different places very easy and streamlined (fewer actions than cut, copy and paste), by using the shift key while selecting text.

Cedar took full advantage of the three button mouse as well as the control and shift keys (for 12 combinations of actions in any context, that worked the same everywhere).

I think SunView and maybe even OpenWindows also supported a similar (but obscure) “quick paste” mode, where you hold down the special “Copy” function key, select some text without disturbing the current input focus, cursor position, or text selection, and then when you release the key, that text is pasted into the current input focus at the current position, moving the cursor forward. That way you didn’t have to lose your current selection or position, in order to just select some other text and copy it in.

Here, I found the code to do it in an old version of NeWS -- it was the cut key to move, or the paste key to copy, and it's called the "Secondary" selection (rank=Secondary):

https://github.com/duncanmak/noticias/blob/6f0a78186ee074828...

    % Cut key: Either delete the primary selection (stashing it
    % on the clipboard) or move the secondary selection to the
    % focus, if one was made.

    % Paste key:
    % Insert either the secondary selection (if one was made)
    % or the contents of the clipboard.
When he browses through the code, you can see a whole bunch of X11 stuff.

I believe that stuff is the port of Cedar to the Sun. Xerox PARC developed "Portable Common Runtime", which was basically the Cedar operating system runtime, on top of SunOS (1987 era SunOS, not Solaris, so no shared libraries or threads, which PCR had to provide). He demonstrates compiling a "Hello World" Cedar shell command, and (magically behind the scenes) dynamically linking it into the running shell and invoking it.

Experiences Creating a Portable Cedar.

Russ Atkinson, Alan Demers, Carl Hauser, Christian Jacobi, Peter Kessler, and Mark Weiser.

CSL-89-8 June 1989 [P89-00DD6]

http://www.bitsavers.org/pdf/xerox/parc/techReports/CSL-89-8...

>Abstract: Cedar is the name for both a language and an environment in use in the Computer Science Laboratory at Xerox PARC since 1980. The Cedar language is a superset of Mesa, the major additions being garbage collection and runtime types. Neither the language nor the environment was originally intended to be portable, and for many years ran only on D-machines at PARC and a few other locations in Xerox. We recently re-implemented the language to make it portable across many different architectures. Our strategy was, first, to use machine dependent C code as an intermediate language, second, to create a language-independent layer known as the Portable Common Runtime, and third, to write a relatively large amount of Cedar-specific runtime code in a subset of Cedar itself. By treating C as an intermediate code we are able to achieve reasonably fast compilation, very good eventual machine code, and all with relatively small programmer effort. Because Cedar is a much richer language than C, there were numerous issues to resolve in performing an efficient translation and in providing reasonable debugging. These strategies will be of use to many other porters of high-level languages who may wish to use C as an assembler language without giving up either ease of debugging or high performance. We present a brief description of the Cedar language, our portability strategy for the compiler and runtime, our manner of making connections to other languages and the Unix operating system, and some measures of the performance of our "Portable Cedar".

PCR implemented threads in user space as virtual lightweight processes on SunOS by running several heavy weight Unix processes memory mapping the same main memory. And it also supported garbage collection. Mark Weiser worked on both PCR and the Boehm–Demers–Weiser garbage collector.

https://en.wikipedia.org/wiki/Boehm_garbage_collector

This is the 1988 "Garbage Collection in an Uncooperative Environment" paper by Hans-Juergen Boehm and Mark Weiser:

https://hboehm.info/spe_gc_paper/preprint.pdf

>Similarly, we treat any data inside the objects as potential pointers, to be followed if they, in turn, point to valid data objects. A similar approach, but restricted to procedure frames, was used in the Xerox Cedar programming environment [19].

[19] Rovner, Paul, ‘‘On Adding Garbage Collection and Runtime Types to a Strongly-Typed, Statically Checked, Concurrent Language’’, Report CSL-84-7, Xerox Palo Alto Research Center.

http://www.bitsavers.org/pdf/xerox/parc/techReports/CSL-84-7...

My guess is that the BDW garbage collector had its roots in PCR (pun intended, in fact this entire message was just an elaborate setup ;), but I don't know for sure the exact relationship between Cedar's garbage collector, PCR's garbage collector (which is specifically for Cedar code), and the Boehm–Demers–Weiser garbage collector (which is for general C code). Does anybody know how they influenced each other, shared code, or are otherwise related? Maybe there's a circular dependency!


Great summary.

I know you meant a different PCR, but the late Kary Mullis, inventor of Polymerase Chain Reaction, which we've all unfortunately gotten to know about, spoke at Google and I got to hear him.

He said he had taken a programming class and the idea of "looping" had really caught his imagination, and that was part of what inspired PCR.

Of course we wouldn't have had a genetic revolution without PCR.


I like to think that Java and .NET is the closest we got that far, but so much is still missing from that whole experience.


Back in those days you could write to Xerox PARC to request their Tech Reports and a few days later they’d show up in your (physical) mail box! I got quite a few reports that way, learned a bunch, and even did toy implementations of some things such as the RIP, SPP protocols and so on. I learned about RPC from Bruce Nelson’s thesis and got a chance to use it for a client in 1984!

I may still have this Mesa book somewhere.... On a quick rereading I realize it was basically a variation on Pascal, with a few things cleaned up or made more convenient.


Yes! When I was a junior or senior in college, I went through the list of PARC reports and made a list of perhaps 20 or more of them I might like. I was very surprised to eventually get a book-sized box full of reports.

That lead me to an interest in Xerox, and when I got out of college I went to work for Xerox in El Segundo on the Star project.

I stayed there for 7 years, so I'd say the company got their money's worth out of sending a college student a bunch of tech reports.


It looks like Pascal with some evil twists.

Using assignment time to specify constants is clever, too clever.

Having multiple assignment symbols is broken

Mixing variable declarations with code just smells bad

Otherwise, pascal, with tweaks.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: