The name of the C32 spreadsheet mentioned in the article is an acronym:<p>"C32 has been implemented as part of the Garnet system. It is an acronym, and stands for CMU’s Clever and Compelling Contribution to Computer Science in CommonLisp which is Customizable and Characterized by a Complete Coverage of Code and Contains a Cornucopia of Creative Constructs, because it Can Create Complex, Correct Constraints that are Constructed Clearly and Concretely, and are Communicated using Columns of Cells that are Constantly Calculated so they Change Continuously and Cancel Confusion."<p><a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.18.3001&rep=rep1&type=pdf" rel="nofollow">http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.18....</a>
Yay Garnet! ;) I worked on Garnet with Brad Myers at CMU, on the PostScript printing driver. Brad is really into mineral acronyms, and I came up with an acronym he liked: "GLASS: Graphical Layer And Server Simplifier".<p>Garnet had a lot of cool ideas in it, especially its constraints and prototype based object system.<p>A few years ago I wrote up a description of a similar system called OpenLaszlo, and how OpenLaszlo's constraint system compared with Garnet's constraint system. Garnet had a lazy "pull" constraint system, while Laszlo had an event/delegate based "push" system. Each used a compiler to automatically determine the dependencies of constraint expressions.<p>Constraints and Prototypes in Garnet and Laszlo<p><a href="http://www.donhopkins.com/drupal/node/69" rel="nofollow">http://www.donhopkins.com/drupal/node/69</a><p>The problem we ran into with supporting PostScript with Garnet is that we wanted to use Display PostScript, but Garnet was using CLX, the Common Lisp X Protocol library which was of course totally written purely in Lisp.<p>Of course CLX had no way to use any client side libraries that depended on XLib itself. I'd steer clear of using anything that depends on CLX for anything modern. (Does CLX still even exist?)<p>Brad Myers produced "All the Widgets," which must have some Garnet demos in there somewhere! [1]<p>[1] All the Widgets, sponsored by the ACM CHI 1990 conference, to tell the history of widgets up until then:
<a href="https://www.youtube.com/watch?v=9qtd8Hc90Hw" rel="nofollow">https://www.youtube.com/watch?v=9qtd8Hc90Hw</a>
The C32 acronym is just for fun - here's some more: <a href="http://www.cs.cmu.edu/~bam/acronyms.html" rel="nofollow">http://www.cs.cmu.edu/~bam/acronyms.html</a><p>We continue to do research on constraints in my group, see: <a href="http://cjs.from.so/" rel="nofollow">http://cjs.from.so/</a> (but it's in JavaScript - not Lisp). There are many commercial uses of constraints today, such as for graphical layout and "data bindings" (connecting the model and the view) in many toolkits.<p>Brad Myers, CMU