Web development and the order of things19 Apr 2014
I got the chance to visit the Picasso museum in Barcelona in April 2014. Here I saw the collection of Picassos interpretations of Velasquez "Las Meninas" that he completed during the later stages of his career.
During my visit to the museum I saw some dutch high school students that had been given the task of sketching their own version of Picasso's version of Velasquez' work. It was fascinating to watch - it looked like that some of them were approaching the task with a high level of energy and some of theme seemed quite indifferent to the task.
Sitting there, watching students create an interpretation of an interpretation I realized that I lack ways to describe how software development ideas are formed.
Software development, like art, is underpinned by tradition. The software development community has developed a tradition of capturing and sharing ideas via "Software patterns" - some of the most influential being captured by "The gang of four" in "Design Patterns: Elements of Reusable Object-Oriented Software" and "Patterns of Enterprise Application Architecture" by Martin Fowler.
But I have come think of the limitations of design patterns. The most striking way I can describe the limitiations is to describe how hard it is to express how the visual vocabulary from Velasquez "Las meninas" is carried over to the Picasso version. These are two completely different works of art but it is obvious to the onlooker that the scene is the same and the ideas are the same, but that they are expressed in different ways. It seems to impossible to form an exhaustive list of patterns to describe to describe Velasquez '"Las meninas" that can be used to describe the Picasso version. But when you stand there and watch it seems obvious.
Another way to describe the limitations of design patterns would be to point how hard it is to describe the success of Ruby on rails and how it has influenced modern web development. Rail encompasses most of the popular enterprise design patterns, but the Active Record in particular. Rails stands as pillar stone in the formation of ideas for modern webdevelopment frameworks today - I would consider it the "Las Meninas" of web development. I see the inspiration from Rails in most of the other web frameworks I use today. Granted, some of the ideas expressed in Rails can only be expressed by a combination of tools - e.g I would choose a combination of express and yeoman as the "Picasso version". Today - Rails itself and frameworks being inspired by it are hardly comparable - but when you sit there and watch , the feeling is the same.
Every now and then we talk of a "paradigm" shift in software development. I do not think that the word "paradigm" is adequate to describe the plethora of tools that we have available today being inspired by Rails. I think that a word could be used is "Episteme" as used by Foucault in "The order of things" . In my understanding of the word it better expresses the unconscious choices we make due to our cultural settings and influences ( our "epoch").
I am just starting out reading the works of Michael Foucault . The introduction to "The order of things" where he describes "Las Meninas" in great detail fascinates me. I look forward to the journey. I hope to find new ways to describe how software ideas are formed.