Pattern Languages:
A Way to Write the Software Architecture Handbook

Invited Presentation, Pacific Northwest Software Quality Conference, 1994.

Reusable software trades one set of burdens for another. As languages, libraries and frameworks grow in complexity, a designer will find that just properly reusing software requires more knowledge and experience than writing software from scratch did a few years ago. Even so, good designers eventually discover workable usage patterns for any package and can link these patterns together with others they already know. Finally acquired, a system of patterns allows a designer to wield complicated structures effortlessly while focusing full attention on the problems to be solved.

Can this knowledge be written down? A small community of framework designers thinks so and has been struggling to do so in a series of recent OOPSLA workshops. A handbook of (mostly) C++ design patterns will be out this fall and promises to change the way people think about that language. And, an international conference has been founded to create a literature of software patterns.

This talk will describe patterns in both their mental and written forms and explain how both will fit into the software development process of the future. Expect also a status report from the first patterns conference with pointers to organizations putting these principals to work today.