Files
davideisinger.com/static/archive/spf13-com-enwyvy.txt
David Eisinger 0899b91eb2 Add links
2025-11-06 00:11:21 -05:00

395 lines
19 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[1]spf13
Menu
• [2]Home
• [3]About
• [4]Topics
• [5]Presentations
Search for Blog [6][ ]
Why Engineers Can't Be Rational About Programming Languages
[7]
[8]Steve Francia 3 Nov 2025
[9]Programming-Languages [10]Leadership [11]Engineering-Culture [12]Management
[13]Economy
Series Overview
This is the first entry in a series on the true cost of a programming language.
The Leadership Blindspot: How Identity Drives Multi-Million Dollar Technical
Debt
A programming language is the single most expensive choice a company makes, yet
we treat it like a technical debate. After watching this mistake bankrupt
dozens of companies and hurt hundreds more, Ive learned the uncomfortable
truth: these decisions are rarely about technology. Theyre about identity,
emotion, and ego, and theyre destroying your velocity and budget in ways you
cant see until its too late.
Early in my career, I worked at Takkle, a promising social network. A sudden
departure vaulted me from lead engineer to VP of Engineering, leading a team of
12. While we were delivering on all our goals, I was in my early 20s and lacked
experience, a risk our board wanted to fix. They pressured our CEO to recruit a
CTO with more experience. I looked forward to learning from him; he was a well
known figure in the Perl community and arrived with a stack of OReilly “camel”
books.
One of his first acts was to pronounce our language, PHP, the wrong choice. He
decreed a switch to Perl. This decree happened after what felt to me like a
sham analysis comparing PHP and Perl.
Our velocity collapsed. Our team had to not only learn a new language but
rebuild from scratch, delaying our product by nine months. Our monthly burn
rate jumped from $200K to $500K as we more than doubled our size to make up for
the lost velocity while building the new Perl based system, which halved our
runway.
Our CTO did deliver, at least on some of his promises. We built a beautiful
system, one I was truly proud of. But it was too late. By the time we finally
launched, the market opportunity had vanished. Facebook had now expanded beyond
colleges, and we were at the end of our monitary runway. The increased spend
had shortened our runway by half, and we didnt have enough momentum with the
new site to reach the milestones required to raise more money.
Ive often wondered: What if we had just stuck with PHP? We had a fine system
and real momentum. We would have launched much earlier at a fraction of the
cost. PHP was good enough for Facebook; why not us?
But the question that haunted me was: Why did such an experienced leader make
such an terrible mistake?
Promises Made
• Switching to Perl would unlock the architecture we needed
• Rebuilding from scratch would accelerate hiring and quality
Reality Delivered
• Velocity collapsed as the team relearned and rebuilt everything
• Burn rate jumped from $200K to $500K per month
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
The Pattern Repeats
As my career progressed I saw this same pattern over and over. As Languages
Product Lead at Google, my group included C++, Java, Go, and Python. At
MongoDB, I managed teams writing in 13 different languages. In both places I
saw brilliant engineers arguing past each other, armed with conflicting data,
all of it true, but none of it complete. At Google Cloud, I saw these same
challenges across our customers.
Fast forward two decades from Takkle, and I had déjà vu. I watched as a VP of
Engineering presented to leadership why his team needed to build their next
system in Rust. The presentation eerily paralleled that Takkle experience. In
that old presentation, nearly every reason the CTO gave for Perl was truer of
PHP at the time. Now, every single reason given for choosing Rust in this
presentation, Go was objectively better at. As an example: they cited “easy
build and deploy” as a Rust advantage. Its true that this is a strength of
Rust, but Gos nearly instant cross compilation and single static binary is
even stronger than Rust in this specic critera with Rusts very long build
times.
Its not that I think they should have chosen Go, Go would have been the wrong
choice for their situation, and I believe Rust was the right choice. But what
struck me was how broken their reasoning was. If they were making a logical
argument, surely they would have considered Go and in doing so with their
presented criteria they would have realized Go was a better option and, at the
very least, refined their critera.
I pulled the VP aside after the meeting. “Walk me through how you evaluated
other language candidates,” I said. His face went blank. “We… didnt
really look at any others,” he admitted. “Everyones talking about Rust.” There
it was: a 50 million dollar decision made on hype, about to be green lit.
For me this was the moment of epiphany, finally an answer to the question for
the beginning of my career. The presentation didnt share an analysis, they
hadnt done one; it was a justification for a choice already made. This was a
decision based purely on hype, emotion, and identity.
Every Technical Debate Is Really Two Conversations
In every language discussion, two conversations are happening simultaneously.
The Visible Conversation: “Rust has memory safety without garbage collection.”
“Go has faster compile times and easier deployment.” “Python has the richest ML
ecosystem.”
The Invisible Conversation: “I am a Rust programmer.” “I want to become a Rust
programmer.” “I cannot imagine being someone who doesnt choose Rust.”
If you just read that and thought “well, my last language choice was different,
I was being rational,” your invisible conversation is running right now,
defending itself while you read this sentence.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
My CTO at Takkle was having the invisible conversation. Every point in his
visible Perl analysis was technically true, but it felt like a sham because it
was only there to cover the much deeper invisible conversation. He wasnt
evaluating languages. He was protecting an identity hed spent a decade
building. What our company paid $300K per month extra for wasnt better
architecture or faster hiring. We paid for the opportunity for him to be a Perl
CTO instead of a PHP CTO. That was the real transaction. The rebuild was just
the payment plan.
That VPs Rust presentation listed “easy build and deploy” as an advantage,
technically true, but Go is objectively better on that specific criterion. If
they were truly having the visible conversation, they would have caught that.
They would have at least considered Go in their analysis.
They hadnt. Because they werent having that conversation at all. And they
were about to spend $50 million on the invisible one.
The Neuroscience of Why You Cant See Your Own Bias
In one of the most [14]fascinating studies done in the past 20 years,
researchers set out to understand why people cling to beliefs even when
confronted with overwhelming contradictory evidence. What [15]they discovered
fundamentally changed our understanding of human decision making.
The researchers recruited participants and first identified which beliefs were
central to each persons identity—their core political views, their fundamental
values, the beliefs that defined who they were. Then, while participants lay in
an fMRI scanner, the researchers presented them with carefully constructed
challenges to these identity based beliefs, alongside challenges to beliefs the
participants held but werent central to their sense of self.
The brain scans revealed something remarkable: these two types of challenges
activated completely different neural pathways.
When a peripheral belief was challenged, something the person believed but
wasnt core to their identity, the brains reasoning centers activated
normally. Participants could consider the evidence, weigh the arguments, and
sometimes even change their minds.
But when an identity based belief was challenged, the brain responded as if
under physical attack. The amygdala, your threat detection system, the same
system that fires when you encounter a predator or a physical danger, activates
immediately. The insular cortex, which processes emotional pain and disgust,
lit up with activity. Most tellingly, the brains Default Mode Network, the
system that maintains your sense of self and personal narrative, went into
defensive mode, working to protect the existing identity rather than evaluate
the new information.
In other words, your brain wasnt weighing evidence. It was defending itself
from an existential threat.
The researchers conclusion was stark: “To consider an alternative view, you
have to imagine an alternative version of yourself.”
Your brain cant objectively evaluate challenges to identity based beliefs
because doing so requires temporarily dismantling the neural architecture that
defines who you are. Its not a matter of being more rational or trying harder.
The mechanism that would allow you to see the bias clearly is the same
mechanism the bias has compromised.
Think about what this means in practice. Every time an engineer evaluates a
language that isnt “theirs,” their brain is literally working against them.
Theyre not just analyzing technical trade offs, theyre contemplating a
version of themselves that doesnt exist yet, that feels threatening to the
version that does. The Python developer reads case studies about Gos
performance and their amygdala quietly marks each one as a threat to be
neutralized. The Rust advocate looks at identical problems and their Default
Mode Network constructs narratives about why “only” Rust can solve them.
Were not lying. We genuinely believe our reasoning is sound. Thats what makes
identity based thinking so expensive, and so invisible.
Weve Built Our Industry Around the Wrong Conversation
We call ourselves Pythonistas, Gophers, Rustaceans, we wear these labels like
badges, sometimes we even wear literal badges (t-shirts, stickers, etc).
Theres a reason so many of our surnames come from peoples crafts: Potter,
Smith, Brewer. What we do becomes who we are. What looks like decorative labels
are really decision making frameworks that operate beneath conscious thought.
Weve built our entire industry around the visible conversation. We train
engineers to debate technical merits. We create decision frameworks based on
feature matrices. We think if we just gather enough benchmarks and case
studies, well make the right choice.
But the invisible conversation is much stronger. Its why my CTO chose Perl.
Its why that VP chose Rust. And its operating in your next language decision
right now, invisible and unexamined.
The moment you hire a Rust developer to evaluate languages, youve already
chosen Rust. Youve just added a $2 million feasibility study to make the
predetermined decision feel rational.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
The Real Cost
The question isnt whether this bias exists, the science is conclusive. The
real question is: can you afford to let it make your decisions?
Because the invisible conversation has a price tag. Industry research suggests
that technology stack decisions account for 40-60% of total development costs
over a products lifecycle. [16]Research by Stripe found that developers spend
42% of their time on technical debt. When you let identity drive that decision
youre mortgaging your velocity, your budget, and your runway to pay for
someones sense of self.
The visible conversation is about technology. The invisible conversation is
about identity. And the invisible conversation always wins.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
A New Framework: Language as Economic Decision
So how do we win, when the invisible conversation is constantly working against
us?  Change the conversation entirely.
Instead of asking “which language is best?” we need to ask “what is this
language going to cost us?” Not just in salaries, but in velocity, in technical
debt, in hiring difficulty, in operational complexity, in every dimension that
actually determines whether you survive.
Reframe it from a technical debate to an economic one. And unlike identity,
economics can be measured, compared, and decided without anyones ego being
threatened.
Choosing a programming language is the single most expensive economic decision
your company will make. It will define your culture, constrain your budget,
determine your hiring pipeline, set your operational costs, and ultimately
dictate whether you can move fast enough to win your market.
We need a framework that makes the invisible costs visible. One that lets us
have the economic conversation instead of the identity conversation. One that
works whether youre choosing your first language or evaluating a migration.
Our industry has never really had that framework… Until now.
Up Next
In my next post, Ill introduce the 9 Factors of a Languages True Cost: a
comprehensive framework for evaluating language decisions based on economics,
not identity. Youll learn how to quantify the hidden costs, predict long term
impact, and make defensible decisions that your team can align behind,
regardless of their language preferences.
On this page
On this page
• [18]The Leadership Blindspot: How Identity Drives Multi-Million Dollar
Technical Debt
• [19]The Pattern Repeats
• [20]Every Technical Debate Is Really Two Conversations
• [21]The Neuroscience of Why You Cant See Your Own Bias
• [22]Weve Built Our Industry Around the Wrong Conversation
• [23]The Real Cost
• [24]A New Framework: Language as Economic Decision
• [25]
• [26]
• [27]
• [28]
You may also like
[29]See all Programming-Languages
12 Sep 2025 [30]
[31]How Benjamin Franklin Invented Machine Learning in 1720
Benjamin Franklin discovered gradient descent 250 years before we had the
mathematics to describe it.
28 Apr 2011 [32]
[33]My Favorite Rands Posts
If you dont know Rands (real name Michael Lopp), you should. His blog is full
of excellent …
22 Mar 2010 [34]
[35]Finding the Right People
Since I began at Open Sky a few weeks ago I have been tasked with building out
a great team. …
Steve Francia
For 3 decades, Ive helped transform breakthrough ideas into trusted platforms
now used by more than 50% of the worlds developers. Ive scaled this impact
through leadership at [36]Google, [37]MongoDB, [38]Docker, and [39]Two Sigma as
Managing Director, VP, and Product Leader shaping the tools that power modern
software development.
My approach is simple: listen deeply, build elegantly, and maintain a healthy
disregard for the impossible.
This philosophy guided me through architecting [40]MongoDBs user experience
that sparked mass adoption, scaling [41]Go from 400K to 4.5 million developers
at [42]Google, pioneering [43]container standards at [44]Docker, and directing
AI platform innovation at [45]Two Sigma.
While technical problems are exciting to solve, Ive learned that its the
human stack: the teams, cultures, and communities we build that truly
determines lasting impact. Here, I share lessons on building products and teams
that not only work, but endure and inspire.
• [46]
• [47]
• [48]
2025 © [49]spf13. All Right Reserved. Published with [50]Hugo.
References:
[1] https://spf13.com/
[2] https://spf13.com/
[3] https://spf13.com/about
[4] https://spf13.com/topics
[5] https://spf13.com/presentation
[7] https://spf13.com/about/
[8] https://spf13.com/about/
[9] https://spf13.com/tags/programming-languages/
[10] https://spf13.com/tags/leadership/
[11] https://spf13.com/tags/engineering-culture/
[12] https://spf13.com/tags/management/
[13] https://spf13.com/tags/economy/
[14] https://dornsife.usc.edu/news/stories/which-brain-networks-respond-when-someone-sticks-to-a-belief/
[15] https://www.nature.com/articles/srep39589
[16] https://stripe.com/reports/developer-coefficient-2018
[18] https://spf13.com/p/the-hidden-conversation/#the-leadership-blindspot-how-identity-drives-multi-million-dollar-technical-debt
[19] https://spf13.com/p/the-hidden-conversation/#the-pattern-repeats
[20] https://spf13.com/p/the-hidden-conversation/#every-technical-debate-is-really-two-conversations
[21] https://spf13.com/p/the-hidden-conversation/#the-neuroscience-of-why-you-cant-see-your-own-bias
[22] https://spf13.com/p/the-hidden-conversation/#weve-built-our-industry-around-the-wrong-conversation
[23] https://spf13.com/p/the-hidden-conversation/#the-real-cost
[24] https://spf13.com/p/the-hidden-conversation/#a-new-framework-language-as-economic-decision
[25] https://twitter.com/intent/tweet?text=Why%20Engineers%20Can%27t%20Be%20Rational%20About%20Programming%20Languages&url=https%3a%2f%2fspf13.com%2fp%2fthe-hidden-conversation%2f
[26] https://www.facebook.com/sharer/sharer.php?u=https%3a%2f%2fspf13.com%2fp%2fthe-hidden-conversation%2f
[27] http://pinterest.com/pin/create/button/?url=https%3a%2f%2fspf13.com%2fp%2fthe-hidden-conversation%2f&media=https%3a%2f%2fspf13.com%2f&description=Why%20Engineers%20Can%27t%20Be%20Rational%20About%20Programming%20Languages
[28] https://www.linkedin.com/shareArticle?mini=true&url=https%3a%2f%2fspf13.com%2fp%2fthe-hidden-conversation%2f&title=Why%20Engineers%20Can%27t%20Be%20Rational%20About%20Programming%20Languages&summary=The%20neuroscience%20of%20why%20we%20make%20million%20dollar%20decisions%20based%20on%20identity%2c%20not%20data.&source=Why%20Engineers%20Can%27t%20Be%20Rational%20About%20Programming%20Languages
[29] https://spf13.com/tags/programming-languages/
[30] https://spf13.com/p/how-benjamin-franklin-invented-machine-learning-in-1720/
[31] https://spf13.com/p/how-benjamin-franklin-invented-machine-learning-in-1720/
[32] https://spf13.com/post/my-favorite-rands-posts/
[33] https://spf13.com/post/my-favorite-rands-posts/
[34] https://spf13.com/post/finding-the-right-people/
[35] https://spf13.com/post/finding-the-right-people/
[36] https://google.com/
[37] https://mongodb.com/
[38] https://docker.com/
[39] https://www.twosigma.com/
[40] https://mongodb.com/
[41] https://go.dev/
[42] https://google.com/
[43] https://www.opencontainers.org/
[44] https://docker.com/
[45] https://www.twosigma.com/
[46] https://twitter.com/spf13
[47] https://github.com/spf13
[48] https://www.linkedin.com/in/stevefrancia/
[49] https://spf13.com/
[50] https://gohugo.io/