Programming in Utopia
From Carls wiki
The year is 2058. Programming has finally hit the mainstream, and is now considered a fundamental skill, like reading or counting. To get there, it needed to transform itself, its medium, and us.
We sometimes look back at the machines from around the turn of the millenium and chuckle to ourselves. On the outside, computers still looked like TV sets and typewriters, and phones looked like remote controls with built-in cameras. No holographics, almost no voice-rec, and definitely no immersive or mixed-R modes. One had to use keyboards and mice for everything. We kinda liked it, because we didn't know better.
On the inside, software was written using brittle processes similar in development to carving messages on stone tablets or brush-painting on bamboo scrolls. The resulting programs were sadly inflexible and often broke in random and inexplicable ways due to poor understanding. Better hardware kept coming out all the time (which at the time meant flatter screens with higher resolution and wireless mice with laser sensors; yes, really) -- but the actual limitations were in our minds, and in our tools.
Luckily, we're better off nowadays.
As I open the door to the classroom, all the students are already sitting there. Some are reading course books, others are browsing around today's topics. I clear my throat, which makes everyone's device dim temporarily, and they all look up expectantly.
"Today we're going to build hash functions," I say. I show some slides on the front wall to explain what I want them to do. When I went to school, many years ago, the teachers were always struggling with making their computer work with their projector. Half of the time the hardware or the software malfunctioned in some way. Now, I just tap my personal device occasionally to go to the next slide. Or I just say "next slide". No setup required; as I entered the room, the wall and the device negotiated an ad-hoc connection with each other due to my privs as a teacher, and the wall found today's slides on my device.
Having shown the general idea to the class, I let them loose on the task. They start building first solutions immediately. Everyone has their favorite IDE, language or REPL... I see new combinations of them every term, and sometimes it makes me feel old. Fortunately I don't need to grok them in detail, because algorithms in today's task framework translate the digital output from the hash functions into auditory output, regardless of the tools involved. I just walk around and listen.
The first sounds start appearing after half a minute. Predictably, these first attempts sound pretty terrible, but bear in mind that 50 years ago we didn't even teach 14-year-olds such as these about hash functions. I give the eager minds a few helpful pointers, show them how to plot trajectories in 3D to better see the collisions and patterns, and let them try again.
The next ten minutes are interesting, if not harmonious. Some kids' hash functions sound like sawmills (not good), others like shattering glass (better, but still not too good). One prodigy in the back row has already arrived at a sonorous function — I walk over to him and test it on my device: it's practically a consumer-grade strength hash function. "Hey, where'd you learn that?" I say, and he proudly mumbles something about his uncle teaching him a few tricks. A couple decades earlier, this youngster would likely have been a misunderstood disturber of the peace in class.
I know how to treat these 2σ kiddies. I pull up a few reading bookmarks that I've prepared. Shaking them out into my palm through the top of my device, I hold my hand over his desk's projection area and rub my fingers against my thumb. The bookmarks appear as shining flakes in the top of the projection volume, and fall to his desk like pixie dust. (For understandable reasons, we stopped calling this action "copy and paste" long ago.) He smiles appreciatively, and starts browsing one of the references. I leave him to his reading.
As a good-sized amount of the group gets the hang of creating hash functions, more and more of the sounds rising from the desks start to sound like chirping birds or quick flute toccatas. While I go around pointing the others in the right direction, I ask some volunteers to mock up visuals on what makes a good hashing function. I give them privs to putting up their illustrations on the front wall. A while later, a lively discussion breaks out in class about some finer points of hashing theory, where I act as a moderator. I strive to be honest about where they touch upon questions which are still unanswered and subject to research, or the limits of my own knowledge.
You see, I'm glad the machines turned out this way. We all knew somehow that computers and phones would merge together, that was kind of obvious. Nobody could predict what the result would be, and I think the result turned out to be greater than anyone expected, technologically as well as socially. By the beginning of the century, we tended to ban phones in class — now they're back as "devices", and we use them more than pen and paper or specialized calculators. Maybe it was inevitable; after all, the devices are in our homes, at work, in our pockets and in our heads — so why not in school? In hindsight it would have been hard to keep them out.
There's a short scheduled break from programming. I look up and see half of them touch-typing on their desks. (On request, the desks can grow keyboard-like buttons out of its previously smooth surface. Nano is involved somehow.) A few are drawing diagrams and solid objects using their hands in their projection volumes. I see one girl and her software agent writing a piece of music together, putting notes in mid-air at an impressive speed. I only see it backwards and from a distance, but it looks like a symphony. Some boy in a corner is learning to write Chinese calligraphy, holding the virtual brush according to rules set up by some heuristic. A group of students are immersed virtually, and appear to be grasping things in mid-air with their eyes closed. I can't determine if they're in the same space, or exploring things on their own.
I lean back a bit, close my eyes and let myself be lifted to just below the ceiling and into an immersive VR view of the 'net traffic in the classroom. The pupils look like flashing neurons, nodes in a network stretching out through the walls of the physical room. Big blobs of data frequently flow into devices, and smaller blobs flow out. Drops trickle between some of the devices. In the distance, beyond layers of real-world wall, I see other similar groups of nodes.
Soon I will have to tell them that the break is over and that we're going to be spending the next hour cracking each other's cryptographic systems that we built last week.
I suspect they will enjoy that too.
