-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
6c4ea29
commit c66f5bf
Showing
1 changed file
with
111 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,111 @@ | ||
--- | ||
title: "What Makes a Programming Language Real?" | ||
date: 2024-10-21 | ||
draft: true | ||
--- | ||
|
||
What makes a programming language real? | ||
I saw some people picking a fight on the internet about this type of topic, yet again, and it got me thinking as to why we even broach the topic in the first place. | ||
Surely, one might think, a programming language can just exist peacefully without being questioned as to its legitimacy, right? | ||
Well, clearly not. | ||
But, that brings to mind for me: why exactly do we care so much? What's the point? | ||
More importantly, what do we do about it? | ||
|
||
## All Languages Are Real Because No Language Is Real | ||
|
||
I'm going to start this by giving you my personal opinion on things, and then we'll go over how I got here, why I changed my mind, and where I'm at now. | ||
I'm going to try and avoid generalizing this to "the community should... " because, honestly, most of y'all are adults and you've already mostly made up your mind; | ||
it's not really a productive use of anyone's time to try and actually sway people one way or another, so I'm not going to. | ||
But, I think it's important to express why exactly I approach this topic the way I do (spoiler alert: it has very little to do with the question as literally phrased). | ||
|
||
So, first off: I think all programming languages are real and equally legitimate. | ||
Java, C, C++, Go, Rust, Haskell, and so on? Great. | ||
Typescript, Elixir, Coffeescript, and other transpiled languages? Excellent. | ||
HTML, CSS, XML, YAML, and other "markup/configuration"-esque languages? Absolutely, those all count. | ||
|
||
Yes, HTML counts too; yes, so does Yaml; yes, even CSS; yes to all of them. | ||
Not only do I think all of these count as real programming languages, I think they're all equally valid and legitimate. | ||
|
||
I'm going to go ahead and pause here for a moment so that y'all can get a new cup of coffee, clean up your keyboard, yell at the clouds, touch grass, or otherwise center yourself. | ||
I'll wait. | ||
|
||
Ready? | ||
|
||
Okay, cool. | ||
Before I get into why I think these are legitimate, I want to talk about the young me from a while back, several years ago, who did _not_ have the same opinion. | ||
Young me absolutely would've dunked on people for thinking CSS or HTML was a real language; not only that, but PHP? Being as legitimate as Haskell or Java? Seriously? Pffh. | ||
Not only did I have a fairly hard line for what "real" and "not real" meant, but I also had a fairly nuanced taxonomy and tier list for how legitimate a language was and how appropriate it was to use for a certain task. | ||
Only _absolute idiotsssssss_ would use a language for an inappropriate use, _obviously_. | ||
|
||
## The Change | ||
|
||
I didn't change my mind on languages for a very long time. | ||
My special interest and passion used to be Programming Language Theory, and I very seriously deliberated and nearly went to pursue a PhD for PLT with a particular interest in optimizing compilers and type theory. | ||
However, something very specific clicked for me the first time I read an article on the internet of how another person (demographic: cishet white dude) had changed their mind and had stopped dunking on languages. | ||
Their reasoning? Because a woman in tech had reached out to them and let them know that a lot of the times when he was criticizing these languages or frameworks, he was targeting things primarily used by certain demographics of people, and did he really want to do that? | ||
So, he looked at the numbers, realized she had a deeply valid point, and decided to never criticize a language again. | ||
|
||
That article had quite the impact on me, to say the least. | ||
Not necessarily because of its point, but because of two larger hidden points behind it. | ||
|
||
The first point. | ||
Tech is not a vacuum, nor is it apolitical; regardless of how objective we might want to make an analysis of technology, the people who build it and use it and think about it remain. | ||
Those people are going to find part of their identity in the tech that they use, and that is a feature of humanity, not a bug. | ||
We should lean into that! It's awesome! But it also means that when we belittle and attack technology, we are inevitably attacking groups of identities that choose to associate with that technology. | ||
|
||
The second point. | ||
When we declare the legitimacy of something, as a society, we often do so at the expense of another thing. | ||
Likewise, when we declare the illegitimacy of something, as a society, we often do so in order to belittle or ostracize or otherwise hurt a particular group associated with it. | ||
Whether intentional or not, that is a profound and inescapable result. | ||
So, as a person in technology that people look up to, I have a choice: I can spend my energy putting groups of people down, or I can spend my energy lifting them up. | ||
|
||
I decided a long time ago that I will always choose to spend my energy lifting people up rather than tearing them down. | ||
This remains, today, one of my most central viewpoints that I try very hard to adhere to. | ||
Even if I want to vent, or want to rant, or get so enormously frustrated with a certain technology product or language or community that I want to talk about it, I try my very hardest to talk about things in a constructive manner rather than an inherently negative and unproductive manner. | ||
If you ever catch me saying "this tool is garbage", feel free to call me out, because I will absolutely rephrase that. | ||
|
||
## Consequences | ||
|
||
I'm going to get a bit more specific here for a second. | ||
I've been talking fairly broadly, but now I'd like to zoom into a community that I've been in and adjacent to for the entirety of my tech career, which is the front-end and design community. | ||
Did y'all know that for years I thought I wanted to be a graphic designer, and I even bought books in grade school and practiced designs and got pretty solidly good at it before I even graduated high school? | ||
Given that most people on the internet know me for sociotechnical, organizational, and infrastructure related stuff, that might come as a surprise, but I was very much a digital artist vibes kinda person in high school. | ||
It's one of the reasons I've put _so_ much time into the design of my blog; I care about it a lot! | ||
|
||
But I'm going to be real here. In the last decade or so, the trend I've noticed more than anything else in the front end community is two things: | ||
|
||
1. The rise of ReactJS, and subsequently the creation of the full-stack javascript engineering role as a discipline | ||
2. The feminization of graphic/web design, and its subsequent loss of respect, lowering in pay, and cutting of headcount industry wide | ||
|
||
These have not been amazingly sudden, but the schism created has been stark, divisive, severe, and sustained. | ||
Chris Coyier talked about this in his article [The Great Divide](https://css-tricks.com/the-great-divide/), although he didn't point out some of the things I'm saying here. | ||
While I don't have hard data to back up the second point, it's a trend I've personally noticed and have heard from several others as well. | ||
It's not particularly a new thing either, because this has happened in several other industries too; in fact, there's this thing that happens whenever an industry shifts its perceived gender. | ||
|
||
Male dominated industries tend to have a few qualities: | ||
|
||
- they're _perceived_ as being legitimate | ||
- they're _perceived_ as being difficult | ||
- they're _perceived_ as being merit based | ||
- they're more high paying | ||
- they're more respected | ||
|
||
When they shift to being female dominated, they lose all of those qualities. | ||
For example, when nursing went from being male dominated to female dominated, you could chart in real time the public perception of it along all of these qualities. | ||
Likewise, when I noticed the front-end community split into a "respected" engineering + "disrespected" design chasm, I saw the exact same thing happen. | ||
|
||
Seeing a community go from uplifting CSS and heralding things such as the [CSS zen garden](https://csszengarden.com/) as a feat of engineering to seeing just about nobody give a single flying fuck about the incredible works of [Jen Simmons](https://labs.jensimmons.com/) is... Surreal. | ||
I can't even say "this happened in my lifetime" because I'm too fucking young to be saying shit like "this happened in my lifetime." | ||
|
||
But we're here now, and it's been very interesting to reflect on how the changing language I've seen utilized, the technological choices people have made, and how engineering organizations and communities approach certain problems has fundamentally shifted public perception of this type of work in such a profound way that it'll take decades to undo the damage. | ||
It's breathtaking. | ||
How the hell did we get here, anyway? | ||
|
||
I'm not going to put on a tinfoil hat and say that us shitting on CSS as being "a fake language" ruined the web industry and caused billions of dollars of economic damage. | ||
Really, I'm not. | ||
What I am going to say, though, is that things have consequences, and systematically devaluing an entire industry of people is going to have very unintended and far reaching consequences. | ||
We need to think about that lot harder than we do now. | ||
|
||
## What Is Reality Anyway? | ||
|
||
Whether or not something is real, or not, depends entirely on your perception. |