My language is "faster". My framework is "more elegant". My tool is "more productive". My community is "more friendly". All bullshitty reasons to choose something because those reasons don't really matter.
Although DHH did a good job describing the reality of the developers choices, he didn't go as far as to explain why we all do it this way. Including himself. Including myself.
The religion framework theory does explain some of the behaviors, I'd go farther still.
Most developers are more akin of sports fans (or fanatics, as is the root of the word "fan").
Check out some items from the article "Why Sports Fans are Sports Fans":
- There’s high drama.
- It’s fun to watch greatness.
- It taps into our creepy side that wants to sit in the ancient Roman Coliseum and watch people fight to the death.
- It’s aesthetically pleasing.
- The sports world includes a lot of gossip.
- Sports provides an escape from life.
- It’s a perfect tool for your crippling procrastination tendencies.
- Sometimes I think we might even use sports as a way to attach ourselves to something immortal.
- In a time when heroic triumphs aren’t part of most people’s lives, sports allows us to capture a little sliver of the feeling of glory.
Developer niches feel more like sports teams in competition. There must be "winners" and "losers". And people cheer over every small victory (like useless synthetic benchmarks or pseudo-statistical and meaningless indexes such as the TIOBE).
Fans of losing teams feel like they need to have increased loyalty to get the utmost reward.
Testosterone levels rise when discussing nonsense over Hackenews. Threads get really deep, each person shooting bullshitty "evidence" to "prove" their point. And every argument has an easy counter-argument, and the threads go on and on indefinitely. And every person writing will never agree to the contrary. And no one will ever switch sides based on the arguments laid out on those threads. Yet, they still waste lots of time writing anyway. Madness.
People - specially young people - like to have a sense of belonging, a sense of desindividualization, dissolved responsabilities. Which is some of what I wrote a couple years ago on the current nonsense trend on functional languages.
As Mike Perry describes in this post the most passionate fans tend to identify themselves as an integral part of the team they are supporting, with some of them – clearly – feeling less responsible for their individual behaviour. When disinhibition is combined with deindividuation – a loss of self-awareness and a sense of diffused responsibility – fans simply don’t care anymore about what anyone else might think or feel. Deindividuation weakens normal restraints without which, fans are more easily influenced by their surroundings; this is when fans start acting – really – weird, in either a pleasant or less pleasant way.
Groups of fans may mob, insult, threat or even riot. Groups provide fans with a sense of anonymity. Being part of a group removes individual accountability and diffuses responsibility. Unfortunately this behaviour appears online just as often as it does in the stadium.
Sports Networker - Read more
Tech conferences are like the weekend sports games. People like to feel validated being in the middle of equal-minded groups.
Same as with sports, developers feel that their "teams" (technologies, companies) are extensions of themselves. Worse, they feel like they describe their personalities. Which is why developers response so passioantely to contrary arguments: it feels like an aggression to their own selves.
“When we look at motivation for following a sport team, group affiliation is one of the top ones,” says Wann. “Identifying strongly with a salient local team where other fans are in the environment — that’s a benefit to social-psychological well-being.”
“The whole idea behind identification is that it’s really part of how we see ourselves and that doesn’t change easily,” says Robert J. Fisher, professor of marketing at The University of Western Ontario, whose research emphasizes the effects of social expectations on managerial and consumer decision making. “If you see yourself as a member of a family, that role doesn’t change. Those types of connections are very long-lasting and very strong.”
Psychological Science - Read More
It's all a big show, you're the audience. Just don't fool yourself thinking that you're been "scientifical" in your choices.
We are all victims of heavy Cognitive Bias, which blinds us to the truth:
Here’s a great post by Sam McNerney (@WhyWeReason) explaining cognitive bias. This is the phenomenon where all of us only look for what confirms their intuitions and ignore what contradictions their intuitions, what psychologists call confirmation bias. Confirmation bias helps explain why some fans will boo every single referee call against their team and English soccer fans will – still – argue with Germans about whether the ball did or did not pass the line in 1966(!). Fans automatically see the world as they want to, not how it is.
Sports Networker - Read more
More interestingly, the same way with sports fans of losing teams, people find ways to cope. And superstition is one them.
Superstitions are an integral part of sports, and they may also be yet another way fans cope with their team’s performance.
In ongoing research, Wann and his colleagues are exploring the role of fan superstition. Over half of his 1,000 participants can readily define a superstition or ritual they believe in. Moreover, some are truly convinced that their participation in ritual superstition impacts the outcome, says Wann. The more highly identified with a team the fans are, the more likely they are to believe that superstitions matter.
“It’s a real struggle that sports fans experience,” says Wann. “They so much care about the outcome of the event they have absolutely zilch control over. How do we gain control? We may develop superstitions.”
Psychological Science - Read More
What I always have to say of all the nonsense is:
If being the "fastest" was really a real concern, we would all be programming in C, as close to the bare metal as possible.
If being the "most secure" was really a real concern, we would never ever fetch libraries created by unknown, uncertified, untrained people. We would build everything from scratch, by ourselves, every time, and wait through months of heavy testing before ever delivering to production. You know, like the military used to do.
If being the "most elegant" was really a real concern, we would not be concerned about being the fastest or the most secure, as they usually go in opposite directions.
The craft of an engineer, or any professional by that matter, is being able to choose between different compromises, and keep balancing out. Never blindly committing loyalty to a specific group or thinking. Amateurs commit loyalty to someone else. Professionals hold themselves responsibles for their own choices, and they compromise.
Scalability, Maintainability, Reliability, every "-ability" we add to the list is a compromise. You can't have your cake and eat it too. You want more, you pay for more. Because every technology is a combination of compromises, you can't have a clear single winner or loser. Everything will win in some aspects and lose in others.
As Neo realizes in The Matrix: the problem is choice. The problem is always about choice. People don't like to choose, because that makes them accountable. It's far easier to make someone else make the choice and just follow, creating the delusion that you made a "rational" choice because "the group" validates it.
After all, "Nobody ever got fired for choosing IBM."
The reality that you will eventually realize is that you are not required to make "the" choice.
Clear "good guys" and "bad guys" only exist in fairy tales and bed-time stories for children. The world of Adults is defined by shades of grey.
At the end of the day, DHH is right. It doesn't matter the tech specs of PS4 Pro vs Xbox One S vs Nintendo Switch. It doesn't matter the amount of teraflops. It doesn't matter the bandwidth. It doesn't matter native 4K or checkerboarding 4K. If I like Zelda, I will play in the Switch. If I like Forza I will play an XBox. If I like Uncharted I will play a PS4. And if I can afford it, I will have all of them. If I can't afford it, I will choose whatever I want to play right now knowing that I can switch to another platform without having to justify myself through tech specs.
Either I subscribe to the Rails Doctrine or to The Zen of Python. It doesn't matter. Will I make Zelda out of it? Otherwise, any "evidence" you think you have to counter argue my choice is utter bullshit. Don't even try.
But of course, you should use Ruby if you're a rational developer ;-)