John Allsopp of West Civ fame has a thoughtful article suggesting that work needs to begin in an organized way on the idea of web patterns. dog or higher: WebPatterns and WebSemantics is his initial post on the topic. He’s also starting a site on the topic at webpatterns.org.
Here’s an excerpt: “In a nutshell, a pattern describes a problem which occurs over and over again … and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice (my emphasis).
“The essence of a pattern is that it articulates a problem, then considers how that problem might be solved. It does not dictate a single solution, rather, a strategy for solving the problem.
“The idea has been taken up in a number of computer related fields, most famously in object oriented analysis and design, the seminal work there being Design Patterns Elements of Reusable Object-Oriented Software, by "the gang of four" – Gamma, Helm, Johnson and Vlissides. In this context, Brad Appleton observed, Fundamental to any science or engineering discipline is a common vocabulary for expressing its concepts, and a language for relating them together.
This really struck a chord with me. Can web design and development today rightly be called a discipline? Or is it, as I suspect, a practice in the process of becoming a discipline. If we consider Appleton’s observation, do we have a common vocabulary for expressing [our] concepts, and a language for relating them together? We certainly have technologies like HTML and CSS (though we still struggle to even use the terms "tag", "attribute" and "element" correctly – I’m still hearing "alt tag" frequently in my travels). But what about higher order, more complex structures and strategies? What do we call the parts of a page we use over and over again? What names do we have for particular navigation strategies (such as hierarchical trees, linear progressions through sections, and so on)? My survey, as well as a more detailed, though much more narrowly focussed one by Francois Briatte suggest that while it’s clear that there are many structures we use over and over again, we lack that common vocabulary to talk about these structures, and to relate them to one another.
“In short, we lack a pattern language for the web.”