Even One Word

The Blog of Nathan St. Pierre


Pirates vs Ninjas Thursday, January 3, 2008

Before I wade through the massive pile of projects that have become a part of my daily work routine, I usually check my e-mail, Facebook, and Myspace to make sure that I'm up to date on everything before I dive into forcing designs to work on non-compliant browsers. When I logged in this morning I had a note from one of my programmer friends, and something dawned on me that I hadn't really fully formulated in my mind.

Working in the web world, or on video games, or anything involving developing applications with user interfaces, is potentially the eternal struggle between Pirates and Ninjas.

I know, I'm hitting this fad at the end of its popularity, but it's something my friends and I have always argued about. In this world, the ones who do the coding are Code Ninjas, and the creative types are Design Pirates. How so?

Code Ninjas- When a code ninja does his job well, you will never see his code. He operates silently and stealthily, taking out objectives that are completely transparent to the user. You may be on a web application one day that you're positive is Flash-based, and you suddenly right click... AJAX has struck and you had no idea. Sometimes the code ninja's ideas for the way things look, however, is very spartan. All black doesn't fit every UI, and all those pointy square edges are great for shuriken but everyone who's ever read a magazine about "web 2.0" wants a rounded border. Sure, those tables are a lot easier to use to scale up a code wall, but it's harder and harder to validate code using tables as major layout items.

Design Pirates- A lot of people bring up the fact that in a fight, a pirate would lose to the superior skill of a ninja. Then again, there's only a loose pirate code, and the point of being a pirate is breaking the rules. It's all about presentation, theatrics, and looking good doing what you're doing. You want sleek? You'll have a crew of tightly bound buccaneers running a corvette through the harbor, and you'll see every bit of it validates as valid CSS. You want flashy? You'll get a lot of flash, with nice obscured borders and redraw boundaries so your eyes are drawn exactly where the design pirate wants them. After all, misdirection is 90% of a pirate's job. But sometimes the design pirates want something so flashy you can't even find what you're supposed to be doing. Sometimes the latest trendy colors make it so the user can't see the form they're supposed to be clicking.

And so, the fight goes on. Ideally, in a good environment, the battle eventually leads to a pretty sturdy application or overall website. If you're lucky, you're like me and you jump between camps depending on the project, and everyone else in your office is the same way. And if you're really lucky, all your employees don't end up dead from dangerous office pranks.