The goal of this project is to preserve and present primary and secondary source materials (including specifications, source code, manuals, and papers discussing design and implementation) from Mesa, the system programming language designed at Xerox PARC in the 1970s and used to implement the Xerox Star office automation system and its follow-ons. The editor greatly appreciates comments, suggestions, and donations of additional materials.
Wikipedia has a short overview of Mesa, and here’s the 1979 Mesa Language Manual, which is obviously a lot more in-depth.
Seeing the same for Cedar and Modula 2+ would be nice too
The best of it is that Mesa is yet another memory safe systems programming language, used as basis of most Xerox PARC graphical workstations.
Even better when it was updated into Cedar.
It is quite sad that those guys from AT&T had better luck selling their ideas.
Was it better than Lisp ?
Define better. Better at what?
Memory safe, faster, more concise, etc…
The language in the article is from the Algol family. So the same, endless, qualitative arguments from LISP vs. imperative discussions of yore apply to this case.
So basically:
If you like C over LISP then MESA is superior
Else if you like LISP over C then MESA is inferior
If you don’t care for either then just flip a coin.
IMO, the impression I got from a cursory read on the materials, it seems like a slightly better systems language than old school C, both are remarkably similar.
LISP is imperative. The GCD example from the Mesa manual in LISP:
(defun gcd (m n)
(if (and (eq m 0) (eq n 0))
0 ; by convention
(let (r)
(while (not (eq n 0))
(setq r (mod m n))
(setq m n)
(setq n r))
(abs m))))
Sure you can write code using a functional paradigm in LISP, but you can do that in C too…
My point is that there is very very rarely a single “better”… when it comes to anything. So you have to lay out your criteria.
Was Cedar more memory safe? It allowed pointers and lisp generally didn’t, so no; but it depends on the implementation.
Faster? Comparing what implementation of Cedar to what Implementation or Lisp? My guess is it probably was faster, but it is hard to say.
More concise? At what? Lisp’s prefix notation and use of parenthesis tended to make it less concise for math, but better at symbolic manipulation. Of course conciseness and maintainability are not always the same thing.
There was also Hyperstack, or something close…
I am not familiar with Hyperstack, care to elaborate?
I think he means Hypercard for the old Apples.
Yup, confused Smalltalk and Hypercard. Sorry about that. My bad.
It was an systems programming language in the sequence of Extended Algol and ESPOL.
Surely way better than C, with support for:
– strong types
– proper strings
– bound checked arrays
– modules
When it was revamped into Cedar, it gained RC with local GC for cycle collection, list manipulation primitives from Interlisp-D.
Although there were already systems programmed in safe systems programming languages like the Burroughs-B5000 in 1961, the Mesa and Cedar systems were the first graphical workstations done with strong typed systems programming languages.
So, better than Lisp? Different I would say, Xerox had three main Workstation OSes, Lisp, Smalltalk and Mesa/Cedar, each with different set of experiences.
Can I get something like this?
https://en.wikipedia.org/wiki/Xerox_Star#User_interface
It would be great to have it!
Details about Mesa’s successor — Cedar — can be found here:
http://research.microsoft.com/en-us/um/people/blampson/32a-CedarLan…