davideisinger.com

My personal website
Log | Files | Refs | README

spf13-com-enwyvy.txt (19480B)


      1 [1]spf13
      2 Menu
      3 
      4   • [2]Home
      5   • [3]About
      6   • [4]Topics
      7   • [5]Presentations
      8      9 
     10 Search for Blog [6][                    ]
     11 
     12 Why Engineers Can't Be Rational About Programming Languages
     13 
     14 [7]
     15 [8]Steve Francia 3 Nov 2025
     16 [9]Programming-Languages [10]Leadership [11]Engineering-Culture [12]Management 
     17 [13]Economy
     18     19 
     20 Series Overview
     21 
     22 This is the first entry in a series on the true cost of a programming language.
     23 
     24 The Leadership Blindspot: How Identity Drives Multi-Million Dollar Technical
     25 Debt
     26 
     27 A programming language is the single most expensive choice a company makes, yet
     28 we treat it like a technical debate. After watching this mistake bankrupt
     29 dozens of companies and hurt hundreds more, I’ve learned the uncomfortable
     30 truth: these decisions are rarely about technology. They’re about identity,
     31 emotion, and ego, and they’re destroying your velocity and budget in ways you
     32 can’t see until it’s too late.
     33 
     34 Early in my career, I worked at Takkle, a promising social network. A sudden
     35 departure vaulted me from lead engineer to VP of Engineering, leading a team of
     36 12. While we were delivering on all our goals, I was in my early 20s and lacked
     37 experience, a risk our board wanted to fix. They pressured our CEO to recruit a
     38 CTO with more experience. I looked forward to learning from him; he was a well
     39 known figure in the Perl community and arrived with a stack of O’Reilly “camel”
     40 books.
     41 
     42 One of his first acts was to pronounce our language, PHP, the wrong choice. He
     43 decreed a switch to Perl. This decree happened after what felt to me like a
     44 sham analysis comparing PHP and Perl.
     45 
     46 Our velocity collapsed. Our team had to not only learn a new language but
     47 rebuild from scratch, delaying our product by nine months. Our monthly burn
     48 rate jumped from $200K to $500K as we more than doubled our size to make up for
     49 the lost velocity while building the new Perl based system, which halved our
     50 runway.
     51 
     52 Our CTO did deliver, at least on some of his promises. We built a beautiful
     53 system, one I was truly proud of. But it was too late. By the time we finally
     54 launched, the market opportunity had vanished. Facebook had now expanded beyond
     55 colleges, and we were at the end of our monitary runway. The increased spend
     56 had shortened our runway by half, and we didn’t have enough momentum with the
     57 new site to reach the milestones required to raise more money.
     58 
     59 I’ve often wondered: What if we had just stuck with PHP? We had a fine system
     60 and real momentum. We would have launched much earlier at a fraction of the
     61 cost. PHP was good enough for Facebook; why not us?
     62 
     63 But the question that haunted me was: Why did such an experienced leader make
     64 such an terrible mistake?
     65 
     66 Promises Made
     67 
     68   • Switching to Perl would unlock the architecture we needed
     69   • Rebuilding from scratch would accelerate hiring and quality
     70 
     71 Reality Delivered
     72 
     73   • Velocity collapsed as the team relearned and rebuilt everything
     74   • Burn rate jumped from $200K to $500K per month
     75 
     76 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
     77 
     78 The Pattern Repeats
     79 
     80 As my career progressed I saw this same pattern over and over. As Languages
     81 Product Lead at Google, my group included C++, Java, Go, and Python. At
     82 MongoDB, I managed teams writing in 13 different languages. In both places I
     83 saw brilliant engineers arguing past each other, armed with conflicting data,
     84 all of it true, but none of it complete. At Google Cloud, I saw these same
     85 challenges across our customers.
     86 
     87 Fast forward two decades from Takkle, and I had déjà vu. I watched as a VP of
     88 Engineering presented to leadership why his team needed to build their next
     89 system in Rust. The presentation eerily paralleled that Takkle experience. In
     90 that old presentation, nearly every reason the CTO gave for Perl was truer of
     91 PHP at the time. Now, every single reason given for choosing Rust in this
     92 presentation, Go was objectively better at. As an example: they cited “easy
     93 build and deploy” as a Rust advantage. It’s true that this is a strength of
     94 Rust, but Go’s nearly instant cross compilation and single static binary is
     95 even stronger than Rust in this specic critera with Rust’s very long build
     96 times.
     97 
     98 It’s not that I think they should have chosen Go, Go would have been the wrong
     99 choice for their situation, and I believe Rust was the right choice. But what
    100 struck me was how broken their reasoning was. If they were making a logical
    101 argument, surely they would have considered Go and in doing so with their
    102 presented criteria they would have realized Go was a better option and, at the
    103 very least, refined their critera.
    104 
    105 I pulled the VP aside after the meeting. “Walk me through how you evaluated
    106 other language candidates,” I said. His face went blank. “We… didn’t
    107 really look at any others,” he admitted. “Everyone’s talking about Rust.” There
    108 it was: a 50 million dollar decision made on hype, about to be green lit.
    109 
    110 For me this was the moment of epiphany, finally an answer to the question for
    111 the beginning of my career. The presentation didn’t share an analysis, they
    112 hadn’t done one; it was a justification for a choice already made. This was a
    113 decision based purely on hype, emotion, and identity.
    114 
    115 Every Technical Debate Is Really Two Conversations
    116 
    117 In every language discussion, two conversations are happening simultaneously.
    118 
    119 The Visible Conversation: “Rust has memory safety without garbage collection.”
    120 “Go has faster compile times and easier deployment.” “Python has the richest ML
    121 ecosystem.”
    122 
    123 The Invisible Conversation: “I am a Rust programmer.” “I want to become a Rust
    124 programmer.” “I cannot imagine being someone who doesn’t choose Rust.”
    125 
    126 If you just read that and thought “well, my last language choice was different,
    127 I was being rational,” your invisible conversation is running right now,
    128 defending itself while you read this sentence.
    129 
    130 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    131 
    132 My CTO at Takkle was having the invisible conversation. Every point in his
    133 visible Perl analysis was technically true, but it felt like a sham because it
    134 was only there to cover the much deeper invisible conversation. He wasn’t
    135 evaluating languages. He was protecting an identity he’d spent a decade
    136 building. What our company paid $300K per month extra for wasn’t better
    137 architecture or faster hiring. We paid for the opportunity for him to be a Perl
    138 CTO instead of a PHP CTO. That was the real transaction. The rebuild was just
    139 the payment plan.
    140 
    141 That VP’s Rust presentation listed “easy build and deploy” as an advantage,
    142 technically true, but Go is objectively better on that specific criterion. If
    143 they were truly having the visible conversation, they would have caught that.
    144 They would have at least considered Go in their analysis.
    145 
    146 They hadn’t. Because they weren’t having that conversation at all. And they
    147 were about to spend $50 million on the invisible one.
    148 
    149 The Neuroscience of Why You Can’t See Your Own Bias
    150 
    151 In one of the most [14]fascinating studies done in the past 20 years,
    152 researchers set out to understand why people cling to beliefs even when
    153 confronted with overwhelming contradictory evidence. What [15]they discovered
    154 fundamentally changed our understanding of human decision making.
    155 
    156 The researchers recruited participants and first identified which beliefs were
    157 central to each person’s identity—their core political views, their fundamental
    158 values, the beliefs that defined who they were. Then, while participants lay in
    159 an fMRI scanner, the researchers presented them with carefully constructed
    160 challenges to these identity based beliefs, alongside challenges to beliefs the
    161 participants held but weren’t central to their sense of self.
    162 
    163 The brain scans revealed something remarkable: these two types of challenges
    164 activated completely different neural pathways.
    165 
    166 When a peripheral belief was challenged, something the person believed but
    167 wasn’t core to their identity, the brain’s reasoning centers activated
    168 normally. Participants could consider the evidence, weigh the arguments, and
    169 sometimes even change their minds.
    170 
    171 But when an identity based belief was challenged, the brain responded as if
    172 under physical attack. The amygdala, your threat detection system, the same
    173 system that fires when you encounter a predator or a physical danger, activates
    174 immediately. The insular cortex, which processes emotional pain and disgust,
    175 lit up with activity. Most tellingly, the brain’s Default Mode Network, the
    176 system that maintains your sense of self and personal narrative, went into
    177 defensive mode, working to protect the existing identity rather than evaluate
    178 the new information.
    179 
    180 In other words, your brain wasn’t weighing evidence. It was defending itself
    181 from an existential threat.
    182 
    183 The researchers’ conclusion was stark: “To consider an alternative view, you
    184 have to imagine an alternative version of yourself.”
    185 
    186 Your brain can’t objectively evaluate challenges to identity based beliefs
    187 because doing so requires temporarily dismantling the neural architecture that
    188 defines who you are. It’s not a matter of being more rational or trying harder.
    189 The mechanism that would allow you to see the bias clearly is the same
    190 mechanism the bias has compromised.
    191 
    192 Think about what this means in practice. Every time an engineer evaluates a
    193 language that isn’t “theirs,” their brain is literally working against them.
    194 They’re not just analyzing technical trade offs, they’re contemplating a
    195 version of themselves that doesn’t exist yet, that feels threatening to the
    196 version that does. The Python developer reads case studies about Go’s
    197 performance and their amygdala quietly marks each one as a threat to be
    198 neutralized. The Rust advocate looks at identical problems and their Default
    199 Mode Network constructs narratives about why “only” Rust can solve them.
    200 
    201 We’re not lying. We genuinely believe our reasoning is sound. That’s what makes
    202 identity based thinking so expensive, and so invisible.
    203 
    204 We’ve Built Our Industry Around the Wrong Conversation
    205 
    206 We call ourselves Pythonistas, Gophers, Rustaceans, we wear these labels like
    207 badges, sometimes we even wear literal badges (t-shirts, stickers, etc).
    208 There’s a reason so many of our surnames come from people’s crafts: Potter,
    209 Smith, Brewer. What we do becomes who we are. What looks like decorative labels
    210 are really decision making frameworks that operate beneath conscious thought.
    211 
    212 We’ve built our entire industry around the visible conversation. We train
    213 engineers to debate technical merits. We create decision frameworks based on
    214 feature matrices. We think if we just gather enough benchmarks and case
    215 studies, we’ll make the right choice.
    216 
    217 But the invisible conversation is much stronger. It’s why my CTO chose Perl.
    218 It’s why that VP chose Rust. And it’s operating in your next language decision
    219 right now, invisible and unexamined.
    220 
    221 The moment you hire a Rust developer to evaluate languages, you’ve already
    222 chosen Rust. You’ve just added a $2 million feasibility study to make the
    223 predetermined decision feel rational.
    224 
    225 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    226 
    227 The Real Cost
    228 
    229 The question isn’t whether this bias exists, the science is conclusive. The
    230 real question is: can you afford to let it make your decisions?
    231 
    232 Because the invisible conversation has a price tag. Industry research suggests
    233 that technology stack decisions account for 40-60% of total development costs
    234 over a product’s lifecycle. [16]Research by Stripe found that developers spend
    235 42% of their time on technical debt. When you let identity drive that decision
    236 you’re mortgaging your velocity, your budget, and your runway to pay for
    237 someone’s sense of self.
    238 
    239 The visible conversation is about technology. The invisible conversation is
    240 about identity. And the invisible conversation always wins.
    241 
    242 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    243 
    244 A New Framework: Language as Economic Decision
    245 
    246 So how do we win, when the invisible conversation is constantly working against
    247 us?  Change the conversation entirely.
    248 
    249 Instead of asking “which language is best?” we need to ask “what is this
    250 language going to cost us?” Not just in salaries, but in velocity, in technical
    251 debt, in hiring difficulty, in operational complexity, in every dimension that
    252 actually determines whether you survive.
    253 
    254 Reframe it from a technical debate to an economic one. And unlike identity,
    255 economics can be measured, compared, and decided without anyone’s ego being
    256 threatened.
    257 
    258 Choosing a programming language is the single most expensive economic decision
    259 your company will make. It will define your culture, constrain your budget,
    260 determine your hiring pipeline, set your operational costs, and ultimately
    261 dictate whether you can move fast enough to win your market.
    262 
    263 We need a framework that makes the invisible costs visible. One that lets us
    264 have the economic conversation instead of the identity conversation. One that
    265 works whether you’re choosing your first language or evaluating a migration.
    266 
    267 Our industry has never really had that framework… Until now.
    268 
    269 Up Next
    270 
    271 In my next post, I’ll introduce the 9 Factors of a Language’s True Cost: a
    272 comprehensive framework for evaluating language decisions based on economics,
    273 not identity. You’ll learn how to quantify the hidden costs, predict long term
    274 impact, and make defensible decisions that your team can align behind,
    275 regardless of their language preferences.
    276 On this page
    277 
    278 On this page
    279 
    280   • [18]The Leadership Blindspot: How Identity Drives Multi-Million Dollar
    281     Technical Debt
    282   • [19]The Pattern Repeats
    283   • [20]Every Technical Debate Is Really Two Conversations
    284   • [21]The Neuroscience of Why You Can’t See Your Own Bias
    285   • [22]We’ve Built Our Industry Around the Wrong Conversation
    286   • [23]The Real Cost
    287   • [24]A New Framework: Language as Economic Decision
    288 
    289   • [25]
    290   • [26]
    291   • [27]
    292   • [28]
    293 
    294 You may also like
    295 
    296 [29]See all Programming-Languages
    297 12 Sep 2025 [30]
    298 
    299 [31]How Benjamin Franklin Invented Machine Learning in 1720
    300 
    301 Benjamin Franklin discovered gradient descent 250 years before we had the
    302 mathematics to describe it.
    303 
    304 28 Apr 2011 [32]
    305 
    306 [33]My Favorite Rands Posts
    307 
    308 If you don’t know Rands (real name Michael Lopp), you should. His blog is full
    309 of excellent …
    310 
    311 22 Mar 2010 [34]
    312 
    313 [35]Finding the Right People
    314 
    315 Since I began at Open Sky a few weeks ago I have been tasked with building out
    316 a great team. …
    317 
    318 Steve Francia
    319 
    320 For 3 decades, I’ve helped transform breakthrough ideas into trusted platforms
    321 now used by more than 50% of the world’s developers. I’ve scaled this impact
    322 through leadership at [36]Google, [37]MongoDB, [38]Docker, and [39]Two Sigma as
    323 Managing Director, VP, and Product Leader shaping the tools that power modern
    324 software development.
    325 
    326 My approach is simple: listen deeply, build elegantly, and maintain a healthy
    327 disregard for the impossible.
    328 
    329 This philosophy guided me through architecting [40]MongoDB’s user experience
    330 that sparked mass adoption, scaling [41]Go from 400K to 4.5 million developers
    331 at [42]Google, pioneering [43]container standards at [44]Docker, and directing
    332 AI platform innovation at [45]Two Sigma.
    333 
    334 While technical problems are exciting to solve, I’ve learned that it’s the
    335 human stack: the teams, cultures, and communities we build that truly
    336 determines lasting impact. Here, I share lessons on building products and teams
    337 that not only work, but endure and inspire.
    338 
    339   • [46]
    340   • [47]
    341   • [48]
    342 
    343 2025 © [49]spf13. All Right Reserved. Published with [50]Hugo.
    344 
    345 References:
    346 
    347 [1] https://spf13.com/
    348 [2] https://spf13.com/
    349 [3] https://spf13.com/about
    350 [4] https://spf13.com/topics
    351 [5] https://spf13.com/presentation
    352 [7] https://spf13.com/about/
    353 [8] https://spf13.com/about/
    354 [9] https://spf13.com/tags/programming-languages/
    355 [10] https://spf13.com/tags/leadership/
    356 [11] https://spf13.com/tags/engineering-culture/
    357 [12] https://spf13.com/tags/management/
    358 [13] https://spf13.com/tags/economy/
    359 [14] https://dornsife.usc.edu/news/stories/which-brain-networks-respond-when-someone-sticks-to-a-belief/
    360 [15] https://www.nature.com/articles/srep39589
    361 [16] https://stripe.com/reports/developer-coefficient-2018
    362 [18] https://spf13.com/p/the-hidden-conversation/#the-leadership-blindspot-how-identity-drives-multi-million-dollar-technical-debt
    363 [19] https://spf13.com/p/the-hidden-conversation/#the-pattern-repeats
    364 [20] https://spf13.com/p/the-hidden-conversation/#every-technical-debate-is-really-two-conversations
    365 [21] https://spf13.com/p/the-hidden-conversation/#the-neuroscience-of-why-you-cant-see-your-own-bias
    366 [22] https://spf13.com/p/the-hidden-conversation/#weve-built-our-industry-around-the-wrong-conversation
    367 [23] https://spf13.com/p/the-hidden-conversation/#the-real-cost
    368 [24] https://spf13.com/p/the-hidden-conversation/#a-new-framework-language-as-economic-decision
    369 [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
    370 [26] https://www.facebook.com/sharer/sharer.php?u=https%3a%2f%2fspf13.com%2fp%2fthe-hidden-conversation%2f
    371 [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
    372 [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
    373 [29] https://spf13.com/tags/programming-languages/
    374 [30] https://spf13.com/p/how-benjamin-franklin-invented-machine-learning-in-1720/
    375 [31] https://spf13.com/p/how-benjamin-franklin-invented-machine-learning-in-1720/
    376 [32] https://spf13.com/post/my-favorite-rands-posts/
    377 [33] https://spf13.com/post/my-favorite-rands-posts/
    378 [34] https://spf13.com/post/finding-the-right-people/
    379 [35] https://spf13.com/post/finding-the-right-people/
    380 [36] https://google.com/
    381 [37] https://mongodb.com/
    382 [38] https://docker.com/
    383 [39] https://www.twosigma.com/
    384 [40] https://mongodb.com/
    385 [41] https://go.dev/
    386 [42] https://google.com/
    387 [43] https://www.opencontainers.org/
    388 [44] https://docker.com/
    389 [45] https://www.twosigma.com/
    390 [46] https://twitter.com/spf13
    391 [47] https://github.com/spf13
    392 [48] https://www.linkedin.com/in/stevefrancia/
    393 [49] https://spf13.com/
    394 [50] https://gohugo.io/