We may be moving into an era when everyone can make computer programs, even though they don’t know how to code — at least not in the way we think about coding today.
I’ve started playing with an iPad app called Ready that lets kids build little games, simple apps, and creative digital projects. It uses a simple drag-and-drop interface to create objects, change their properties, and make them interact with each other or a user.
Make a ball, give it “physics” so it responds to gravity; turn it to rubber so it “bounces” against surfaces; make a paddle that moves left and right with the cursor; build a wall in chunks that disappear when they are hit with the ball. Voila: Breakout.
What WYSIWYG did for document creation, Ready can do for programming. But the effects could go much deeper than saving time.
Drag-and drop-programming
Ready is really just a dashboard for Unity, the cross-platform game engine that is, itself, based on C and C++. By letting kids build games with a simple drag-and-drop, if/then interface, Ready puts young game designers one level up from what we might think of as “real” code — but still allows them to create from scratch.
Watch this video to see how users pick a component from a library, determine how it looks, and then give it properties of movement and sound based on various conditions, such as whether it comes in contact with something else. Assemble them into an interdependent system, and you’ve created a game.
Thinking further ahead, I imagine users will eventually be able to go one stage deeper to create their own assets and components — maybe even offer them to others in a marketplace. Think Minecraft, but built from the beginning to be an open-ended creative platform.
Good ideas are more valuable than good code
Playing with these tools makes me wonder if we might all soon be building things this way. Like apps. Could Ready and other dashboards do for code what Photoshop did for graphics or Word did for publishing? If so, then app creation by non-coders with good ideas may be imminent. While the code may not be as elegantly optimized as that of developers writing from scratch, such apps will certainly suffice as prototypes.
The easier computers got, the further we users got from being programmers.
A configurable set of assets like Ready may not allow for the infinite possibilities and new innovations of raw code, but most programs don’t actually employ such innovation anyway. I mean, really, what is Uber? A GPS app linked to a cash register app linked to a dating app. And most new coders won’t be trying to build anything as robust as a global ride-sharing platform.
Before you purists start attacking the notion of coding becoming more like PowerPoint than Python, consider for a moment whether we might be able to say the same thing about any coding environment. After all, C++ is still put through a compiler and converted into stuff most of us don’t know how to read. And the program itself sits on an operating system, and assembly language, and machine code instructions, and chip architecture. You can call yourself a competent software developer without ever getting down to that level.
Believe me, I count myself among those purists who resented the emergence of the Mac, and other interfaces that seemed intentionally designed to make computing “easier” by simply distancing users from basic functions. Microsoft had us invoke “the Wizard,” as if to shroud in mystery the way an application and its extensions end up in the right directory. The easier computers got, the further we users got from being programmers. I miss my autoexec.bat file. (Yeah, I know: it’s down in there, somewhere …)
More than just time saved
Ready makes me wonder if simplifying user interfaces may finally offer something other than more distance from the code: power. The instant gratification of building something in Ready feels empowering — more like authoring a Hypercard stack in the early Macintosh days, or building a website in WordPress when my ambition and needs overtook my skills. There is a WordPress plug-in for pretty much everything I can think of wanting my site to do.
True, if people don’t have to code, they may never find out how this stuff really works. They will be limited to the programming possibilities offered by the makers of the platforms, through which they assemble ready-made components into applications and other digital experiences.
Just as we eventually welcomed the users of AOL onto the real Internet, Ready may release legions of civilian developers into the game and app industries. With democracy comes a bit of dumbing down. They won’t be master programmers, but neither will the composers writing music with Garage Band ever be master musicians. This may just be the mash-up creative reality into which we are moving. There’s just too much to learn for everyone to learn every level. I was good at Pascal, but today’s languages are really hard, and the creative payoff for learning them quite distant to beginners.
This may be the moment we finally do enter the Garage Band era of game and app design. Things may get more crude, but also less commercial, shiny, and functionally opaque.
Maybe most of all, in a world where coding has become a rare and valuable skill, a platform like Ready lets the masses again experience the power of creation.
That experience alone may be more important than any of the apps we create. It changes the way we perceive the digital landscapes in which we are spending so much of our lives. Right now, it’s all just other people’s software. But with the right tools, it could easily be the ones we envision for ourselves.
I’m ready for that.