|Home » Learning Curve » Developers Workshop
By Mark Pilgrim. Reprinted as it's offline and still very important.
When DVD Jon was arrested after breaking the CSS encryption algorithm, he was charged with 'unauthorised computer trespassing'. That led his lawyers to ask the obvious question: 'On whose computer did he trespass?' The prosecutor's answer: 'His own'.
If that doesn't make your heart skip a beat, you can stop reading now.
When I was growing up, 'trespassing' was something you could only do to other people's computers. But let's set that aside and come back to it.
My father was a college professor for much of his adult life. One year, he took a sabbatical to write a book. He had saved up enough money to buy a computer and a newfangled thing called a word processing program. And he wrote, and he edited, and he wrote some more. It was so obviously better than working on a typewriter that he never questioned that it was money well spent.
As it happens, this computer came with the BASIC programming language pre-installed. You didn't even need to boot a disk operating system. You could turn on the computer and press Ctrl-Reset and you'd get a prompt. And at this prompt, you could type in an entire program, and then type RUN, and it would motherfucking run.
I was 10. That was 27 years ago, but I still remember what it felt like when I realised that you - that I - could get this computer to do anything by typing the right words in the right order and telling it to RUN and it would motherfucking run.
That computer was an Apple ][e.
By age 12, I was writing BASIC programs so complex that the computer was running out of memory to hold them. By age 13, I was writing programs in Pascal. By age 14, I was writing programs in assembly language. By age 17, I was competing in the programming event in the National Science Olympiad (and winning). By age 22, I was employed as a computer programmer.
Today I am a programmer, a technical writer, and a hacker in the Hackers and Painters sense of the word. But you don't become a hacker by programming; you become a hacker by tinkering. It's the tinkering that provides that sense of wonder. You have to jump out of the system, tear down the safety gates, peel away the layers of abstraction that the computer provides for the vast majority of people who don't want to know how it all works. It's about using the Copy ][+ sector editor to learn how the disk operating system boots, then modifying it so the computer makes a sound every time it reads a sector from the disk. Or displaying a graphical splash screen on startup before it lists the disk catalog and takes you to that BASIC prompt. Or copying a myriad of wondrous commands from the Beagle Bros Peeks & Pokes Chart and trying to figure out what the fuck I had just done. Just for the hell of it. Because it was fun. Because it scared my parents. Because I absolutely had to know how it all worked.
Later, there was an Apple IIgs. And later still, a Mac IIci. MacsBug. ResEdit. Norton Disk Editor. Stop me if any of this sounds familiar.
Apple made the machines that made me who I am. I became who I am by tinkering.
This post's title is stolen from Alex Payne's 'On the iPad', which I shall now quote at great length.
The iPad is an attractive, thoughtfully designed, deeply cynical thing. It is a digital consumption machine. As Tim Bray and Peter Kirn have pointed out, it's a device that does little to enable creativity...
The tragedy of the iPad is that it truly seems to offer a better model of computing for many people - perhaps the majority of people. Gone are the confusing concepts and metaphors of the last thirty years of computing. Gone is the ability to endlessly tweak and twiddle towards no particular gain. The iPad is simple, straightforward, maintenance-free...
The thing that bothers me most about the iPad is this: if I had an iPad rather than a real computer as a kid, I'd never be a programmer today. I'd never have had the ability to run whatever stupid, potentially harmful, hugely educational programs I could download or write. I wouldn't have been able to fire up ResEdit and edit out the Mac startup sound so I could tinker on the computer at all hours without waking my parents.
Now, I am aware that you will be able to develop your own programs for the iPad, the same way you can develop for the iPhone today. Anyone can develop! All you need is a Mac, Xcode, an iPhone 'simulator', and $99 for an auto-expiring developer certificate. The 'developer certificate' is really a cryptographic key that (temporarily) allows you (slightly) elevated access to... your own computer. And that's fine - or at least workable - for the developers of today, because they already know that they're developers. But the developers of tomorrow don't know it yet. And without the freedom to tinker, some of them never will.
(As a side note, I was wrong and Fredrik was right, and Chrome OS devices will have a switch for developers to run their own local code. I don't know the specifics of what it will look like, whether it will be a hardware button or switch or whatever. But it will be there, an officially supported mode for the developers of today and, more importantly, the developers of tomorrow.)
And I know, I know, I know you can 'jailbreak' your iPhone, (re)gain root access, and run anything that can motherfucking run. And I have no doubt that someone will figure out how to 'jailbreak' the iPad too. But I don't want to live in a world where you have to break into your own computer before you can start tinkering. And I certainly don't want to live in a world where tinkering with your own computer is illegal. (DVD Jon was acquitted, by the way. The prosecutor appealed, and he was acquitted again. But who needs the law when you have public key cryptography on your side?)
Once upon a time, Apple made the machines that made me who I am. I became who I am by tinkering. Now it seems they're doing everything in their power to stop my kids from finding that sense of wonder. Apple declared war on the tinkerers of the world. With every software update, the previous generation of 'jailbreaks' stop working, and people have to find new ways to break into their own computers. There won't ever be a MacsBug for the iPad. There won't be a ResEdit, or a Copy ][+ sector editor, or an iPad Peeks & Pokes Chart. And that's a real loss. Maybe not to you, but to somebody who doesn't even know it yet.