Ward Cunningham

I've been writing patterns for a decade. My old friend and mentor, Bill Croft, had sent me a copy of Alexander's Pattern Language earlier still. But, it was when I'd had some experience with Smalltalk that I understood the need for patterns. My first pattern success was guiding domain experts through a user-interface design. I taught them five patterns I'd learned by studying Model-View-Controller. I wish I'd written those patterns down. I did relate the experience in a panel and a workshop at the second OOPSLA. My colleague, Kent Beck, and I wrote an article for an early JOOP that closed with a hint of the value of patterns.

Lately, I've helped turn up the fire under programming patterns. I was present and promoting patterns at the series of Architecture Handbook workshops Bruce Anderson and others led at recent OOPSLAs. I set much of the agenda for the workshops that spawned the Hillside Group. I also served as program chair for Hillside's first International Conference on Pattern Languages of Programs, PLoP '94.

My own patterns come from years of reading and writing programs. I first wrote in IITRAN, then FORTRAN, then SNOBOL, then 6600 assembler, then PL/1, Pascal, & Lisp. Then I tried small machines because they were much more interactive. I wrote assembler for 6800, 6502, 8080, Z80 and the PDP-8. I programmed the Imlac, the Ramo, the RPC-400, the PDP-9, 1130s, 1620s, 7090s and PDP-9s. I've been on MACE and PROCSY and KRONOS and RSTS and MULTICS and UNIX and RT-11. And then I found Smalltalk.

Smalltalk could do everything I ever wanted to do and more. It's my chosen medium of expression, the voice of my experience. I've written more in Smalltalk than everything else combined. (I won't bore you.) I've pitched Smalltalk too. There was an AI workstation that ran Smalltalk because I taught it to the guys in the AI lab. There was also an oscilloscope that ran Smalltalk because I taught Smalltalk to the guys in the instrument group. I invented a diagram to explain Smalltalk. I devised a method to do Smalltalk. Now I'm working on Patterns. Why? For Smalltalk.

I really think programming is easy and fun. Those that think it hard and boring have only to collect some more experience. And, since they won't get it the long way, like I did, I'm going to write it down for them. I'm going to write the best of all my years of programming as patterns, and link them into languages, so that others can feel the joy and power of programming. Then we'll really have something.


Ward Cuningham is also a founder of Cunningham & Cunningham, Inc. where he works as a Smalltalk/Objects/Patterns consultant.