This is BrainLog, a blog by Dan Sanderson. Older entries, from October 1999 through September 2010, are preserved for posterity, but are no longer maintained. See the front page and newer entries.

March 13, 2010

Processing's Ben Fry on the iPad and closed platforms. Yet another, but coming from a prime proponent of making programming accessible.

A couple of additional thoughts from me: Video game consoles are closed platforms, and I distinctly remember being upset and disappointed that there was no way for me to make my own games. This was, of course, because I already knew what it was like to be able to do so with other systems. As with the rest of the grew-up-with-open-systems-and-made-a-career-out-of-it crowd, if all I had access to was closed systems, I'm not sure I'd even be curious how they work, let alone be motivated to make my own.

But the iPad is hardly the end of open systems. I'm reminded of another platform that was just closed enough to be out of my reach: Microsoft Windows. To program Windows, you need commercial software that includes programming tools, the system libraries, and documentation. I can't speak definitively about the current state of Visual Studio, but during my formative years, even the steep student discount on Visual Studio made it enough of an investment that I needed to commit myself to the notion before I had a chance to try it. At the same time, Linux was becoming accessible enough to uneducated but motivated college students that it was the natural choice to fulfill my interest. I never developed any Linux desktop software—I'm a web app guy—but it was enough of a runway to build the momentum I needed.

It's awesome and necessary that Mac OS X includes professional development tools bundled with the operating system. Even the iPhone/iPad development tools are easy enough to legally obtain (it's a free download from Apple), so they get props for that. Strangely, I'm not sure that's enough to make them as accessible to neophyte programmers as the open systems of olde that ostensibly launched all our careers. It may be more important that a given mainstream platform be able to run a text editor and a Python interpreter than it have a C compiler and full OS libraries.

So there are many things that alienate people from controlling their computers and learning how to program. An important one in the iPad discussion is distribution. In what way does not being able to share arbitrary software projects with others inhibit my ability to develop an interest and skill in programming? I'm not saying there's no connection, I just can't answer the question directly from experience. Rather, it seems likely that closed development platforms encourage closed development communities—and I'm not even thinking of the original iPhone SDK terms of service that prohibited discussion of the SDK in public.

But I think what people are mostly thinking about with regards to the iPad is that an iPad-like device may eventually be someone's only computer, and you can't program an iPad from an iPad, at least not right now. I wonder how quickly that will change, and I wonder how big a role web applications will play in making that happen. We're a hair's breadth from a browser-based IDE and cloud hosting.