Answering the question: “What programming language do you write?”

I’ve been doing a lot of networking lately. The human kind, at meetups and tech talks. One common question I get is:

“What language do you write?”

This is something I struggle with. I learned C++ when I was 9 years old. It influenced the way I think tremendously, but I never used it professionally. Then I made websites with PHP, Ruby (on Rails), Python (Django) and so on. Meanwhile, I wrote frontend code in JavaScript. I also worked at Google for six years on Android apps written in Java[1]. Recently, I’ve been using TypeScript (a variant of JavaScript) and working with frameworks like Node.js, React and Vue.js. Yesterday, I was learning Clojure.

The thing is, I’m not an expert at any of these languages or frameworks. Hell, after six years at Google and even leading an Android team, my knowledge of the Android platform barely scratches the surface.

I also don’t have a strong preference between most languages. There are obviously languages where I’ll be more productive because of accumulated experience (probably JavaScript and Java). But if someone told me tomorrow that I’d need to stop using them entirely and use another, I’d probably just say “OK, fine”. What actually matters is that I can figure things out with documentation, patience and the invaluable knowledge base of StackOverflow.

The experience I built across such a variety of languages, frameworks, and platforms means that I’ve finally gotten over “fear of the unknown”. A lot of developers feel uncomfortable writing in a language they don’t know. Sometimes their reaction is one of disgust and contempt for languages they’re not familiar with. There is always a tech bro community that will reinforce these. If you think about programming languages as human races, the metaphor of racism applies. It results in a fragmented world where groups of people prefer to stay isolated rather than keeping an open-mind across cultures. Sometimes, people get hurt (OK, mostly just feelings in the programming world). Of course, this isn’t the case of every developer and a lot of wonderful people make an active effort to bridge the gaps.

I dream of a world where programmers aren’t defined by the technologies and languages they use, but by their ability to adapt and ramp up quickly in an unfamiliar environment.

So here are some suggestions to answer the question “What language do you write?” if you want to avoid defining yourself as a specialist:

  • “I just started learning X, but I’m curious about Y”
  • “I can write X and Y, but I’m willing to learn another language if need be”
  • “It depends, what language do you need me to write?”
  • “I’ll write anything that makes sense for the specific case we’re considering”

[1] A quick note: if you read this post and you wonder what’s the relationship between Java and JavaScript, think of the relationship between the words “car” and “carpet”. None whatsoever. The confusing name was a marketing ploy by Netscape in 1995 to make people think that JavaScript was a cool language like Java. Its official name is actually “ECMAScript” nowadays.

Read other things I wroteWho's François?