"Why do you type-code?"
My sons, seven-year-old twins, were introduced to computer programming at the tender age of five. They learned coding through assembling blocks representing logic to attain the goals laid out through various games. All of their interactions were direct drag-and-drop from palettes to fields.
They have been able to conceive of some reasonably sophisticated control flows using this technique. They learned about branching, nested looping, sequential looping, and even recursion, all from this touch modality. The general term is "block coding."
But when they see me typing away at a physical keyboard to create code on the screen, they ask me what I am doing. All those tiny characters. Is this game programming? Why all the detail?
Scratch, the ur-block coding language, was created for "computers" with mice and keyboards. Scratch-created applications run in a browser but do not run well on touch devices because many rely on the keyboard for their input events.
Contrast that with newer block coding languages. Codespark and Tynker are two popular block-coding educational platforms. I have used both with my children. Tynker has a legacy that predates touch screens, and a lot of its content is on the web and uses the keyboard. My sons are good with that and asked me repeatedly for keyboards for their iPads. I thought this was so they could type. But in fact, they use the touch interface for all their coding, only resorting to the keyboard for the stray entry of value and occasional control of their applications and games.
They see that I am typing for my code, and they are curious how they can do it. But the truth is my boys create a lot from the blocks they work with today. They have tried "type coding" a few times but find that working with more advanced block coding techniques gives them more power more quickly, and the intuitive touch interface of the iPads currently makes them happier.
The natural user experience is where my children are: direct interaction by touch. Their ability to express complex intent with precision is already high and without much use of a keyboard. Maybe a better one will come along in the future - I dream of VR as a creative platform.
And so do most people. Mobile phones are in far more hands than MacBooks. Chromebooks, despite their low cost, are not nearly as common. They are treated by many in education as the "right" answer, but when the pandemic came down, the school sent us home with iPads. We moved them to personal iPads when we exited the remote learning system in favor of homeschooling.
To develop applications that people will use, we need to start with touch. Developers of a certain age think the tools of "type-coding" - WIMP plus a keyboard - is a perfectly natural way to interact with a machine. Writers, who generate a lot of the text that we read, also believe in the keyboard's power. Indeed, here I am typing these words at a rapid pace on my laptop, watching words pour out onto the screen. And when I switch back to Code, I will similarly watch code go from my brain to the screen with what feels like efficiency.
But that is not how most people do even complex work. And this will only diverge more with time.
Dispensers of entrepreneurial advice often preach, "scratch your own itch." But this user interaction issue is an area where our itch might be at substantial variance from our potential customers. They don't want to code the way we do. They don't want to use the tools we have become accustomed to over the past few years. We should be looking to scratch their itch. And if their bias does not involve the keyboard, we should move to touch. If it involves small screens, we should go there.
My sons will continue to use their block coding because it works better in the tools they use. We need to understand how to serve customers where they are and where they will be.
Why do I type-code? So they can block-code better. That is how I scratch an itch that expands in the future rather than contracting in an ever-less-prevalent past.
Photo by Aryan Dhiman on Unsplash