Tech Tolerance
I read a post that declared everyone needed to stop using JavaScript and start using TypeScript, or it would drive the world insane. My social feeds are filled with these hyperbolic statements about tech choices, all implying that there is only one best language or one best framework. There are crusades for Functional Programming, Test Driven Development, Vim, and even heated arguments about things as trivial as tabs versus spaces. Do we have to be this inflexible and zealous about things?
Of course not, we can hold our opinions and still be flexible. David Heinemeier Hansson (Creator of Ruby on Rails) wrote a good post on "Programming types and mindsets" where he said, "I do not enjoy static typing, and objects animate my mind's eye. But I have come to appreciate the fact that others illuminate their creativity with just as much intensity as I do mine, using functional programming constraints and explicitly spelled out types." (Programming types and mindsets - DHH)
In other words, we can hold a strong preference for one thing, all while ceding that another person could happily have the opposite opinion. We can recognize that programming can be far more subjective than programmers like to admit.
Computers are logical, predictable, and dead simple. They frankly don't care about most of the things programmers go to war over. 1s and 0s are the only instruction sets they need. Yet we've built in them a tolerance of a variety of ways of instructing them. Most of these constructs in software development are for humans and are based on natural language. Humans, as you know, come in all different shapes and sizes, with different preferences and perspectives, so it's no wonder there are so many programming languages and ways to express programs in those languages.
Even the more objective metrics, such as compile time and runtime performance, and others, can all be prioritized in a myriad of ways to suit programmer preferences, application needs, user needs, and hardware constraints. Sometimes our preferences are different because the problems we're trying to solve are different, our pain points are different, our minds are different, and that sometimes leads some of us to use TypeScript and others JavaScript. And we need to consider (however hard) the smallest possibility that others' choices might be just as correct as ours.
This doesn't mean there aren't better choices than others, but many of the technology choices we make depend on many factors and motivations. Therefore, we should debate the merits of languages, frameworks, and paradigms in the context of the problems we're trying to solve, and with flexibility for style and taste.
I remember a programmer who was unbelievably in love with Java. He would rave about its features and capabilities. I was happy for him. I didn't share his passion, but I understood it. I knew what it was like to enjoy a technology so much, to find something that fit my brain so well. Let's be happier for each other and be more tolerant of different choices.