Have you noticed lately how the word pattern seems to be creeping into
general musings and dialogue more and more? Like name-dropping, it's
consciously woven into the fabric of the conversation as a way to assert a
certain level of understanding and credibility. Mention the latest design
pattern and suddenly your peers will see you as a genius of software
engineering, "...you see I have employed the Decorator pattern for this
particular class..." While you're fighting the urge to give them a good slap,
allow me to let you into the big secret. There is none!
When perusing various article submissions for our beloved magazine, I am
constantly surprised to see how laden down with buzzwords the proposals are,
as if vainly attempting to show off their superior knowledge by dazzling our
editors with fancy acronyms and big words. I had an exchange with one
potential author, who I would class as the typical design-pattern snob. I'm
sure you've come across them at some point. They're the ones who love using
this terminology, and chastise anyone who doesn't understand or uses an
To that end I had to do something I had reached the saturation point.
Although I am a young fellow, I have to hold my hand up and say I was
educated in an era before design patterns were even invented. Yes, it's
true, such a time did exist. In my day they were called data structures. Now
admittedly, this doesn't sound half as sexy as design patterns, but they
were the exact same thing without today's buzzwords.
To all those developers who are getting frustrated with the constant use
of the word patterns, and who feel they may be missing out on some great new
movement, I say to you: don't panic. They're just repackaging the stuff
you've been doing for years in a format that can be openly discussed. For
example, the class you designed that can have only one instance created in
the pattern world, this would be known as a Singleton class. Easy, eh? Not
shrouded in as much mystery now. A design pattern does not specify any code,
nor does it even specify a template, merely a way of doing something. A
The next time you get into a discussion on design patterns, be it at an
interview or over the water cooler, stay calm, and merely ask the offender
to explain what exactly he or she means. I would guess that 9 times out of
10 you've used it many times and didn't even realize you were a design
. . .
Last month I highlighted how delighted I was with a great client-side
technology, www.thinlet.com, and how it was a wonderful example of how Java, in the right hands, can really rock. This month I have found another. It's not a tool for Java developers, however; it's more for the masses. Check out www.freedomaudio.com, a lightweight Java audio tool for listening to
streaming MP3 and Ogg files inside your browser. It works very well, and
Kendal, the man behind it, has put a lot of effort into writing his own
libraries to ensure that they're small, as opposed to using some of the
bloated official Java APIs. Yet another shining example in which small can
be beautiful, and creativity and engineering can prove that Java is still
the only one to win against Flash and other plug-in technologies.
Keep up the good work, people. We are proud of you. Your community needs
When not answering your e-mails and working on the next issue of JDJ, Alan
heads up a small team dubbed the "Thunderbirds of the Java industry,"
providing on- and offsite rescue for Java projects in trouble. For more
information visit www.javaSOS.com.
You can also read his blog: http://alan.blog-city.com.