Engineers are objective people. Right brained as some of you might like to call them. In the last 14 months of starting my full-time job, and three internships at amazing startups before it, I’ve learned different.
I assumed the decisions people made about the frameworks or technologies they use in their products must be a really objective decision. With their justification lying in numbers. Although, that does happen, but often these decisions are not based on just data or benchmarks.
I always imagined an engineer sitting on their desk with the problem statement, their list of requirements, what can it grow into. Then deciding on a bunch on benchmark tests to see if the selected framework or technology can do what they need it to.
Nobody decides a framework or language based on just data. Most of the times it’s not about benchmarks, production use, or any of the other parameters people use to put two technologies in a fighting pit.
Just look at why DHH (The creator of Ruby on Rails) decided to go with Ruby, when he already had enough experience working in PHP and Java.
Ruby has just a deep emotional appeal of how beautiful you can write something
I’ve noticed that it might be an objective technology decision if the person we’re talking about is building a new feature in an existing codebase, and already has a lot of users they have to do justice by.
But, whenever they’re starting something new, it’s almost always because of a gut feel, not facts. There are some facts that matter like maybe how old the project is, is there enough documentation or community around it, is it even good enough. But other than that, performance metrics take a second place to that gut feel or excitement for trying a new technology.
What I’m about to say is cheesy (or stupid, depends on how polite you are), but it’s like love. There’s this technology, something about it just stands out for you. Maybe it’s the philosophy it’s built on, maybe it’s the person who has built it, maybe it’s because a company or developer you admire is already using it, or maybe you just like their sales pitch or the font on their website. Whatever the reason may be, no matter how odd, it’s just something you relate with. And that bias for the most part drives your decision.
I’d happily choose a technology that’s a little less performant but I love developing on over something that highly performant but a pain to deal with.