Friday, May 06, 2005

It was probably little over three years ago that I became familiar with the phrase "Gang Of Four", and their seminal book on design patterns (and a few months ago, I was aware of their namesake's seminal punk-rock career, but that isn't the point), having read several glowing reviews praising it to the sky. To my shame, it was only recently that I became acquainted with the patterns themselves, and at first I was unsure, but I quickly appreciated the elegance I saw in some of them. The GoF provide some very neat, concise statements that make one think all software development should be easy - "find what varies and encapsulate it", for instance. The reality is that this is not so easy to do, but it's still nice to think of software in these conceptually easy, clear ways. Careful to try to balance this giddy hysteria, I turned to the Lisp crowd (as one would), and came across this article that suggests that the famous Visitor design pattern may be redundant with CLOS. It reminds me of how there are such different worlds, even in the microcosm of software development, and so many schools of thought. By far, the Lisp crowd seems to be the place to be; darn it, they're so smug! I printed out a book on Lisp a year ago, but I still haven't read it (I wish I had, just so that I too could sit smugly by myself and treat design patterns as cute playthings for other developers!)

I suppose this ties in with the post on LSP - I remarked to someone recently that I didn't see the point of the UML design we were doing, and that most of it seemed tedious formalization of trivialities. I was under the impression that there weren't any noticeable benefits in terms of the resulting software when these designs were undertaken. But looking at the various design patterns, and seeing the problems they solve, I realize that I was looking at the issue from the wrong angle. My notion of design was very simplistic, and indeed my concept of design certainly made it a pointless chore. Yet it took some examples of sheer succinct elegance to make me feel that there was more to the picture. I suppose I run the risk now of being overly eager to apply these new tools, but that comes with the territory I suppose - it will take time and experience to determine the extent of their applicability. Interesting times are ahead for the developer in me!

No comments: