ZachHolman

The Clean Slate

May 23, 2010

There's a certain allure to iPad and iPhone development right now. It's the idea of the clean slate: there's no legacy support, no underlying codebase, no real concepts of former implementations. For every app that is tied to an existing website or business, there's an app that is forging out on its own, with no ties to anything to come before it.

This doesn't happen too often. The iPhone was the first real platform change in decades. You could always do the Big Rewrite every time OS X bumps a version or Windows moves from 95 to 98, of course, but existing concepts and methodologies subtly squeezed innovation, to say nothing of the temptation of leveraging existing codebases and libraries in an effort to just "get that prototype out fast". We're in the middle of a time more free than we've seen in ages. It's full of frustrations, creativity, opportunity, and failure. But it's exciting.

Shipping entirely new platforms is a lost art. It just doesn't happen much anymore. Everything in the Windows, OS X, and Linux worlds have been incremental for the last decade or two. Sure, there's always framework changes, new features born, old features thrown away, but it's rare to sit back and say "Yeah, this is an entirely different way of thinking". It doesn't just take innovation; new platforms require scale. Your new library that you pushed last weekend to your six collaborators, no matter how killer, doesn't count. A platform needs scale to become significant.

It just doesn't happen often. But when it does, it's exciting. The iPhone platform is the latest and greatest example. Whether the ideology espoused by that platform will ultimately win out is irrelevant; that there's suddenly such a big push for a different way of computing is what's important. Like it or not, it's one of the biggest changes since the 1980's.

But that's not the only example. I remember my jaw dropping during the shift from Super Nintendo to Nintendo 64: the games enabled by the new platform itself were completely different. Far more immersive, far more potential. Sony eventually took the crown, but at that point everyone could see the game itself was changing. It was incremental from there, until the Wii broadened the industry's horizons further.

Similar things happened in the web front: frameworks were largely heavy-Java-Spring-ish or interesting-but-closed-source until Ruby on Rails came along and floored everyone. It wasn't just its innovations that were important: Rails brought things to scale, and that's what made it a game changer. One of the early complaints about Rails was that it was all marketing, insinuating it was just fluff, just a toy. But the marketing — whether you like it or not — was a huge part of Rails. The buzz surrounding the project scaled the reach of Rails, spreading its ideas far and wide. Once this new platform — an ideology, really — came around, it changed the landscape and dozens of frameworks all over the language globe grew and blossomed, based in large part to the validation of certain ideas Rails adopted.

I think we're starting to see this now. The iPhone's brought with it a lot of cool new ideas, new lines of thinking about how a phone should be made, how a computer should be made. Android's picked up on this and forked themselves in a slightly different (but very analogous) direction. It's hard to imagine living today with the phones planned by Motorola of 2003. The phone market just wasn't evolving from their stubborn mindset back then. But today, everyone, regardless of carrier, has benefited.

This stuff doesn't happen often. Pretty exciting to be in the thick of it right now.