My Framework is Better Than Yours
Ask yourself this: Why am I using the tech stack I'm using right now? Is it out of interest? Maybe you found a blog post, got infatuated with a framework, tried it out, and stuck with it. Or is it your job? Someone is willing to pay you money to use it. Maybe your circle of friends (both online and offline) has influenced you, and you finally decided to try out the next cool thing everyone around you is raving about?
No matter what you are currently using – be it a programming language, a framework, or an architecture –, there is most certainly someone out there trash-talking it. The Internet is brimming with one-liners like "Everyone using X is an idiot." Tech is full of dogmatism.
It's all too easy to identify yourself with a "tribe." The more you research and use a technology, the more you get sucked into an echo chamber filled with people regurgitating sentiments that essentially boil down to "we good, they bad." People want to convince themselves that they are not wasting time learning, or having learned, something that might turn out to be sub-par. The easiest way to do so is to assume their choice of technology is the best, which then leads them to believe everyone else is using the wrong stuff.
Even if you're wary of such sentiments, it's a slippery slope from identifying with a community to belittling those of another. You have to actively fight this kind of tribalism, risking alienating some of the "leaders" that have already advanced too far down the tribal rabbit hole. A lot of people don't actively fight it. It's easier to float with the current, to hate things because everyone else around you hates them. And before long, you might make statements like "Everyone using X is an idiot" yourself.
While "technology X is bad" is naive, "technology X is bad for Y" can make a lot of sense. But so can "technology X is good for Z." The quicker we judge something as stupid, the less time we can take to ponder its potential benefits. We miss out on a lot of good stuff because our biases have prevented us from even considering trying it.
And even if we are dead certain something is wrong for a particular use case, why not try to find ways to make it work? I'm not advocating for using the wrong technology for a project. I'm advocating for engaging with the problems you see with it, exploring them, and trying to find ways to prove yourself wrong. You'll probably end up with a different choice, but thinking it through nonetheless isn't useless. It sharpens your understanding of the problem and gives you new ideas to explore.
Paul Graham has written a fantastic article called Keep Your Identity Small, which prompted me to write this post. In it, he argues that as soon as something has become part of your identity, you lose the ability to have useful conversations about it, because you're – by definition – biased. He closes his article with:
But there is a step beyond thinking of yourself as x but tolerating y: not even to consider yourself an x. The more labels you have for yourself, the dumber they make you.
We can enjoy a programming language or framework without making it part of our identity. Once we identify too closely with something, we can't judge it rationally, feel threatened by others who don't share our views, and regularly overlook obvious flaws (and even things we could improve), simply because it would mean that a part of us is faulty – and we can't have that, right?