Throughout the progression of the human race, evolution of language has allowed a diverse expansion of growth in ways of communication. This expansion has enabled communication with eachother as well as inanimate objects such as the computer. Progression of human to computer interaction has matured to a grammatical foundation programmers use to orchestrate instructions the computer needs to fulfill; otherwise known as “coding”. Design patterns advances this concept by providing descriptions to programmers for communicating solutions to a computer in multiple different methods; a grammatical construct.
Throughout the course, we have engaged in the ramp up to our final project carried out in Meteor. I feel we have been exposed to multiple design patterns while learning the new languages of each module. When transitioning between languages, assimilating to the different coding styles forced a conceptual shift of how we handle our coding habits based on the platform, objective, and asset utilization we want to achieve. This module resonates to me that, much like the formalities of our spoken language, those exposed to the philosophys of computer interaction like Christopher Alexander saw fundamental concepts practiced and engineered formalities regarding its application.
All innovations will receive scrutiny and criticism, design patterns are not exempt as seen in sourcemaking.com. Skeptics outline problems with the theories attempting to discredit the innovation which are met with argument from people like Peter Norvig. Though disheartening, these reviews are necessary to close as any inconsistencies further strengthening or weakening the theory. Considering the traction the concept of design patterns has gained through logical demonstrations, I feel these criticisms will provide a well rounded platform for making the design pattern concepts stronger and further expand its umbrella of applications.