IndexTopFutureHistory and Acknowledgements

History and Acknowledgements

GOO has greatly benefitted from the help of others. During the winter of 2001, I briefly discussed the early design of Proto, a Prototype-based precursor to GOO, with Paul Graham and his feedback was very useful. From there, I bootstrapped the first version of Proto for a seminar, called Advanced Topics in Dynamic Object-Oriented Language Design and Compilation (6.894), that I cotaught with Greg Sullivan and Kostas Arkoudas. The 6.894 students were very patient and gave me many helpful suggestions that greatly improved Proto. During and after the seminar, Greg Sullivan reviewed many ideas and helped tremendously, including by writing the Emacs goo-mode. James Knight was one of the 6.894 students and became my MEng student after the course. He has helped in many many ways including the writing of the save-image facility, the speeding up of the runtime, and the improving of the non local exit facility. Eric Kidd worked with me during the summer of 2001 implementing the module system, restarts, and the dependency tracking system. During that summer I decided that a Prototype-based object system was inadequate for the type system I was interested in supporting and changed over to the present type-based system. I presented my ideas on Proto at LL1 in the Fall of 2001. Many stimulating conversations on the follow on LL1 discussion list inpired me. In fact, during the course of defending Proto's form of object-orientation on that list I came up with its current name, GOO, and it stuck. Andrew Sutherland became my MEng student in the winter of 2002, wrote a GOO SWIG [2] backend, and has provided useful feedback on GOO's design. I also wish to thank Boehm, Demers, and Weiser for writing the conservative GC upon which this initial version of GOO is based. Finally, I would like to thank Keith Playford for his continued guidance in language design and implementation and for his ever present and rare sense of good taste.


IndexTopFutureHistory and Acknowledgements