You’re Closer To Being a “Real Programmer” Than You Think.
As someone who knows how to program yet considers herself to be doing precious little of it (compared to the rarified air the programmers at Twitter, Apple, etc. breathe):
There is a vast rift of creative energy between “being a passive consumer” and “writing your own programs”, ala Alan Kay’s original creative vision.
In Kay’s time, there was no way to talk to the computer or do anything with the computer outside of programming:
- Art had to be programmed.
- Images had to be programmed.
- Animation had to be programmed.
- Text could be typed in, but if you wanted to do anything formatting wise outside of a plain text file, it too had to be programmed.
One of the first things programmers did when the “home computing” revolution started was to write software for various tasks — image processing, word processing, video editing, etc. — a layer of “padding” between having the ability to code and wanting to do the things you already knew how to do to some extent. If we took Kay’s creative vision of being able to remix pieces of pre-existing code to its ultimate conclusion, we would see a vast array of drag-and-drop software that looks only superficially different from Super Mario Maker.
The beauty of software is that only a few people actually have to code the thing. In a world where re-inventing the wheel is seen as foolish, why wouldn’t people save their time and energy by building on top of someone else’s tools?
Take this YouTube video I posted a while ago as an example. Is it “not real programming” if I use an iOS app that constructs videos based on the strokes I take in creating a piece of artwork? How about if I mix it with another iOS app that allows me to tweak the timing in the video and superimpose text? What if I then upload all of that to a service that hosts it for me and, if I’ve done my job right and used the correct words to encourage people to click and watch what I’ve made, generates some spending money? I didn’t touch a line of code to make it. Aside from some fine-tuning in Photoshop to make the preview still and refine the description on YouTube’s site, I didn’t even use a “real” computer — just an iPad. It’s still lightyears ahead of what a 5-year-old could have possibly made in the 1980’s, even with the help of a parent or 17.
Add in a Google Cast plugin on my web browser and a ChromeCast or a Fire TV stick, and now I can take that same video and throw it on a television screen. I can enjoy the fact I made something and watch it on my own television at home— again, without touching a line of code. It’s all the fun of “programming” in the 1980’s, but virtually no overlap in the skills it would’ve taken to do so.
Now consider “Hello, World” — a task that used to be beneficial in teaching people to program, but has now been reduced to trivial banality at this point:
At what point did we decide this was somehow superior to “bringing the mountain to Mohammed” and giving people the tools to do far, far more?
Does IFTTT, a startup whose entire schtick is giving people “recipes” — tiny programs designed to remix content from social media feeds and other services into actions that people find useful in their day-to-day lives — not count as “real” programming? IFTTT couches itself in the same programmatic trappings of if statements, giving people variables to play with in terms of the URLs and images made available and providing a new venue of creativity in how people combine the various services they already use. It’s a clever way to get people used to the idea of setting up little programs to make their lives easier, even if they aren’t thinking about it as truly “programming”.
Or, like anything else that becomes the plaything of rich, privileged interests, is it “not real programming” because it’s what the masses — the women, the minorities, the “children” — do with their catch-all devices?
There’s nothing in learning how to code “Hello, World” that is going to help someone create the next Uber. There is a wide, wide gulf that separates being able to remember how to construct a link on Reddit and modern iOS app development, let alone making the next Angry Birds.
We are rapidly approaching a point, if we aren’t there already, where the video games of yesteryear are readily made in an environment that bears almost no resemblance to modern programming, let alone what programming used to look like.
Programming has now become just one method of many to create wondrous things on a computer. Given the chance to become more and more intimate with the possibilities granted by computers, people will learn to program if and when it serves their interests to do so, to the extent that it serves them to do so.
If people want to lament how pathetic the current “revolution in computing” is, perhaps it would serve them well to notice how much creative energy the current revolution has made possible.
“If you want to build a ship, don’t drum up the men to gather wood, divide the work, and give orders.
Instead, teach them to yearn for the vast and endless sea.”