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/