[Originally posted on Google+ on Dec 21, 2011]
For as long as I’ve had easy access to them, I’ve been drawn to programmers and their self-created culture, yet I’ve never had a sustained interest in learning how to program, myself. I took one computer science class in college (the intro course for non-CS majors) and learned a bit about machine architecture and Java, but while it was nifty, it didn’t make me regret my own academic path. I was a linguistics major – I love natural language in all of its ridiculous intricacies and I love being able to communicate verbally with people and I love thinking about the deliciously opaque mental processes under it all. It’s pretty intuitive that an interest in human language might facilitate an interest in artificial or computer languages, but at the same time it puzzled me that I was much more interested in the people who used the computer languages than the actual languages themselves. I liked listening to my compsci friends discuss their problem sets and make nerdy references to their expanding knowledge. It didn’t frustrate me in the way that listening to an unknown foreign language sometimes frustrated me – it was more like listening to music. I couldn’t understand it perfectly, but it still spoke to me in a satisfying way.
Moving to Silicon Valley accelerated my development as an informed outsider to programmer society. I learned that each programming language has its own idiosyncrasies and, therefore, its own evangelists and haters. Charts like this made me giggle, but also fascinated me: http://bit.ly/4A3paS. There were clues everywhere telling me that these languages were not just differentiated by vocabulary and syntax, but also by fuzzier connotations of attitude and even emotion. Lisp is old and elegant; Perl is chaotic and community-driven; everybody loves to hate C++. I found out that most programmers worth their salt were fluent in multiple languages, since it’s trivial to learn a new programming language once you’ve mastered one – much more so than natural language. Programming languages are also much narrower in scope and much more abstract than natural languages, allowing speakers to champion their favorite language and bash others without the icky nationalistic/ethnic/racial trappings that firmly limit any such discussions about natural language (were such discussions even practical to begin with). Taken together with the engineer’s tendency towards certainty of opinion, you suddenly have culture clashes and borderline holy wars over something innately and starkly devoid of emotion. Someone who might seem robotic and removed when it came to typical conversations about pop culture, romance, etc. would turn around and passionately, humorously create this (the top answer, not the question): http://bit.ly/4pvfAB.
I have realized that I will probably never fully understand why Lisp is more elegant than Perl, since I doubt I would have the interest to learn them. I use language for communication and expression, and not for creation and organization. But that doesn’t stop me from appreciating the people who wield them in all of their glory – in fact, it probably facilitates this state of affairs. I like imagining programming languages as colorful man-made deities (Greco-Roman style) who are constantly being summoned, tinkered with, praised, and cursed by acolytes. For all that they are more often against religion than for it, I find that the true-blue software engineers resemble the prophets of yore – they are obsessed with strange and wonderful thoughts which many of us cannot imagine; they often do not conform well to “normal” society; they use unintelligible strings of words to create and destroy things, guided by a great system of knowledge larger than any one of them. I think software engineers are beautiful, powerful people. And I think if I tried to become one of them, then the magic would disappear. The noble sackcloth would be itchy and I could not approach that plane of existence as perfectly as I would want to.
So, even though I’m probably a pretty darn good coder in a parallel universe, I choose to observe and adore rather than become. But sometimes I do wonder what it would be like to sit down and just createfrom the sheer power of language – to produce something that needs no external validation or direct observation to be of value, in contrast to a work of natural language. I guess the grass is always #008000-er on the other side.