Building the Box
By Lincoln D. Stein
My first experience with a software development framework was in a high school class on the APL programming language. APL is matrix-oriented, meaning that all data is organized into rows, columns, and higher dimensions. I spent most of my time figuring out how to represent the current taska mailing list, sayas a set of matrices and matrix operations.
Years later in medical school, I bought a 128KB Macintosh and dipped into software development again, this time using 68000 assembly language. This changed my world-view considerably. Instead of everything being a matrix, everything was a byte, a word, or a pointer, and most of my creative time was spent figuring out a way to move these objects between registers and main memory. The programs I wrote during this period tended to be small, low-level tasks, such as memory-resident programs that intercepted keystrokes and changed straight quotes to curly ones.
Thankfully, the Macintosh's RAM capacity grew along with my student stipend, and I was soon able to buy a Pascal compiler. This enabled me to throw off the chains of microcode and accept a new tyrant, the Macintosh toolbox. The toolbox, a vast and copiously documented library of code routines, let me control every aspect of the Macintosh user interface, provided that I did so in the manner approved by the Macintosh User Interface Guidelines. The toolbox made me acutely aware of events. And events were occurring all the timekeystrokes, mouse clicks, window activations, and updatesmy programs had to capture and act on them in a timely fashion.<>