February 3rd, 2010
A Plea for Developer Unity
This is an a typical Labs post, as it doesn’t really concern specific code at all. It’s more of a wake up call. It starts with the same thing you’ve been reading about everywhere — the iPad. It ends somewhere much different and much more important for our industry. It’s a conversation about what we’re doing as experts in this field and how we move forward together.
The announcement that the iPad won’t support Flash kick started a lightning storm of opinions. The alleged issue at hand is that the iPad doesn’t support Flash. This is a bad thing. It’s a bad thing for the same reason that it also doesn’t support Google Chrome, Firefox and (even) Internet Explorer. It’s a bad thing because it doesn’t support Unity and Java. It’s a bad thing because it supports what Apple wants it to supports and that’s all. Which isn’t to say that we don’t love making Apple applications… because we do. It’s just that the iPhone app store was an incredible leap forward from the previous generation of mobile applications and so was rightfully recognized as revolutionary. The iPad isn’t revolutionizing netbooks, it’s devolving them back to a fully closed era. One environment, one language. A cumbersome, time consuming distribution process.While you can certainly be expressive using Objective-C and with the iPad, the decisions on how a user engages with something we make should be left to the experts.
We found a much more localized version of the infighting start to happen when we built a Silverlight site for Victoria’s Secret and posted our thoughts. While the conversations in the comments were fascinating, we noted internally here how there didn’t seem to be any constructive dialog between the “Flash community” and the “Silverlight community” despite the fact that they were commenting underneath the same thread. It’s as if the blog post was a middle school dance and neither side wanted to even make eye contact for fear of cooties.
But I’m not interested specifically in the iPad not supporting Flash anymore than I am trying to convince “Flash developers” that Silverlight is more than some evil ploy by Microsoft to supplant their favorite plugin. I want to focus on the fractured nature of our community and how to [finally] get over the bickering.
Try to imagine these biases manifesting themselves in other aspects of life. Carpentry. Should we always use a power drill for everything… even when a regular old fashioned screwdriver might suffice? And what of a hammer?! A jigsaw? Sure, we’ll be able to build a mighty fine house using just a limited selection of tools. But what’s the best decision for the house? You might meet a lot of carpenters who will tell you the power drill is a great invention, but you’ll never meet a single one who will tell you it’s the only tool for the job. True expertise in a craft is where bias for a specific execution is weighed against all the possible ways to do the job right.
We’re experts in our craft. You and I. We are first and foremost experts in interface. Our job is more than just understanding how to make things, it’s understanding how those things will be perceived by the people using them. We need to collectively begin to understand that technologies are not things you get behind and root for to “win,” they’re solutions to different ways of giving people things to use. There’s no good technology and no bad technology.
So how do we resolve our differences? Well, we have a complicated community. Maybe we should get together over a massive game of dungeons and dragons and hammer it out. I’d love to read constructive suggestions in the comments and in blog posts in the future, as I won’t even pretend to believe ideals alone are the answer.
My sense? Maybe we should start with semantics. We don’t have a single “Flash developer” at Big Spaceship. In fact, we grimace at titles like that. It’s a pet peeve to be called a “Flash guy.” We’re programmers. We’re builders. We happen to be good at (and love) Flash, but we also happen to be good at (and love) a couple trillion different other technologies. And that list grows as the spectrum of possibilities grow. The key to that is we NEVER saw ourselves as Flash developers. From the interview process on, we look specifically for people who will look beyond a specific platform and focus on making beautiful things work for the clients who come to us to build and for the users they want to reach. We believe in strategic thinking and great design and pushing the limits. Nowhere do we say it has to be done in technology X or programming language Y in order to be a successful and engaging project, and we don’t believe the users who engage in the projects we put out there do either.
Once freed from the constraint of being a “[Insert your preferred technology of choice] programmer”, your eyes open to the whole spectrum of technology. Not the Internet you’re rooting for because you know it best, the whole thing. The potential to engage people in a new way can only be an incredibly exciting adventure. Try Unity. Try JQuery. Try Flash. Try Silverlight. Yes, they’re going to have different syntaxes and processes. It’s fair to say that anything outside of your comfort zone is going to be frustrating to learn. Over time, you’ll come to realize that each language was developed a specific way to have specific strengths and weaknesses, and you’ll find knowing them all will help you be a better developer. Which makes you a better expert. Which only helps your users. So… how does it hurt to be closed minded to anything?
It hurts in a lot of ways… ESPECIALLY financially. The company that is capable of in-house production of all these different technologies is the company that doesn’t have to spend the money outsourcing to someone who does. It’s the company who can stand truly stand by the principle of making the right experience for their users, since they are not limited to merely the technologies they are “good” at. And they’re the company that is most flexible for the next big thing to drop in real time.