Unavailable

Design patterns are only available to some people. Yes, the GoF book[GoF94] is available to buy, and online videos cover most of their patterns in detail from multiple sources. But the greater scope of design patterns is not available. I need to explain a few things about availability, and I will start by explaining what it means to be unavailable for an individual. Here are some reasons why a pattern, even if you know the name, might not be available to you specifically:

  • You cannot afford to buy the book in which it is found
  • You are not fluent in the language the pattern is written in
  • You learn best by video, but those available lack accuracy or credibility
  • You can’t buy the book because it is out of print
  • The library withdrew the book out of lack of interest, so borrowing it is impossible

If you don’t know the name of the pattern, it will be unavailable to you because:

  • You’re unaware of other design pattern books, so you don’t know to look further
  • You’re unaware of the relevant book, so you can’t discover the alternative pattern
  • You cannot search for them anywhere to find an appropriate pattern for your unusual or niche problem

A source of information is unavailable to an individual when any of these reasons apply. You might want to learn, but the time investment in finding a good video series is daunting compared to a cheap book covering the essentials.

When researching for this book, I found Christopher Alexander’s works relatively easy to acquire. Most are still in print. Those that were not, were not too expensive to buy second-hand, except for one book[AFo21CA93] on Turkish rugs1. But when it comes to books on software design patterns, many were out of print and only a few of the longest-lived titles were available.

Being out of print and unavailable in libraries is an underlying problem for the software design patterns movement. The lack of interest in the extended pattern collection reduced the print runs of books on the subject. The success of the GoF book perpetuates the printing of its first edition. This lopsided success causes us to see search results such as ‘there are 23 design patterns’ and receive hundreds of hits for videos explaining them as the design patterns of software development.

With so few people knowing how much information is out there and the information being so difficult to get hold of and varied in quality, you can understand why people don’t use these books as a reference more often.

I believe we need a place that contains many more of the patterns we know about. It needs to help people find patterns matching their contexts. I would suggest something dynamic so that we can maintain the patterns, as they need to be safe to use, and safety is relative. But each pattern needs to be organised by the problem a person has and where they have it, not stored according to the funny name for a clever solution some bright spark came up with one day and wanted to share with the world.

1

No, seriously, it really is about rugs. And yes, it’s definitely worth reading if you can find a copy.