If horror meister Stephen King was a computer programmer, his language of choice would probably be COBOL: it’s quite verbose in exposition, has been around for ages and people still make a lot of money from it (through legacy systems and the like). And even though he isn’t a programmer, King would still do well to study a computer language – as would the rest of us and our children.
Computer programming is not rocket science. Sure, it makes rocket science possible but anyone who can count, make choices and do things over and over again can probably learn how to program.
Fluency in one’s “native” computer tongue would be handy. But a firm grasp of sequence, selection and repetition is all that’s needed to code at beginner’s level, even in programming languages with exotic sounding names, such as Java, Python or C++.
Coding, of course, refers to the craft of designing, writing and debugging software. It may sound complex but it’s what we do when we draft a letter, compose a business report or author the Great Novel of our dreams.
If you learn how to read and write in English, with practice and several rejection slips under your belt, you can possibly become the next Stephen King. Ditto for computer programming: study how to read and write half-decent code and building the next Facebook can be within your reach.
Just watch the opening scenes of David Fincher’s 2010 film The Social Network to witness the humble origins of Mark Zuckerberg’s game-changing innovation: coding in all its simple glory as depicted eloquently in a Hollywood movie – who would have thought?
Here’s a simple algorithm that applies to both software and novels:
Writing works of greatness implies one has initially read likewise and recognised these to be so, which is the essence of being literate.
Stanford University’s Donald Knuth once touted the notion of “literate programming” as an approach whereby program logic is given depth of meaning with the frisson of natural language explanations, this being a cross between footnotes and critical interpretation.
The aim could have been to ultimately curl up in a comfy chair in front of an open fire with a bundle of good code to read but it didn’t quite work out that way. The pithy aphorism of MIT academics Hal Abelson and Gerald Sussman that “programs must be written for people to read, and only incidentally for machines to execute” is still only a pipe dream, but it shouldn’t be.
Programming languages are governed by syntax and semantics much like natural dialects. They can be viewed as tightly constrained variants of English, built as they are around the character set of the Latin alphabet, which is in part an accidental legacy of the American origins of this lingua franca of technology
(This may smack of Western imperialism to some, and in response the قلب (“alb”) programming language was recently created, based on Arabic script.)
The average English speaker may have a vocabulary of more than 30,000 words but a popular programming language such as Java only requires recognition of around 50 keywords and how they are used in context.
Such brevity can mean getting things done with a computer language may require a penchant for puzzles or even poetry. A 2012 creative project soliciting “code poems” resulted in a limited edition publication now in its second edition.
The driving force behind this artistic endeavour, artist and engineer Ishac Bertran, is of the opinion that “code can speak literature, logic and maths”.
A total of 190 poems were submitted by writers from 30 different countries for the first edition of “code (poems)”, with the only submission criteria being that a poem should have a maximum size of half a kilobyte and that it was required to be executable on a computer without falling over in a heap of error messages. In other words, it had to be a poem as bug-free software that actually worked.
Coding literacy is paramount importance to ongoing global innovation. There is a broad and grave concern that students are being turned off studying computing courses at university due to a misguided apprehension of programming being difficult to absorb.
They may have been poorly taught at some institutions with ill-focused textbooks and this accumulated over time to computer programming being perceived as something non-mainstream, within the geek domain.
To counter this perceived difficulty, campaigns are emerging from several quarters that seek to promote coding as an empowering ability, much like a second language.
Code.org is a not-for-profit foundation set up to champion the need for computer programming education. With supporting testimonials from the two famous Bills, Clinton and Gates, Ashton Kutcher and will.i.am of the Black Eyed Peas, the website and accompanying rah-rah videos attempt to revamp coding as being fun, creative and within the scope of all citizens, not just propeller heads.
The ScriptEd initiative is immersing low-income high schools from Harlem into learning environments in which coding skills can be acquired naturalistically. This is more Berlitz language school in tone than the often implicit desperation evident in the enculturation of clichéd “work-ready” technical graduates.
Coding should be seen for what it is: another way to communicate, unleashing a liberating force that can literally enable better living through programming.
Esperanto – conceived and created in the late 19th century – was a noble but failed attempt to engineer a universal natural language. The panoply of existing computer programming languages is similarly artificial and each in their own subtle way influence how their “speakers” think.
Now is the time for a new breed of polyglots to arise and creatively tinker away in the process. Can you afford to not wax lyrical in computerese?
Source: The Conversation, story by John Lenarcic