FROM THE EDITOR'S DESK / by Jason Snell
The appeal of 'Hello World'
When I first used a computer, back in the heady days of the early 1980s, programming was the first thing you did. Turn on a computer that didn’t even have a disk in the drive, and you could type out programs in a variation on BASIC. You didn’t need to learn how to start up a programming environment--the whole thing was a programming environment, from which you could play games or launch a word processor or whatever else you wanted to do.
And so I wrote programs. I got a BASIC reference book and learned how to use every single command of the Commodore BASIC on the Commodore PET, and then moved on to the richer and more expansive AppleSoft BASIC inside the Apple II.
Of course, everyone’s first program is “Hello, World,” or some variation thereof. Then came programs that asked you a question and returned an answer. I wrote a blackjack simulator in BASIC and sent it off to Compute magazine, which bought it for the vast sum of $20.
In high school I learned a whole lot more about BASIC by deconstructing the source code for the computer bulletin board I ran on my home phone line. The BBS was written entirely in BASIC, which meant that I could simply type LIST and see every single command that was at the heart of the program. Over a couple of years I wrote and re-wrote segments of that code in order to customize my BBS. Debugging and replacing someone else’s code taught me a lot, too.
When I bought a Mac, though, my experimentation with programming was over. I knew people wrote programs for the Mac--that much was obvious, because I was running them--but I was completely baffled about how that was even achieved. I learned a little Unix scripting in college, attached via modem to my college’s mainframe. It wasn’t until I started working at MacUser that I discovered AppleScript and started hacking together scripts that acted as connective tissue between different apps I was running. It was a little like editing the code of that bulletin-board software; I was mucking around with other people’s programs, trying to get them to do what I wanted.
It’s breathtaking to realize that programming is not even a secondary use of the computing devices used by kids today. And that’s why I’m so encouraged by the existence of Swift Playgrounds, the new iPad app being released for free by Apple this fall as a part of the iOS 10 release.
I’ve spent a few hours walking through the Learn to Code lessons in the beta version of Swift Playgrounds, and if what I’m writing here is heavily tinged with nostalgia, that’s why. Swift Playgrounds shoots me back to the days when I was typing numbered lines of code into an Apple IIe. It’s real coding, this time on my son’s favorite computing device.
But I don’t want to draw the parallel too tightly. On the Commodore PET and Apple II, I was greeted with a blank screen and a cursor. If you were lucky you might be able to find a dry reference manual. Swift Playgrounds is not that. Instead, it’s a living textbook, with sample code and a preview window full of animations to make your real-world progress clear. It’s astounding.
I am not one to buy into most of the change-the-world pronouncements that Apple executives make with frequency on event stages. And when Apple announced Swift Playgrounds at WWDC, I raised a cynical eyebrow, figuring out the PR calculations that were behind the way the announcement was phrased. (And there are always PR calculations.)
But just because something is hyped and filtered through a PR engine doesn’t mean that it isn’t truly great anyway. And Swift Playgrounds feels that way to me. Every iPad will have an app that provides programming lessons and offers a freely available space to type those “Hello World” programs and blackjack simulators and whatever else occurs to the kids (and grown-ups) using them.
This fall my son starts seventh grade and his school is providing him with an iPad to use for schoolwork. The realities of education technology deployments suggest that his class won’t use Swift Playgrounds until eighth grade, but I’m hopeful that soon he will be learning to write games on his iPad, not just play them. There are few better ways to expand someone’s technological perspective than providing an open command line and a ton of inspiration.
[Got a comment? Drop me a line at firstname.lastname@example.org.]