Model, View, Control Freak – Part 1

Introduction

I’ve been having an argument with myself for years over my reluctance to use third party code in my work. I am referring to everything from simple JavaScript libraries to complete CMS platforms. I’m not saying I never use third party code, but I use a hell of a lot less than most people. This makes me arrogant, blinkered and quite possibly a dinosaur – or – perhaps it makes me experienced, focussed and a veteran.

On any given day I may be feeling guilty about my attitude; or smug and satisfied. Yesterday I was cursing the [generally wonderful] Smarty template engine, and feeling smug that my favouritism toward my own code was righteous. The day before I was interviewing a chap about a possible Drupal gig and was feeling guilty that I had so far ignored Drupal, to my detriment.

Regardless of right or wrong, it seems that third party code is more relevant in web development than ever before, and the trend is fairly clear. However, I don’t believe this is a simple, black and white issue. It’s a huge topic, and I have so many arguments, anecdotes, rationales and personal feelings, that I’m going to split this post up into a series just to stop my brain exploding. I’ll kick off with a brief synopsis of what I see as the status quo.

One CMS to rule them all

The current state of play (as I see it) is that the vast number of open source projects out there are slowly simmering down to a handful of de facto market leaders. Just as web giants seem to be slowly conglomerating into monopolies, (one true search engine, one true auction site), so I see this happening with code libraries. Drupal seems to be the definitive CMS for PHP, jQuery the definitive JavaScript library, PaperVision the definitive 3D engine for Flash. Of course there are plenty of alternatives, but the leaders are more in the lead than I have ever witnessed.

From a business perspective there are obvious advantages to this ubiquity: Our clients at Public often ask if we can develop their site in Drupal, and some have even stipulated that their “preferred” JS library is jQuery. I think this probably has a lot to do with PR; are the successful open source libraries really the best ones? or are they just the best marketeers? Does a one-size-fits-all approach really work?

The text book benefits of building your web application on top of a popular third party system are not rocket science:

  • Massive time saving;
  • Mature, tested & maintained;
  • Well documented & large support community;
  • Not tied to the original agency/author;

You don’t need an expensive consultant to tell you that, but is this all there is to it? I don’t think so, and that’s what I’m going to ramble about in further posts. Along the way I shall be questioning my own reluctance to use third party code, and perhaps I’ll have an epiphany and change my ways for good.