The Issue
A little background: I can code in several languages, including PHP, TypeScript, Rust, Go, Python. I find them equally helpful and respect all the communities behind them.
I want to talk about the contempt I recently experienced with PHP (the same applies to any other language; however, this was my personal experience). To illustrate, a small subset of comments I received when I mentioned PHP either on Reddit or on dev.to:
- much more
Unfortunately, the same applies in the "real world", not just online comments. I know cases where people were hiding experiences from their resumes just from the fear of contempt and being misjudged.
I also got ridiculed because of PHP. People were asking me things like, "why am I stuck with an old language?", "when do I plan to learn how to code?", etc.
I don't care because I know what language to use to bring results fast, and I am not judgemental towards any solution. I won't change my decisions just because I'm ridiculed as long as I see that objectively, they bring good results.
I remember when I had to make a case for GIT in 2009 in my first job because people were convinced of SVN's superiority and ridiculed me because I just wanted "unnecessary flashy toys".
Then I remember I had to make the case to introduce JavaScript promises into the codebase in 2014 in a different company because all the "senior" developers were convinced they were polluting the code. You can achieve the same things with just callbacks. I had to prepare an hour-long presentation to get a "buy-in".
When React was released, I had to go over the same thing; nobody wanted to hear about "another JS framework".
In the above cases, it weren't the technical reasons that were a cause for concern, just a weird contempt for doing something differently.
Now, we are going full circle.
The Harm
If you bash others just for choosing a different solution than you own or using something that you disagree with, even if you think you are joking (just going with the flow), consider the harm you are doing:
You are not judging work by the outcomes
You limit your perspective by immediately rejecting ideas and discouraging people from learning new things. For example, if I told you that Rust is slow and brings nothing new over C++ would you be eager to learn more about C++ (the above is untrue, just for the sake of example), or would you instead get defensive?
Why do you consider something "worse" even if the results they bring are better or on par than "your" perfect solution? Why do we need to gatekeep and prove something for no reason?
You are hindering careers
Yes, I saw people hiding the fact they code in PHP (or in other languages; Java developers often make fun of Python developers; Rust developers are contemptuous towards scripting languages) when applying to specific jobs. That is an insane contempt cycle!
Why?
From the fear of being ridiculed to the fear of getting pigeonholed. Even if they achieved something substantial, you would be ready to diminish that just for the sake of... what exactly?
Even if you talk to or impress someone, you have to consider that even lies tend to stick to other people and technical solutions - this is an unfortunate truth. Are you willing to take responsibility for something you do mindlessly? I thought so.
What if You are Wrong
Consider this: what if YOU are wrong? What if YOU just discouraged someone for no reason or dismissed something YOU have no idea about? What if it's YOU that harms?
Geographical Context
It is not a secret that the USA outsources much of its programming work to other countries. I live in Central Europe, and I can give you some perspective on developers living here.
Not necessarily for me, but for many people living here (for example, Poland, Ukraine, Romania, Czechia etc), getting into a programming job was not a simple choice - it was the only chance to get a decent living. Whatever was outsourced here - we took and learned how to appreciate the opportunities.
Lots of us started with PHP, me also, and I am proud of it - this language has a bright future and a wonderful community. It's not like I had a choice at the beginning, but I learned to see its merit and appreciate its modernization.
Now, get this: if someone wants to change jobs for whatever reason and the projects they are most proud of are written in PHP, Python, Java, whatever (which, for some reason, you learned to despise), and you dismiss all of their achievements for a sense of weird superiority, what are you exactly doing? In the name of what? Did you ever consider that?
Wouldn't it be better to stay less judgemental, stop gatekeeping, and appreciate every tool we have? Don't just be locked in a specific language and community and criticize everyone else. Are you entirely sure you are right?
The Cause
I have no idea.
What to do?
If you are gatekeeping or just spreading the contempt - stop. Think about others for a second, about the ecosystem, about life stories, about how much you are dismissing and harming yourself by doing so.
If you are a victim of contempt, you have all the right to brag about your achievements and be proud of whatever tool you use to react to them. It's easy to say, but do not ditch whatever tool or programming language benefits you just because someone said so. Instead, try to educate; if that doesn't work - ignore it and focus on building something great!