Orchestrating the web

A Bit of Trivia

Here are two facts about me that you may not know: First, I am a big Star Wars fan, and secondly I have played the trumpet since I was in the 2nd grade. So what? Well, I just wanted to give you a frame of reference for this article, to know where I'm coming from. I've always been a big fan of large orchestral pieces, such as the Star Wars and Jurassic Park soundtracks.

Recently, an article over on QuirksBlog got me to thinking. The premise of the article is that both client-side coders and server-side programmers are both inept when it comes to writing truely unique and effective Ajax web applications. While he is somewhat pessimistic about it, he sees the only solution will be when coders, designers and programmers star working together better. I couldn't agree more.

However, his article seems to have stepped on quite a few toes, the reactions of which are exemplified by the response on Ajaxian. I think that both make valid points, and would like to further flesh out what my feelings are on the matter. Allow me to share a metaphor that has been ruminating in my head for the last few weeks.

Strike Up the Band

In any given band or orchestra, there are not only many different instruments, but many varying levels of proficiency. This is evident by the rank of First Chair in each orchestral section. The term stems from the arrangement of chairs at a concert, which are in a semi-circle. If you are the best at playing your particular instrument, you sit closest to the audience, on either end of your arc. Thus the term, First Chair.

Growing up, the highest I ever got was Second Chair. On one particular occasion, a friend of mine who had less experience than me, whom I in fact had helped to learn the trumpet, was given First Chair. It ate me up inside - Who did he think he was, out-ranking me? Well, he was better, simply put. He had a natural aptitude that eclipsed the skill I had amassed through practice. Needless to say, everyone else recognized it but me.

Now, when playing second part, you usually do not have the primary melody, but perform a supporting role, which tends to be a few notes lower than the lead. As Second Chair, I could've let my jealousy get the best of me and try to out-play the First Chair, but to what end? The song would be ruined.

Harmonizing

I think that this happens far too often on the web. We are all so eager to take center stage that we sometimes forget that our purpose is not to perform perpetual solos, but to produce beautiful music through a concerted effort. Synergy is the name of the game, not hogging the spot-light. Besides, playing a solo is designed to push the extent of a player's talent, and leaves you physically exhausted afterwards. It is necessary for the rest of the group to maintain the melody while the First Chair regains composure.

Think of it this way, a guy playing the saxaphone on the street for money may very well be every bit as good as a professional in an orchestra. Yet, while people throw quarters to the first guy, these same people pay hundreds of dollars to go see the other play. Why? The second guy has about 50 other talented people around him. How? He's learned to play in harmony, and realizes that he sounds better with the support of his colleagues.

The Musicians

XHTML

(X)HTML is the conductor, the oldest member of the group, setting the pace for the rest. Without it, there is no orchestra, likewise because modern web pages started with HTML, it is the key essential for communication, everything else plays a supporting role.

CSS

I am biased here, but I'll say that CSS is like trumpets. Trumpet players historically think they're the most important part of the band, but shh - don't tell them otherwise. Likewise, CSS plays an important role in web pages, and in fact a decent looking site can be only XHTML and CSS, but it lacks depth.

Flash

Flash is like loud percussion. Used sparingly, it can be a great addition to a web page, but because of overuse and abuse, it gets a bad reputation for being a distracting clanging cymbal. Yet, every now and then, something comes along like the new Yahoo Maps, and really gets our attention.

Server-Side

Server-side programming languages like PHP and Java I would compare to tuba players. Hear me out. They tend to be overlooked and under appreciated, pushed to the back of the orchestra, nearly out of sight. A First Chair tuba can expect to be just as (in)visible as the rest of the group, because they sit behind all the other high-pitched instruments. Yet, without tubas, there would be no depth to the performance. They add robustness.

JavaScript

I would compare JavaScript to stringed instruments. It is a bit hard to classify in the typical band setting, because it is not a wind instrument. Yet, when used in conjunction it can produce great results. As a guitar, it can rock the show and take the solo. As a violin, it can lend a support role and improve the overall flow of the piece, such as the case of degradable Ajax.

Playing Nicely

So, what is the point of this allegorical article? Simply this: No man is an island. Or, in the words of Obi-Wan from Episode I: "You have a symbiotic relationship. What affects one of you will affect the other, surely you must see this." It's time we quit knit-picking at each other and do what was proposed on QuirksBlog: Start teaching each other what we know, and develop overlapping skill-sets. Then, and only then, will true innovation occur.