-
PLoP
Pattern Languages of Programs, People, and Practices (PLoP®) is the premier conference for pattern authors and users to gather, discuss and learn more about patterns. To achieve this, the conference promotes the use of patterns and pattern languages, as well as the underlying theory of the nature of order. PLoP 2024 will be held October 13-16, 2024. Visit the PLoP Official Site,
- 1
The Hillside Mission
The mission of the Hillside Group is to improve the quality of life and society as a whole. This includes architects, developers, managers, owners, workers, educators, students, and more. Understanding and helping the human element is critical for achieving success. The Hillside Group believes in making processes and design more humane by paying attention to real people and existing practices.
The Hillside Group promotes the use of patterns and pattern languages to record, analyze, and share knowledge to help achieve its mission. The Hillside Group sponsors a variety of activities to achieve this mission—organizing workshops, hosting PLoP (pattern) conferences, and producing publications for discussing, recording, and documenting successful practices.
The Hillside Group supports many different conferences such as: PLoP, EuroPLoP, AsianPLoP, VikingPLoP, SugarLoafPLoP, and ChiliPLoP. These conferences focus on writing groups to better improve patterns through group exposure. Each conference offers advanced topics for the more adept pattern writers. Participants have the opportunity to refine and extend their patterns with help from knowledgeable and sympathetic patterns enthusiasts.
Pattern Books
The Design Patterns Book Series showcases many patterns from PLoP conferences and leading experts in the patterns field.
See our Pattern Book Library filled with over 80 Pattern related books.
Patterns Resources
- Pattern Definition
A pattern language defines a consists of patterns and the rules with sequences to combine them.
- Patterns Catalog
A collection of pattern resources on the web. Sign up for an account to add your own.
- Tools for Writing Patterns
Pattern writing tools include example code and pattern writing templates.
- PLoP Conference Proceedings
Past conference proceedings from the PLoP conferences.
PLoP Conferences
Patterns Information
Christopher Alexander inspired Kent Beck and Ward Cunningham to write their first small pattern language in 1987 for designing user interfaces. In 1993, Kent Beck and Grady Booch sponsored a mountain retreat in Colorado which was the start of the nonprofit Hillside Group. The original vision of this group was to help uplift the software community through pattern writing. Toward this end, the Hillside Group started the Pattern Languages of Programming (PLoP) conference series; variations are now being held around the globe. PLoP conferences follow a highly collaborative style based on “shepherding” before submission and peer based feedback workshops during the conference. Many successful pattern papers and books have emerged from this process.
In 1994, Erich Gamma and his colleagues known as the Gang of Four (GoF) published "Design Patterns: Elements of Reusable Object-Oriented Software" which launched the concept of patterns to a broader audience. It is interesting to note that in a discipline that is known to experience continual change, these principles are still useful and this book continues to sell more than 20 years after publication. This success of patterns within the software community led to a lot of early hype about patterns.
As noted, patterns in software engineering draw inspiration from Christopher Alexander, who is recognized as an important building and urban planning architect (Salingaros, 2000). Alexander used patterns to document successful design practices in the architecture profession. His focus on proven solutions rather than new and unique ones was motivated by his observation that modern day buildings and towns do not approach the beauty of the historical past. He notes that the vast majority of architecture since the end of World War II has been dehumanizing, of poor quality, and lacking all sense of beauty and human feeling (O’Callaghan, 2001). This created his distaste for simply fashionable architecture and a preoccupation with the search for a design approach that generates beautiful structures (Grabow, 1983).
Patterns are generally defined as a three part construct. First comes the 'context'; under what conditions does this pattern hold. Next are a 'system of forces'. In many ways it is natural to think of this as the 'problem' or 'goal'. The third part is the 'solution'; a configuration that balances the system of forces or solves the problems presented. Alexander explains that a pattern is both a thing and a process for creating that thing. It describes what you have to do to generate the entity which it define
Christopher Alexander coined the term "PatternLanguage" to emphasize his belief that people had an innate ability for design that paralleled their ability to speak. Chris's book A TimelessWayOfBuilding is the most instructive in describing his notion of a pattern language and its application to designing and building buildings and towns. A pattern language is first a set of patterns, but second it can impose some ordering constraints when the patterns contain pointers to patterns that help complete them. But this is not typically enough. Alexander uses the idea of a “sequence” to teach designers and builders how to construct a coherent artifact. Without some ideas on how to sequence one’s design thoughts, the underlying pattern language is likely to be mostly a diagnostic tool. For an extensive example of the application of patterns, see Chris's other book A Pattern Language. Here he presents over 250 individual patterns that go into the making of successful towns and buildings (in the context of a western, even North American, environment).
Many people accept the definition of a pattern as a proven solution to a problem in a context. Each one documents a reusable solution, encapsulates knowledge about successful practices, and provides information about its usefulness and tradeoffs. Some patterns have been catalogued into collections or pattern libraries. Examples include http://developer.yahoo.com/patterns and www.securitypatterns.org . Many companies, including Amazon, Google, IBM, Lucent, Microsoft, Oracle, and Siemens, have written similar pattern collections, some of which are available in books and on websites.
There have been many collections of patterns written, often where authors attempted to weave them into a language. Connected sets of interrelated patterns building on each other can start to form a pattern language, which support a generative, domain specific development process [20 years]. More recently there has been a lot of work toward building pattern languages and improving pattern mining and validation. For example, the Iba lab has outlined Patterns 3.0 pattern languages [IBA] for guiding human action. Additionally the IBA lab has done novel work on pattern mining [refs]. Another example can be found in the Fearless Change patterns which began to build a process for evolving an organization during times of change. Fearless Change began to connect their individual patterns into a language by resolving negative consequences in each pattern with a recommendation for new patterns to use. This is the beginning of sequencing for their patterns.
Patterns are also being successfully used in other fields, such as design, media, arts, IT, management, innovation, music, pedagogy, social activism, social innovation, and grassroots movements.
To find out more about what a pattern is, click on the links below.
- Patterns and Software: Essential Concepts and Terminology
A good introduction written by Brad Appleton - Doug Lea's contributed checklist to help write patterns.
- A Pattern Language for Pattern Writing by Gerard Meszaros and Jim Doble.
- Learning Guide To Design Patterns
How to study and setup a group that studies Design Patterns, by Joshua Kerievsky.
- Hillside Fellowship Award
- PLoP Conference Proceedings
- Patterns for API Design
- Pattern Languages of Programing
- Security Patterns in Practice
The Hillside Fellowship Award
The Hillside Fellowship Program was established in 2016 to recognize members of The Hillside Group who have made exceptional contributions to the Hillside community and to the Patterns community at large. The title of Hillside Fellow denotes an outstanding member who has consistently and repeatedly:
- provided excellence in contributions to the patterns body of knowledge
- advanced the arts,
PLoP Conference Proceedings
After the PLoP Workshops, writers are encouraged to modify their papers and submit a final version. The final versions are collected and submitted to the ACM Digital Library. The versions are also available from the conference website.
Conference Proceedings (ACM Digital Library)
Some of the PLoP accepted papers have been published on the ACM Digital Library . The program committee will
… Read MorePatterns for API Design
" Patterns for API Design " by Olaf Zimmermann, Mirko Stocker, Daniel Lubke, Uwe Zdun, and Cesare Pautasso
This book is for any domain, technology, or platform
- Identify and overcome API Challenges
- Size your endpoint types and operations
- Design request and response messages and their representations
- Refine your message design for quality
- Combine patterns to solve real-world problems and make
PLoP™ (Oct 13-16, 2024)
Check out the main PLoP Website for more information and details!!!
Read More
Security Patterns in Practice
Eduardo Fernandez's new book " Security Patterns in Practice: Designing Secure Architectures with Software Patterns " has been published.
It is the result of 14 years of producing security patterns with students and colleagues. Almost all of these patterns went through PLoP, EuroPLoP, AsianPLoP, or SugarLoafPLoP. Many of you have participated as shepherds or workshop commentators, the book owes something to
… Read More