Archive for April, 2010
iPad: Taking away our kids' fingerpaint
Sunday, April 11th, 2010The iPad is hot. It’s a stellar product, with slick hardware and software. And Apple will make it better, much to their credit. Unfortunately, they’re making it a closed device: you must go through Apple to write software for the iPad, and forget about even replacing the battery yourself. It’s a sealed box, and Apple controls everything about it. They see this as key to keeping their (incredible) user experience today, but I wonder if they’ve thought about the longer-term implications. I believe that they’re depriving themselves of their lifeblood in ten years’ time. It’s not just the iPad, either: it’s the increasing prevalence hermetically sealed hardware and software. But I’m going to pick on Apple because they’ve done a total about-face from their origins.
Apple is putting a (relatively steep) barrier to entry on getting content on their devices. I understand why they think it’s important: to maintain that trademark slickness, they can’t let Just Anybody in. Considering that they built or purchased every component in their system, that’s their perogative.
But they’re shooting themselves in the foot. Not today, with all the rabid Free/Open Source fanboys; we’re a tiny drop in the bucket, even with the ripple effects of our righteous indignation. Instead, they’re crippling the next generation of creative programmer, or at least pushing them off to other platforms. Those creative types are the people who make Apple’s own products so great, and are the people who build innovative software on their platform.
My generation of programmers will talk about their first programming language with an acute nostalgia. Most of us learned to program using a language called BASIC, which teaches you all sorts of bad habits. It’s the programmatic equivalent of learning to drive in a car with half a steering wheel, a missing rear-view mirror, and no turn signals. But every platform back then came with BASIC, or had one easily available. Even if you didn’t have that, your middle school graphing calculator came with a BASIC. And that’s how we learned to think like a computer (or at least, as close as you can in BASIC).
From tweaking the BASIC programs we swapped with friends on floppies, we went on to build other creative things. We wrote text adventure games, graphical animations, and programs to work our algebra homework for us. BASIC opened up a new venue for creative expression, and we kept at it. Giving a kid a BASIC is like giving them pastels or tinkertoys: the initial products are rough and silly, but they’re forming a critical foundation for later development.
With new, hermetically sealed platforms, I fear we’re going to miss kids during their “critical period” for learning to speak programming languages. We’ll have a whole wave of programmers that didn’t get the tools to program until they were freshmen in college. Programmers who had that experience are working in the industry today, but they started at a great disadvantage, and it shows. They make great “engineers,” writing software to match a specification using standard tools they learned about in books. They are not, for the most part, the kinds of people who really innovate in the discipline. Would you expect exciting new paintings from someone who didn’t handle a paintbrush until they were nineteen? Or dynamic buildings from someone who hadn’t built so much as a pillow fort before college?
That’s what we’re forcing upon this generation of kids. We’re taking away their fingerpaint and their Lego, and I fear we will reap what we sow in a decade’s time. Apple and Microsoft are both pushing towards more closed platforms, and many vendors are on-board with the effort, or at least are complacent about it.
I’m especially disappointed with Apple, though: their first mass-produced computer booted up to a BASIC prompt.