Languages are how we communicate.
Programming languages are how we communicate with computers.
If you can carry on a conversation, or craft a bit of code, you're self-evidentaly smart enough to do so.
So what are we all doing judging people by language?
Ingroups and outgroups are formed too often on the basis of language.
We can all jump to conclusions. We can all judge.
We might all want to remember to judge not, lest we be judged.
This important in life and in technology.
Programming Language Expectations
Here are 10 common slurs people use against any given programming language.
Have you heard any of these phrases before? Have you said any of them?
- "You can't possibly write do that in
<insert language here>."
- "Why are you even using
<this language>?"
- "Nobody seriously uses
<this language> for anything anymore."
- "
<language> people are idiots"
- "
<language> is for newbies."
- "
<language> is only good for this scenario"
- "This
<language> is the literal worst"
- "This
<language> is bad, because something I tried to do didn't work"
- "This
<language> was built by this company I don't like, therefore it is bad"
- "This
<language> isn't a real programming language, because I think it lacks this feature"
What do all of these phrases have in common?
In my opinion, a few things:
- They are all subjective
- They are all rude
- They are all wrong
Let's do some dismantling before we move on.
I had typed a couple of paragraphs, and then realized this dissection could be done with four simple words:
"How Do You Know?"
How This Hurts
You might be wondering if this is a deal or not.
You might be sure why your language of choice is better.
And you might be falling into a mental trap.
When we devalue other languages, we devalue the people who use them.
This hurts, personally.
This hurts our technical communities.
This hurts innovation, and hurts our world.
Painful stories
I can speak to it personally.
I've been programming for approximately 30 years at this point.
The soft bigotry of language expectations has been a problem for my whole life.
Part 1 - BASIC Discrimination
I started tinkering with Turtle at around 5. By 8, I was programming with BASIC.
By 12, I went online in the early days of the internet.
There wasn't much the internet seemed to agree on, but it sure seemed to hate BASIC.
Lots of this dislike was intertwined with Visual Basic.
For daring to commit the cardinal sin of WYSIWIG (What you see is what you get).
I saw the term BASIC become a slur, and, quite frankly,
I got a bit too much hate for a young kid on the internet just learning to code.
I saw countless coders devalued because they had dared touch a "basic" language.
I had to fight, tooth and nail, for respect from "real" programmers.
I had to prove I could do web development by writing early CGI in Perl.
I had to prove my "developer chops" by writing realtime video mixing in C++ and Assembly.
Then I was, according to some, "worth listening to."
Are you seeing the soft bigotry yet?
Let's look at a much bigger example:
Part 2 - Anti-JavaScript Bigotry
Another language that people have derided for decades is JavaScript.
The early slurs were pedantic:
"It's not really Java." (~everyone, circa 1995-2001)
"You can't compile JavaScript." (~everyone, circa 1995-2006)
The personal began to creep in fast
"JavaScript isn't real programming."
"JavaScript is really for web designers."
But the most common discriminatory refrain I've heard over the years is this:
"Web Developers aren't real developers."
Think of every bright person you know who learned to code with JavaScript.
Think of everything JavaScript has done since the early days.
Think of how many people use JavaScript, and how many people use Java.
Think of how many web developers only use JavaScript.
Think of NodeJS, which was positioned as:
"JavaScript has a compiler now. Now will you like it?"
Hell, think of TypeScript, which is positioned as:
"By giving JavaScript types and a compiler we make it a real language. Now will you like it?"
Now think of every potential programmer who decided to switch fields because they didn't like taking flak.
Think of how unjust it is to those people.
Think about what you might have done, and how you can do better.
I saw this round firsthand as well.
I saw countless friends and fellow students "wash out".
Programming was pushed as a "hard" discipline, filled with "hard" languages and tools.
A few colleges created New Media programs and Information Services programs,
all because your average Computer Science department wouldn't touch JavaScript with a 10-foot pole.
Between BASIC and JavaScript, the computing industry began to fracture into a thousand subfields.
I'm reasonably certain people program in all of those fields.
Why don't we call them developers? Why might they not want to be called developers?
Part 3 - DotNet Duldrums
A little later, C# and the DotNet framework came out, and a new great BS battle began.
One side were the "real" devs who believed they could manage their own memory.
On another side were the "lazy" devs who just wanted to write code without doing too much pointer math.
Can you already see the bigotry?
This generation of discriminatory thought further fractured the ecosystem.
It arguably pushed back an operating system release by a few years, too.
Hundreds of thousands of people learned a skill, and hundreds of thousands judged them for it.
The great "native vs managed" debate roiled on for decades, and arguably continues to this day.
Have you ever seen a C# developer turned away from a shop because they didn't know some C++ arcana?
Have you ever watched a C++ purist rage against C#?
I certainly have.
I can only imagine how many people who might have a better career if this discrimination did not exist.
Part 4 - PowerShell Perfidity
This last example hits a bit closer to home.
By a few quirks of timing and life, I ended up working on this new programming language, PowerShell.
It is a .NET scripting language, and is often used interactively from a terminal.
It was heavily influenced by Unix and Linux, and the PowerShell team fought hard for Microsoft to be more accepting of open-source.
I may be a bit biased, but I believe it to be a pretty great language filled with interesting features.
I joined in 2006, a few days before it came out.
The guff started before I joined.
I'm going to break some of my examples here into two camps:
Friendly Fire (and how to stop it)
Microsoft is not a monolith.
As one colleague put it: Microsoft is not a country, it is a nation of city states.
Still, I didn't expect this much friendly fire.
Names omitted for politeness and respect of omerta.
"PowerShell should not exist"
"PowerShell is a cancer"
"PowerShell isn't C#, so it's useless"
"PowerShell isn't for real programmers"
"PowerShell is too linuxy"
"PowerShell is a problem"
"PowerShell is a language for idiots"
"PowerShell is better than basic, but that ain't saying much"
"PowerShell won't go anywhere, because people can just click"
"PowerShell is useless, because operations will never learn to code"
That last one came up a lot. And it stung.
It stung, personally.
Not only had I been in operations, but I had learned to code more because of it.
In operations, I had learned the innards of Windows more than many of my colleagues who worked on the OS.
In operations, I saw lots of latent intellect.
And I saw this discrimination and a problem.
I began giving a lot of talks on campus. I explained the need to learn from ops, and for ops to learn from devs.
I advocated for creating a hybrid disciple between Dev and Ops.
Maybe you've heard of it?
In all hopefullness, this friendly fire has reduced with time.
I'd like to think constantly beating the drum about it might have helped Microsoft see the untapped value in one of their own creations.
If your organization is discriminating based off of language choice, I'd advise you to start fighting the battle for respect early.
I wish we didn't have to fight it, but, in my opinion battling against discrimination is always a worthy cause.
Victory begins at home, and it should be easier to convince your colleagues than to convince the world.
If only colleagues were the extent of the problem...
The World vs PowerShell
Probably once a day, I'll hop online and see someone throwing shade at PowerShell.
Here's a small smattering of stuff I've been told.
Names omitted for politeness and a desire to not dox.
"PowerShell sucks"
"PowerShell's not a real shell"
"PowerShell's not a real language"
"PowerShell is too windowsy for linux people"
"PowerShell can't do anything"
"PowerShell can't make apps"
"PowerShell can't make websites"
"Microsoft made PowerShell, therefore PowerShell is evil"
"Microsoft made PowerShell, so it has to suck"
"Powershell is stupid language for losers and corporate morons"
At the risk of a refrain, what do all of these sayings have in common:
- They are all subjective
- They are all rude
- They are all wrong
By my reconing, there are over a two million people who use PowerShell.
That's quite a lot of people to judge.
And we all know we shouldn't be too judgemental.
This connundrum has a simple answer.
Judge Not
Judge Not, lest we be judged.
If you have read this far, please do you part to do better.
Whenever you find yourself making a snap judgement, stop.
Especially if you can logically see how wrong it might be.
We should not judge whole groups of people based off of the languages that they learn.
We should not judge people based off of the languages they speak.
If you must judge anyone, judge the content of their character, not the groups they belong to.
If you don't know the content of their character, don't rush to judgement.
Let's try to leave judging to the judges (be they secural or divine).
Anytime you feel the soft bigotry of language expectations, please judge yourself first.
Please, be kind to your colleagues.
Please, be kind to the human race.
- Think of the children, and what they will really learn.
- Think of the working stiffs, and what they could do with a chance.
- Think of every person you know who could do more if they were not judged as lesser
- Think of how this biogtry is not limited to programming languages.
- Think of how this biogtry intertwines with other isms.
- Think of how this applies to everyone.
We could achieve a much greater good if we stopped judging everyone all of the time.
Hope this Helps,
James
View Source
<#
.SYNOPSIS
The Soft Bigotry of Language Expectations
.DESCRIPTION
How our views of languages can be harmful.
.NOTES
Languages are how we communicate.
Programming languages are how we communicate with computers.
If you can carry on a conversation, or craft a bit of code, you're self-evidentaly smart enough to do so.
So what are we all doing judging people by language?
Ingroups and outgroups are formed too often on the basis of language.
We can all jump to conclusions. We can all judge.
We might all want to remember to judge not, lest we be judged.
This important in life and in technology.
### Programming Language Expectations
Here are 10 common slurs people use against any given programming language.
Have you heard any of these phrases before? Have you said any of them?
1. "You can't possibly write do that in `<insert language here>`."
2. "Why are you even using `<this language>`?"
3. "Nobody seriously uses `<this language>` for anything anymore."
4. "`<language>` people are idiots"
5. "`<language>` is for newbies."
6. "`<language>` is only good for this scenario"
7. "This `<language>` is the literal worst"
8. "This `<language>` is bad, because something I tried to do didn't work"
9. "This `<language>` was built by this company I don't like, therefore it is bad"
10. "This `<language>` isn't a real programming language, because I think it lacks this feature"
What do all of these phrases have in common?
In my opinion, a few things:
* They are all subjective
* They are all rude
* They are all wrong
Let's do some dismantling before we move on.
I had typed a couple of paragraphs, and then realized this dissection could be done with four simple words:
> "How Do You Know?"
### How This Hurts
You might be wondering if this is a deal or not.
You might be sure why your language of choice is better.
And you might be falling into a mental trap.
When we devalue other languages, we devalue the people who use them.
This hurts, personally.
This hurts our technical communities.
This hurts innovation, and hurts our world.
### Painful stories
I can speak to it personally.
I've been programming for approximately 30 years at this point.
The soft bigotry of language expectations has been a problem for my whole life.
#### Part 1 - BASIC Discrimination
I started tinkering with Turtle at around 5. By 8, I was programming with BASIC.
By 12, I went online in the early days of the internet.
There wasn't much the internet seemed to agree on, but it sure seemed to hate BASIC.
Lots of this dislike was intertwined with Visual Basic.
For daring to commit the cardinal sin of WYSIWIG (What you see is what you get).
I saw the term BASIC become a slur, and, quite frankly,
I got a bit too much hate for a young kid on the internet just learning to code.
I saw countless coders devalued because they had dared touch a "basic" language.
I had to fight, tooth and nail, for respect from "real" programmers.
I had to prove I could do web development by writing early CGI in Perl.
I had to prove my "developer chops" by writing realtime video mixing in C++ and Assembly.
Then I was, according to some, "worth listening to."
Are you seeing the soft bigotry yet?
Let's look at a much bigger example:
#### Part 2 - Anti-JavaScript Bigotry
Another language that people have derided for decades is JavaScript.
The early slurs were pedantic:
> "It's not _really_ Java." (~everyone, circa 1995-2001)
> "You can't compile JavaScript." (~everyone, circa 1995-2006)
The personal began to creep in fast
> "JavaScript isn't real programming."
> "JavaScript is really for web designers."
But the most common discriminatory refrain I've heard over the years is this:
> "Web Developers aren't _real_ developers."
Think of every bright person you know who learned to code with JavaScript.
Think of everything JavaScript has done since the early days.
Think of how many people use JavaScript, and how many people use Java.
Think of how many web developers _only_ use JavaScript.
Think of NodeJS, which was positioned as:
> "JavaScript has a compiler now. Now will you like it?"
Hell, think of TypeScript, which is positioned as:
> "By giving JavaScript types and a compiler we make it a real language. Now will you like it?"
Now think of every potential programmer who decided to switch fields because they didn't like taking flak.
Think of how unjust it is to those people.
Think about what you might have done, and how you can do better.
I saw this round firsthand as well.
I saw countless friends and fellow students "wash out".
Programming was pushed as a "hard" discipline, filled with "hard" languages and tools.
A few colleges created New Media programs and Information Services programs,
all because your average Computer Science department wouldn't touch JavaScript with a 10-foot pole.
Between BASIC and JavaScript, the computing industry began to fracture into a thousand subfields.
I'm reasonably certain people program in all of those fields.
Why don't we call them developers? Why might they not want to be called developers?
### Part 3 - DotNet Duldrums
A little later, C# and the DotNet framework came out, and a new great BS battle began.
One side were the "real" devs who believed they could manage their own memory.
On another side were the "lazy" devs who just wanted to write code without doing too much pointer math.
Can you already see the bigotry?
This generation of discriminatory thought further fractured the ecosystem.
It arguably pushed back an operating system release by a few years, too.
Hundreds of thousands of people learned a skill, and hundreds of thousands judged them for it.
The great "native vs managed" debate roiled on for decades, and arguably continues to this day.
Have you ever seen a C# developer turned away from a shop because they didn't know some C++ arcana?
Have you ever watched a C++ purist rage against C#?
I certainly have.
I can only imagine how many people who might have a better career if this discrimination did not exist.
### Part 4 - PowerShell Perfidity
This last example hits a bit closer to home.
By a few quirks of timing and life, I ended up working on this new programming language, PowerShell.
It is a .NET scripting language, and is often used interactively from a terminal.
It was heavily influenced by Unix and Linux, and the PowerShell team fought hard for Microsoft to be more accepting of open-source.
I may be a bit biased, but I believe it to be a pretty great language filled with interesting features.
I joined in 2006, a few days before it came out.
The guff started before I joined.
I'm going to break some of my examples here into two camps:
#### Friendly Fire (and how to stop it)
Microsoft is not a monolith.
As one colleague put it: Microsoft is not a country, it is a nation of city states.
Still, I didn't expect _this_ much friendly fire.
Names omitted for politeness and respect of omerta.
> "PowerShell should not exist"
> "PowerShell is a cancer"
> "PowerShell isn't C#, so it's useless"
> "PowerShell isn't for real programmers"
> "PowerShell is too linuxy"
> "PowerShell is a problem"
> "PowerShell is a language for idiots"
> "PowerShell is better than basic, but that ain't saying much"
> "PowerShell won't go anywhere, because people can just click"
> "PowerShell is useless, because operations will never learn to code"
That last one came up _a lot_. And it stung.
It stung, personally.
Not only had I been in operations, but I had learned to code more because of it.
In operations, I had learned the innards of Windows more than many of my colleagues who worked on the OS.
In operations, I saw lots of latent intellect.
And I saw this discrimination and a problem.
I began giving a lot of talks on campus. I explained the need to learn from ops, and for ops to learn from devs.
I advocated for creating a hybrid disciple between Dev and Ops.
Maybe you've heard of it?
In all hopefullness, this friendly fire has reduced with time.
I'd like to think constantly beating the drum about it might have helped Microsoft see the untapped value in one of their own creations.
If your organization is discriminating based off of language choice, I'd advise you to start fighting the battle for respect early.
I wish we didn't have to fight it, but, in my opinion battling against discrimination is always a worthy cause.
Victory begins at home, and it should be easier to convince your colleagues than to convince the world.
If only colleagues were the extent of the problem...
#### The World vs PowerShell
Probably once a day, I'll hop online and see someone throwing shade at PowerShell.
Here's a small smattering of stuff I've been told.
Names omitted for politeness and a desire to not dox.
> "PowerShell sucks"
> "PowerShell's not a real shell"
> "PowerShell's not a real language"
> "PowerShell is too windowsy for linux people"
> "PowerShell can't do anything"
> "PowerShell can't make apps"
> "PowerShell can't make websites"
> "Microsoft made PowerShell, therefore PowerShell is evil"
> "Microsoft made PowerShell, so it has to suck"
> "Powershell is stupid language for losers and corporate morons"
At the risk of a refrain, what do all of these sayings have in common:
* They are all subjective
* They are all rude
* They are all wrong
By my reconing, there are over a two million people who use PowerShell.
That's quite a lot of people to judge.
And we all know we shouldn't be too judgemental.
This connundrum has a simple answer.
### Judge Not
Judge Not, lest we be judged.
If you have read this far, please do you part to do better.
Whenever you find yourself making a snap judgement, stop.
_Especially_ if you can logically see how wrong it might be.
We should not judge whole groups of people based off of the languages that they learn.
We should not judge people based off of the languages they speak.
If you must judge anyone, judge the content of their character, not the groups they belong to.
If you don't know the content of their character, don't rush to judgement.
Let's try to leave judging to the judges (be they secural or divine).
Anytime you feel the soft bigotry of language expectations, please judge yourself first.
Please, be kind to your colleagues.
Please, be kind to the human race.
* Think of the children, and what they will really learn.
* Think of the working stiffs, and what they could do with a chance.
* Think of every person you know who could do more if they were not judged as lesser
* Think of how this biogtry is not limited to programming languages.
* Think of how this biogtry intertwines with other isms.
* Think of how this applies to _everyone_.
We could achieve a much greater good if we stopped judging everyone all of the time.
Hope this Helps,
James
#>
Push-Location $psScriptRoot
#region Article
$myHelp = Get-Help $MyInvocation.MyCommand.ScriptBlock.File
$title = $myHelp.Synopsis
$description = $myHelp.description.text -join [Environment]::NewLine
if ($page -isnot [Collections.IDictionary]) {
$page = [Ordered]@{}
}
$page.title = $title
$page.description = $description
$markdown = $myHelp.alertset.alert.text -join [Environment]::NewLine
$markdown > ($MyInvocation.MyCommand.Name -replace '(?:\.html)?\.ps1$', '.md')
"<style>"
"article { width: 120ch; margin-left:auto;margin-right:auto; }"
"article img { display: block; width: 50%; margin-left: auto; margin-right:auto; }"
"</style>"
"<article>"
$markdown |
ConvertFrom-Markdown |
Select-Object -expand html
"</article>"
#endregion Article
#region View Source
"<details id='view-source'>"
"<summary>View Source</summary>"
"<pre><code class='language-powershell'>"
[Web.HttpUtility]::HtmlEncode("$($MyInvocation.MyCommand.ScriptBlock)")
"</code></pre>"
"</details>"
#endregion View Source
Pop-Location