Which is to say: All civilized people write poetry from time to time. Both its reading and its writing are necessary to a civilized mind. But, in most cases, we should be civilized enough to keep it – at least the writing part – to ourselves.
About writing, Samuel R. Delany
At the SPA 2011 conference, John Nolan gave a ‘rant’ about how Engineering was an unhelpful metaphor for what we do and that Cooking was much more accurate. He made a lot of good points but one of the possibilities that struck me the most was that even though only a few will be professional chefs and bakers, everyone in society will occasionally need to do some kind of cooking even if it is just microwaving ready meals.
Is programming the same? Maybe not yet but it’s less than 20 years since the general public got in on the information revolution and it took a lot longer than that for all the changes that the printing press brought to make themselves felt.
Despite the fact that in 14th century England being able to read was enough for you to benefit from much milder sentences (something that saved playwright Ben Jonson from hanging) it was relatively rare. Learning to read in Korea was so difficult when they used the Chinese logography that only aristocrats had the time to do it. When Sejong the Great commissioned the Hangul alphabet he wanted a system that even a stupid man could learn in 10 days. It was effective enough that within 60 years of its invention it was being suppressed because the power structure of society was threatened by common people being able to read and write.
Widespread reading and writing was a huge change, a classic case of the tool shaping the tool-user. It changes the way we think and acquire new information. Learning it is also fundamentally hard, something that we ignore most of the time because we get it over and embedded into the structures of our brain so early. So the fact that programming requires using your brain in a particular (and, for some, peculiar) way is no guarantee that it won’t become part of what is expected of civilized people.
I have a friend with a creative job in advertising, not the kind of role that would normally involve programming, but a big part of why he was hired is because he can actually build or prototype the things he comes up with in brainstorms. A nurse that I know was recently expected to manually convert 230 pdf documents to word documents because someone had lost the source files. This took her about a week of boring, repetitive work, but if she could have automated the steps she was taking and apply them to all the documents, she could have been done in less than an hour. Some other friends of mine work in a place where they are expected to enter the same data into 3 different systems, a process that could and should be automated. Businesses are losing enormous sums of money in staff time.
The successful businesses of the near future will be businesses that expect their employees (of all stripes) to have a minimal ability to script their workflows.
The traditional approach to these problems is to blame the software and its designers and with some validity, but it is ultimately unrealistic to think that a single piece of software will be able to fit every evolving scenario perfectly or never have to integrate with systems that the original designers hadn’t considered. Even if those conditions could be met the users themselves (or their organisation’s processes) will find ways to turn valuable software into albatrosses. Misguided attempts to cope with this are perhaps part of the reason that Wirth’s Law seems less humorous and more serious every year. Long term the solution is to give users more control over the software they are using in a way that makes sense to them.
Clearly the kind of programming professionals do – writing magical incantations into an IDE – is not something we should expect everyone to be doing, but then I never prepare a curry from scratch either, nor do I own many of the tools of the professional chef yet I still manage to cook up a meal every now and then. The future of programming for the masses will be simpler; perhaps something like If This Then That or the next evolution of Siri. Outlook filters and Excel spreadsheets are already here, and in wide use by people who don’t recognise that they are programming. There are even board games based on programming.
At Caplin, we know that we are creating software that will be integrated and customised to fit its final niche by others, so unlike the occasional poet, we have to be aware that our code is that rare thing – a poem that will be published. The challenge is to make sure that it’s fit for consumption by the civilized mind.