J.D. Bernal told us there are two futures: the future of fate and the future of desire. Now, while the future of fate is singular, inevitable, and indomitable, we cannot deny how much of it seems woven from the threads of our disparate and competing desires.
Let’s imagine for a moment that the mechanics of the future, that is, what turns our frayed desires into one determined fate, can be modeled as an enormous dynamic transformation one simple enough for us to understand as a time series of matrices each magnifying or dampening our individual efforts.
But before we get into that I need to warn you: My mom may be very angry at us. I mean it, this might be bad, because today is her birthday, and I'm skipping out (yet again); this time to be here at Wicked Good Ruby Conf. So if you're watching this mom, Happy Birthday.
By the way, my mom might actually watch this because a few years ago, she decided to learn how to code in Ruby. Ruby is her first and only programming language, but she's written enough code to grok the basics concepts, and more importantly, she's experienced that mind meld-y thing we do with our computers.
But there's certainly more to the mystique of programming than that. I mean what about non-tourist programming? What about programming as a career?
Apparently, when my mom was a kid (I wasn't alive) but books tell me there were less than twenty thousand programmers in the entire world. Now there are over 20 million of us. That's about a myriad-fold. Clearly, something must have happened.
Could that something unhappen? Because if you remember well the precursor to the programmer was the professional computer. Yes, real live people who by the job title of 'computer' used punch card systems to make calculations and generate reports. And for about sixty years that's basically how things were, until, like one giant wave out of the big blue digital computers and soon the programmers that hacked on them took over.
So could it happen again? Could all our programming jobs suddenly vanish, replaced by a machine that reads high level business requirements? You know, you and I laugh at the idea, but there are business folk who don't code who have asked me about this so many times that it hurts. Sorry, my non-hacking friends, you need to go learn how to code, because it's not happening. Why? Well we put together this secret guild... No, no, no... it's not happening because even though code becomes increasingly higher level, the very crux of programming is translation of ambiguous intent into formal language. Formal language that requires both rigorous syntax and well-defined semantics. Things that at their core are foreign to the way we efficiently identify real world problems. In other words, the General Problem Solver wasn't so general, and GPS pivoted to became a yet another social mobile local thing.
So we're safe. Programmers are here to stay. But where the heck did we come from? Come to think of it, just about every contemporary profession aside from programming has ancient analogs or roots. Farmers, engineers, doctors, lawyers, accountants, actors, musicians, basically the same-old, same-old. But what about programmers? I mean someone could mistake what we write for the work of early scribes, but Hammurabi's code has nothing to do with ours. How about mathematicians? College computer science departments tend to be in a wing of the same building, so maybe we're a spin-out of sorts. But even if we were a spin-out of math, here's quote from a 1932 essay by the logician Russell telling us about what classifies as work: "Work is of two kinds: first, altering the position of matter at or near the earth's surface relatively to other such matter; second, telling other people to do so." The title of this essay, In Praise of Idleness along with the text that goes on to praise several of the pursuits of leisure in contrast to work, hints at Russell needing to defend math, arguably a study of leisure, which nonetheless, has contributed permanently to society. This leaves us programmers in a tough spot, because, one, we're not matter movers, two, programming isn't very confusable for leisure, three, there're plenty of hacks that have indelible added to the progress of humanity. Given that, we don't seem cut from the same cloth as mathematicians, but I guess if that's not enough to demonstrate how orthogonal a career programming is from math. Consider the example of AI pioneer Marvin Minsky, who claims he got into computer science, because, frankly he just wasn't good enough for math.
Now if programming is such a distinct career, that's got me thinking now of another Minsky, the economist Hyman Minsky. Who in his own way continued the work of Schumpeter, that economist who coined the term "creative destruction". Without going too much into depth here, economists have basically been fascinated by business cycles for a long time and Schumpeter, Minsky, and perhaps most convincingly Carlota Perez have attributed the largest cycles of boom and bust to technological innovation. Now once you start to understand large dislocations of the market as the second order effects of new technology, these otherwise seemingly undesirable waves play out to be essential to our general techno-economic progress. Here's a quote from Bill Janeway that sums this all up nicely: "For, contrary to the central dogma of neoclassical economics, efficiency is not the virtue of a market economy whose growth is a function of the creative destruction .... The prime virtue is the ability to tolerate unavoidable waste in the evolution of the Innovation Economy."
Now I bring this all up, because here we are, programmers a fairly novel profession, masters of contemporary technological innovations, who nonetheless seem to have ourselves come out of one of these waves, but I'm hesitant to say that that's all there is too it because, if so, we might consider ourselves some extended play version of the Industry Revolution (something economists often do). And that's something I can't accept. Why? Because you heard Russell in 1932, work is just matter moving. Industrialists are matter movers, but we're not. Something significant has changed.
To further prove just that here's a line from the first volume of Will Durant's The Story of Civilization, a series of books that attempted to cover the whole of human history. "In one sense all human history hinges upon two revolutions: the neolithic passage from hunting to agriculture, and the modern passage from agriculture to industry; no other revolutions have been quite as real or basic as these." That's 1935 speaking and it sounds very inline with what our friend Russell had to say.
So programming, this act of using formal syntax, well-defined semantics, and a repertoire of patterns to automate tasks, is mind blowingly new. Honestly, we shouldn't take lightly our participation in a third technological revolution. Our profession uniquely represent for the first time (to steal a word from Buckminster Fuller) ephemeralization in its purest form.
Which explains why labels like high priest or wizards were applied so much to us hackers. Unlike any other profession of the past, we seemingly do magic, magic that binds the smokeless fire of computers to our will.
All that said, please expect economies to change. Expect the meaning of work to change. And expect, most of all, it to be your fault.
We programmers are in a very powerful position. One where we should not reduce ourselves to the mere instruments of others. So sure, burn a pound of sugar cranking out that code for the team. But make sure that in one way or another that that code means something to you. Because right now, the matrix of the moment, what describes the mechanics of the future, it's on your side enabling you to make and perhaps even turn the wicked good.