Parochialism in Programming

I spoke at the Clojure Provo meetup last night, titling the talk "Programming is Folklore."   


But perhaps a more clear way to talk about what I meant is to talk about "parochialism" in programming.

This morning, I woke up and jotted down a "summarized" version for a friend, included here:


With the benefit of hindsight (and some more sleep), I wanted to state the point more clearly.


The first is that everyone is parochial, because seeking universality on *one* axis often forces you to narrow your focus on others.  Consider five different programmers:

 - one raised in a mountain commune where every apprentice, as a rite of passage, must write their own language---and they do this every year.  They do it as a medium of expression!  
 - one who after college, goes to work for Google, and never leaves.  Google has a lot of special internal tools they've developed, and a lot of ex-googlers complain that they miss having access to that ecosystem, and their tools for dealing with data at scale
- a 4chan troll who gets really interested in exploits---hacking
- someone who goes to work in a Fortune 500's IT department, writing apps for internal use, all on the Microsoft and Salesforce stacks
- a programmer who hates having a boss, and writes their own apps to sell (probably under a subscription model)

Each of these programmers can say---correctly!---that the others are parochial.  

 - the mountain jedi think the others are tragic philistines, given a whole playable orchestra, but only able to see a kazoo---and they use it to send Morse code.  About taxes. 
 - the Googler thinks the others are all on "easy mode," not really having to ever worry about really high load.
 - the hacker thinks of all of these as "civilians."  He's actually pwned the PC's of three of them (the mountain jedi doesn't have an internet connection), which are quietly part of his botnet
 - the Fortune 500 IT guy basically never has to look for a job.  He is certified on Microsoft QuickApp 5.0 and Salesforce's Lightning (revised version).  He's realized that computers aren't really that important---what's important is keeping his boss happy, and making the department look good.
 - the entrepreneur is astonished that none of these people have ever talked to a customer.  Who are they even writing software for?  He knows that whatever a company's org chart, the ultimate boss is the market.

Each of these is living, intellectually, in a small town.  A lot of tropes---good and bad---that apply to small towns, also apply here

 - if they don't know they live in a small town, all sorts of ridiculous myopia can ensue, ranging from adorable naivety to ignorant chauvinism
 - if they do know they live in a small town, they can be insecure about it.
 - small towns are nice!  You can get to know people, and keep the riffraff out
 - you can make social contracts in small towns that fall apart with larger groups
 - it's a mistake to aim for "totally cosmopolitan," as there are a lot of nodes that give great returns when repeatedly invested in.  Some of them aren't even really about programming, like the F500 guy and the entrepreneur.  Nor is it really possible, as there's so much out there

Anyway, that was basically it---to realize that

 a) everyone else looks parochial, and you are right, they are
 b) you are also parochial, and attempts to mitigate this just make you parochial in a different way

 c) parochialism isn't bad, unless you don't know you are, in which case it is.  But the solution is not to become un-parochial (impossible, the space is too big), it's to acknowledge and accept it, and approach the rest of the world with humility




Comments

Popular posts from this blog

Interviewing Programmers

Playing Around With J

The Flipped Economy, Pt 1.