Skip to content

"Proper" Languages: Who Does This Help?

Published: at 12:00 AM

Info

This article was originally published on LinkedIn in 2021, and is being republished here to centralize previous writings in one place. Links and information may be broken or out of date.

Content Warning

This article touches briefly on the topic of harassment and online abuse. External links related to this topic also document the extent of a co-ordinated harassment campaign in-depth, and contain hateful language targeting several minority groups. Reader discretion is advised.

As I start writing this article, I must concede that I do not have an answer or solution to the topics I am going to be writing about, nor am I in a position to really give any direct call to action about it. But at the very least, it is still something that I want to write about, and I hope that by doing so, I could at the very least use it as a potential opportunity to start a discussion around this within the circles I share this to in order to learn more about the experiences of others, if any.

A few weeks back from the time of writing this article, I had begun reflecting on my own attitude towards the things I was currently learning for the sake of my studies, and began to think about other areas of learning I’ve previously explored more widely, which I briefly wrote about in a series of tweets.

Screenshot of a sequence of tweets, which read 'I really do wonder sometimes if some mathematical concepts were just named to sound incredibly scary and let people flex for knowing it.  I'm noticing it a lot (at least in the scope of my studies) where a lot of concepts like this turn out to be more simple than first thought. I've noticed a similar sort of thing in my attitude towards picking up C++ specifically. Would I have gotten off to a better start with it if I wasn't carrying the baggage from others calling it a 'proper language' or making it out as the most difficult thing to learn ever'

What I wanted to focus more specifically on was the second half of these tweets, which briefly went into learning programming, or to be more specific, the C++ programming language. As part of my studies at university, it plays a huge part in the curriculum, as well as the industries that I aspire to get in to - learning it and becoming comfortable with it is a necessary hurdle to overcome if I want to get my degree and perhaps most importantly, secure employment once it concludes.

As I’m sure is the case with other programmers that are in the same situation I am about to describe, my attitude as I began to explore C++ was not as positive or hopeful as it could have been, and made learning at some points a burden when it could have been avoided - I am privileged enough to have learned other programming languages for myself in the past, and already went into my degree understanding numerous programming concepts out of the gate. But for C++ in particular I was taught to see it by others in the past as this super-difficult language that only “real programmers” use, like knowing how to code with it made you some kind of programming god or something.

In my own experience, a lot of this came from my GCSEs, where other students in a Computing class would turn how long they’ve coded for, and what languages they knew (or at the very least claimed to know at 14/15) into a contest with C++ appearing to be the be-all-end-all of being a “proper” programmer and being (I guess?) superior in turn.

As it turns out, learning C++ was not some godlike feat to accomplish after all, it was like learning any other programming language, at least from the perspective of a student finishing their first year of further education on the language. There is definitely a lot of it still left for me to learn, some of which may never be discovered due to the sheer scope of the language, and with how many technical standards have existed over the years - But at the very least, I am able to comfortably work with it, and have proven by the way of my coursework that I am able to make things using it.

However, this was not a painless process, because ideas like this were already planted in my head, the inevitable slip-ups and failures that come with learning something new felt like a much bigger deal than it would have been if I were learning something else, such as practically any other language that wasn’t C++.

The perception that C++ is this “proper” language made these setbacks hurt when they should have acted as a potential opportunity to learn something and improve. Furthermore, it also taught me to internalize this harmful idea prior to beginning my studies that I am less of a programmer or do not deserve to call myself one because I “don’t know X technology or Y toolkit yet”, even when colleagues and others that I saw as professionals and “real” programmers told me to the contrary - Ideas of deserving a title over such abitrary factors are poison, and I ended up swallowing it, much to my own detriment in the long term.

Once I had realised this a few weeks back from the time of writing, it had led to me thinking more and more about this idea of so-called “proper languages” like C++ and the only reasonable conclusion I can come to is that someone out there is ultimately benefiting from this kind of behaviour; the need to define an arbitrary standard of what is the superior or “proper” way of programming is a form of gatekeeping that at best is repeated without proper thought by people who otherwise mean well and don’t understand the harm in continuing to perpetuate these ideas, and at worst is used in order to exclude, discredit, and at its ugliest as an excuse to attack others.

One horrific example of the latter that came back to mind was Kat Fukui’s account of being the target of a co-ordinated harassment campaign for being a visible minority working in tech. Part of the abuse that was recieved attempted to discredit her despite her clear success and skill in her field by claiming she was not a “real developer” for working or not working with specific technologies - “Do they know how to code, other than some html+css?” one of many awful comments read.

The dismissal of my skills and claiming I can only write Markdown is an intentional tactic to tear down my value and diminish my success. Very funny, as I’ve been writing code to production since 2016, despite not being a skilled developer.

While the abuse sent towards Fukui was ultimately done in an attempt to drive her out of the field because of her background, these specific attempts to paint her as less of a developer as part of it prove to me personally how harmful this idea is, and how it can be used to cause it directly, which has still stuck with me to this day.

If you are interested in reading her full article (and I strongly recommend you do if possible), you can do so here - Do be warned however that this article documents some of this harassment directly, which includes racist, sexist, and transphobic language in many instances where it is documented.

This issue of superiority and its use as a tool for gatekeeping doesn’t start and end at C++ either, I’ve started noticing a similar trend forming around the C programming language for instance, or through editors like Vim. While I’m sure all of these things have a proper place in the right circumstances, or would provide some kind of benefit as a result of using them over other choices, should someone be considered less of a programmer for not using them? Of course not, and even if it was, how would that even work? Who or what would even be the authority on something like that? There is no perfect language or toolset that can both cover the needs of every possible use case in existence and be the most sensible option at the same time with zero downsides. If it did, there wouldn’t be such a diverse range of languages, tools and technologies to choose from in the first place.

Ultimately, this is where I am at when looking back on my own experiences. As I mentioned earlier, this idea of arbitrarily determining how “real” a programmer is based on things like the languages they use is to me an incredibly harmful one, and once again begs the question of who truly benefits from this? Unless you’re a bad actor looking to actively do this, what point is there in needlessly excluding technologies that have a use of some kind along with the people who choose to use them? And to go back to the point made in those tweets at the start of this article, could myself and others like me have had an easier time if we weren’t getting caught up on worrying about whether we are “real programmers” or not, or thinking we were in for a world of pain for daring to learn something new?