Jonathan Blow Warns Software Decay Threatens Critical Infrastructure

Software is in Decline - Jonathan Blow — gamedev cuts

gamedev cuts

Exponential hardware gains mask a systemic degradation in software engineering that risks civilizational failure as society normalizes routine defects.

AI-assisted summary of Software is in Decline - Jonathan Blow — original source. Check the original for full context.

Source published:

Key ideas

  • Jonathan Blow asserts that software is undergoing a gradual decline that threatens civilization because critical infrastructure, from finance to modern avionics, now relies entirely on software without manual fallbacks. (0:00)
  • The appearance of software progress is an illusion fueled by exponential hardware advances, which mask the fact that core software engineering practices and reliability have stagnated or deteriorated. (1:19)
  • While machine learning models represent genuine algorithmic advances, their core mathematical kernels make up less than 1% of an application's codebase, leaving them surrounded by brittle, decaying legacy infrastructure. (1:19)
  • User and developer expectations have plummeted to the point where constant crashes, broken basic features, and nonsensical UI bugs across industry-standard tools are passively accepted as normal background noise. (4:06)

Detailed notes

## Background Published on YouTube by the channel gamedev cuts on August 3, 2022, this clip is an excerpt from game developer Jonathan Blow's presentation "Preventing the Collapse of Civilization" at Thekla, Inc. The video highlights Blow's argument that modern software development is undergoing a systemic, largely unacknowledged decline.

## TL;DR Jonathan Blow presents the thesis that modern software is suffering from a slow-motion decline, masked only by decades of exponential hardware advancements and brute-force compute achievements like machine learning. Drawing historical parallels to the protracted downfalls of the Bronze Age and the Western Roman Empire, Blow argues that critical infrastructure is increasingly vulnerable because public expectations have fallen dramatically. To demonstrate this everyday decay, he details an ongoing log of absurd, pervasive bugs encountered across core developer tooling, consumer operating systems, government web forms, and even capacitive hotel light switches. Blow ultimately warns that society has normalized fundamental failure, failing to recognize that core software reliability is actively worsening rather than progressing.

## Atmosphere & style The presentation carries a deadpan, analytical, and quietly alarming tone, blending high-level civilizational critique with dryly comedic personal grievances. Blow speaks with the measured exasperation of a seasoned practitioner, systematically cataloging technical absurdities until the sheer volume of mundane failures takes on an unsettling weight. Listening to the talk feels like watching someone methodically puncture the tech industry's self-congratulatory narrative, turning routine software nuisances into an eerie warning sign of structural rot.

## Bulletin - [00:00](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=0s) Jonathan Blow asserts that software is undergoing a gradual decline that threatens civilization because critical infrastructure, from finance to modern avionics, now relies entirely on software without manual fallbacks. - [01:19](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=79s) The appearance of software progress is an illusion fueled by exponential hardware advances, which mask the fact that core software engineering practices and reliability have stagnated or deteriorated. - [01:19](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=79s) While machine learning models represent genuine algorithmic advances, their core mathematical kernels make up less than 1% of an application's codebase, leaving them surrounded by brittle, decaying legacy infrastructure. - [04:06](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=246s) User and developer expectations have plummeted to the point where constant crashes, broken basic features, and nonsensical UI bugs across industry-standard tools are passively accepted as normal background noise.

## Key takeaways - [00:00](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=0s) Software is in a 'soft decline' characterized by pervasive friction and bugs, which risks turning into a catastrophic 'hard decline' as society stakes critical survival infrastructure on it. - [00:00](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=0s) Software failures now directly cause fatal real-world accidents, such as modern airplane crashes happening exclusively due to bad software with no mechanical defects. - [00:00](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=0s) Civilizational collapse occurs over centuries, like the Late Bronze Age collapse (~100 years) or the fall of the Western Roman Empire (~300 years), making gradual systemic unraveling imperceptible to those living through it. - [01:19](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=79s) Software has largely free-ridden on massive hardware improvements, giving the false impression that programs are getting better when they are merely executed on exponentially faster microchips. - [01:19](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=79s) Breakthroughs like AlphaGo and real-time facial filters rely primarily on massive brute-force compute rather than robust or innovative software engineering. - [01:19](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=79s) Modern applications consist of a tiny, high-performing mathematical core surrounded by an overwhelming majority of sprawling, fragile scaffolding code for UI, memory, and networking. - [04:06](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=246s) Cultural expectations for software reliability have plummeted from demanding correct execution to reflexively accepting routine restarts and freezing as standard behavior. - [04:06](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=246s) Core developer tooling consistently fails during basic workflows, including Lua terminal prompt errors, Emacs truncating open files during disk writes, and Visual Studio crashing while storing configuration strings. - [06:56](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=416s) Digital storefronts and games routinely fail basic tasks, such as Epic Games Store throwing download errors, Steam freezing on black screens, and games breaking display resolution after an ordinary Alt-Tab. - [06:56](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=416s) Web applications frequently break under simple edge cases, such as an online visa form permanently locking up due to uncleared client-side validation logic after an initial phone number typo. - [06:56](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=416s) Unnecessary software integration is displacing reliable mechanical systems, exemplified by hotel touch-pad air conditioning controls inconsistently triggering the landline telephone to ring. - [09:19](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=559s) A fresh, licensed installation of Adobe Photoshop through Creative Cloud crashed immediately upon selecting 'File > New Document', illustrating out-of-the-box failure on basic functionality. - [09:19](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=559s) The industry's normalization of broken software blinds people to the ongoing degradation, prompting Jonathan Blow to challenge developers to keep a daily log of every software failure they encounter.

## Detailed walkthrough ### [00:00](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=0s) The Thesis of Software Decline and Historical Collapse

Jonathan Blow lays out the central premise of his talk: beneath the apparent boom of modern tech, software is actually suffering a gradual decline. At present, this manifests as a "soft decline"—a pervasive friction of bugs and inconveniences that people shrug off—but it holds the potential to become a catastrophic "hard decline" because modern human civilization has staked its survival on software. Software is embedded into communication networks, financial systems, and transportation infrastructure to the point where fatal failures are already happening without any mechanical fault. Blow emphasizes the stakes with modern aviation: “So, you know, we now have airplanes that kill hundreds of people due to bad software and bad software only, right? There was no other problem with those airplanes.”

Anticipating skepticism from an audience surrounded by seemingly flourishing digital products, Blow draws a parallel to historical civilizational collapses to illustrate how imperceptible decline is from within. The Late Bronze Age collapse destroyed an entire interconnected web of advanced civilizations, yet that collapse unfolded over a century; an individual living through the first twenty years would simply notice minor deteriorations while assuming foundational stability, only for cities to burn every few decades until virtually nothing was left. Similarly, the fall of the Western Roman Empire took roughly 300 years. If an entire system degrades across generations, people gradually adapt their expectations rather than recognizing that they are trapped in a slow-motion systemic unraveling.

- **Late Bronze Age Collapse**: Lasted roughly 100 years, completely wiping out major regional powers through gradual, compounding decay. - **Fall of the Western Roman Empire**: Unfolded over approximately 300 years, demonstrating that societal collapse rarely happens overnight. - **Societal software exposure**: Critical infrastructure (power, communications, avionics) relies entirely on software layers that cannot be replaced by manual fallbacks.

[01:19](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=79s) Free Riding on Hardware and the Illusion of Progress

Responding to the counterargument that soaring tech valuations and ubiquitous smartphones disprove any decline, Blow asserts that software has primarily been coasting on the monumental achievements of computer engineering. Over several decades, microchips have advanced exponentially—an engineering triumph Blow describes as one of the greatest accomplishments in human history. This hardware velocity creates the illusion that software is improving, when in reality programs simply appear faster and more capable because the underlying silicon provides orders of magnitude more compute power. Blow claims that core software engineering methodology and architectural reliability have remained stagnant or actively degraded for years.

When critics point to flashy recent breakthroughs like DeepMind’s AlphaGo defeating grandmasters or mobile apps swapping facial features in real time, Blow explains that these are largely brute-force compute achievements rather than proofs of robust software design. Modern machine learning depends overwhelmingly on vast computational volume; AlphaGo could never have been trained on the consumer or server hardware of twenty years prior. Furthermore, while the mathematical algorithms driving these neural networks have genuinely improved, they constitute an infinitesimal fraction of an application's codebase. The core machine learning kernel is mathematically straightforward and tiny, whereas the surrounding software scaffolding—decoding image bitmaps, dispatching user interface events, managing memory, and coordinating network protocols—is sprawling, brittle, and deteriorating. As Blow puts it: “So I would characterize software as having small local technological improvements like machine learning, with overall inertia or degradation in the rest of the field.”

```mermaid flowchart TD accTitle: The Machine Learning App Architecture accDescr: Diagram contrasting the tiny, high-performing mathematical core of modern software with the sprawling, fragile supporting layers.

subgraph AppContainer["End-User Application (e.g. Face Filter / AI Tool)"] direction TB subgraph DecayingLayers["Decaying, Sprawling Infrastructure (~99% of Code)"] A["OS Event Loop & UI Drivers"] B["Network Layer & Telemetry"] C["Image Bitmaps & File I/O"] end subgraph ModernKernel["Local Algorithmic Advance (<1% of Code)"] D["Math / Inference Core"] end end

A --> B B --> C C --> D

Hardware["Exponential Hardware Gains (Compute & GPUs)"] -.->|"Enables Execution Of"| D ```

[04:06](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=246s) Shrinking Standards and the Daily Friction of Modern Tooling

Blow observes that cultural tolerance for defective software has quietly shifted. Decades ago, computers had a reputation for being confusing or user-unfriendly, but users still expected software to execute correctly according to its instructions. Today, public standards have dropped so low that unexpected freezes, corrupted views, and failures are treated as normal background noise: “But today, if you're using a program and it does something wrong, you're just like, 'Yeah, it's software. Restart it. Whatever.'” To test how bad baseline software quality has truly become, Blow conducted an informal experiment: he began taking a screenshot every time any program he used exhibited an unambiguous bug, crash, or broken behavior during normal daily engineering work.

Within mere days of starting this log, the defects piled up relentlessly across everyday professional development environments: - **Terminal and Lua**: While working on the compiler for his programming language, his command-line console prompt randomly began spitting out `attempt to index a nil value` because the terminal tool was implemented in Lua. - **Emacs**: When Blow switched to his text editor, the automatic reload feature—which had worked reliably for years—triggered prematurely during disk writes, truncating open files in half and forcing manual reverts. - **Gmail**: While composing an internal team email regarding graphics architecture, copying and pasting a line of text forced subsequent typing into a bizarre, three-character-wide column, reviving Word-style rich-text formatting nightmares from the 1990s. - **Visual Studio**: Attempting to supply routine command-line arguments to the debugger caused Microsoft Visual Studio to throw a modal error dialogue stating, `Collection was modified; enumeration operation may not execute`. Blow marveled at the fact that simply storing an inert configuration string failed roughly 4% to 5% of the time.

[06:56](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=416s) Ubiquitous Failure: Games, Bureaucracy, and Hotel Rooms

The pattern of defects extended far beyond developer tooling into leisure, spectator sports, and public web infrastructure. Seeking a break from programming, Blow attempted to download a game via the Epic Games Store, which threw an unspecified error and refused to initiate the download. Switching to Steam, the game downloaded, but opening the installer resulted in a frozen, completely pitch-black window that required terminating the Steam process. Once inside the game, an ordinary Alt-Tab to check another window permanently broke the display resolution, pinning the game into an offset corner and necessitating another restart. Turning to entertainment, Blow tuned into a high-stakes *Counter-Strike* match between Cloud9 and Luminosity Gaming watched by over 100,000 live viewers, only to find the broadcast UI displaying a nonexistent sixth player named `undefined` throughout the entire match.

Routine administrative tasks proved equally fragile. Navigating an online map for the retro game *Ultima IV* failed because the layout engine broke the image across multiple wrapping lines, requiring a browser change. More seriously, while applying online for a travel visa to the Russian Federation, entering an initial phone number typo permanently poisoned the form's client-side validation logic; because the script never cleared the invalid-state flag, Blow had to abort the session, purge browser cookies, and restart the multi-page application from scratch.

The absurdity peaked upon arriving at his hotel in Russia to write the presentation. The room featured software-controlled capacitive touch pads for lighting and climate controls rather than physical mechanical switches. Every so often, tapping the panel to turn the air conditioning on or off caused the landline room telephone to let out a short, phantom ring. The defect wasn't a designed feature—it occurred inconsistently—serving as the ultimate real-world manifestation of brittle, unnecessary software creeping into previously solved mechanical tasks.

[09:19](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=559s) The Normalization of Broken Software

Jonathan Blow shares a fresh, absurd encounter with software degradation that happened just two hours before delivering his talk. Scrambling at the last minute to put together a diagram, he installed a completely legitimate, licensed copy of Adobe Photoshop through Creative Cloud onto his machine. As soon as he opened the application and selected “File > New Document,” the software immediately choked, throwing an error message stating that the new document extension could not be loaded because of a program error. Blow stresses that this was not a rare edge case or an invented hypothetical, but an immediate, out-of-the-box failure on genuine, paid software.

The broader tragedy, Blow argues, is not merely that professional tools fail to execute their most basic functions, but that nobody in the industry or the user base is even caught off guard anymore. Society has become deeply numb to malfunctioning technology. As Jonathan Blow observes, “And so my whole point though is we are not surprised by any of this; my other point is that it's getting worse over time.” Because people have adapted to dealing with broken systems as an everyday reality, the extent of the decay remains largely invisible until someone actively tracks it.

To drive the point home, Blow challenges the audience to conduct a personal experiment in their daily routines. When he originally conceived the idea of documenting software breakdowns, even he did not anticipate just how staggering the final tally would be. As Jonathan Blow urges the audience, “Try counting for yourself just every day—just make a little list of all these things, and I think you'll be surprised how many there are.”

- **The Photoshop Incident:** Right after downloading a fully licensed installation of Adobe Creative Cloud Photoshop to build a presentation diagram, selecting `File` -> `New Document` instantly crashed the feature with: *"The new document extension could not be loaded because of a program error."* - **The Core Argument:** Software reliability is actively deteriorating over time rather than improving, yet collective expectations have dropped so low that catastrophic failures on basic operations are met with passive acceptance.

## Notable quotes > [01:19](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=79s) I would characterize software as having small local technological improvements like machine learning, with overall inertia or degradation in the rest of the field. — Jonathan Blow

## Mentioned Jonathan Blow, DeepMind, AlphaGo, Lua, Emacs, Gmail, Microsoft Visual Studio, Epic Games Store, Steam, Counter-Strike, Cloud9, Luminosity Gaming, Ultima IV, Adobe Photoshop, Adobe Creative Cloud, Late Bronze Age collapse, Western Roman Empire

## Video description Snip taken from "Preventing the Collapse of Civilization / Jonathan Blow (Thekla, Inc)"

Original video: https://www.youtube.com/watch?v=ZSRHeXYDLko

#gamedev #gamedevelopment #jonathanblow #softwaredevelopment

[Source](https://www.youtube.com/watch?v=FeAMiBKi_EM)

中文简报

Jonathan Blow 警告软件衰退危及关键基础设施 硬件性能的指数级增长掩盖了软件工程的系统性退化;随着社会对日常缺陷习以为常,这可能带来文明层面的崩溃风险。 Jonathan Blow 提出论点,认为现代软件正经历一场慢速的衰退,而这一衰退仅被数十年来硬件的指数级进步以及机器学习等暴力计算成就所掩盖。他将此与青铜时代崩溃以及西罗马帝国漫长的衰亡历史进行类比,指出由于公众预期急剧下降,关键基础设施正变得愈发脆弱。为证明这种日常衰退的存在,他详细列举了一份持续记录的荒谬且普遍存在的缺陷清单,涵盖核心开发者工具、消费级操作系统、政府网页表单,乃至酒店的电容式灯光开关。Blow 最终警告称,社会已将根本性故障常态化,未能意识到核心软件的可靠性实际上正在恶化而非进步。 Jonathan Blow 断言,软件正经历渐进式衰退并对文明构成威胁,因为从金融到现代航空电子设备等关键基础设施,如今已完全依赖软件且缺乏人工应急后备方案。 (0:00) 软件进步的表象是由硬件指数级增长带来的假象,这掩盖了核心软件工程实践与可靠性已经停滞或恶化的事实。 (1:19) 尽管机器学习模型代表了真正的算法进步,但其核心数学内核在应用程序代码库中占比不足1%,使其仍被脆弱、衰败的遗留基础设施所包围。 (1:19) 用户和开发者的期望已大幅跌落,以至于行业标准工具中频繁的崩溃、基础功能失效和荒谬的UI缺陷,都被当作正常的背景噪音而被动接受。 (4:06)

Reading summary

Jonathan Blow argues that modern software is undergoing a gradual systemic decline disguised by exponential advances in hardware, creating severe civilizational risks as defective systems become normalized. The Illusion of Progress via Hardware Advances (1:19) Blow contends that soaring tech valuations and ubiquitous digital tools do not reflect healthier software development, but rather software coasting on decades of exponential microchip improvements. While hardware provides vastly more raw compute power, core software engineering methodology and architectural reliability have either stagnated or actively deteriorated. Brittle Scaffolding Around Local Algorithmic Advances (1:19) Breakthroughs like DeepMind's AlphaGo and real-time mobile camera filters are characterized by Blow as brute-force computational feats rather than evidence of robust software design. He points out that while core machine learning mathematical kernels are genuinely advanced, compact, and effective, they represent less than one percent of an application's codebase. The remaining scaffolding—covering user interfaces, memory management, bitmap decoding, and network communication—remains brittle, sprawling, and prone to decay. Systemic Civilizational Risk and Historical Precedents (0:00) Because critical systems such as power grids, telecommunications, financial networks, and avionics rely on software layers lacking manual fallbacks, Blow warns that a "soft decline" of routine friction threatens to become a fatal "hard decline." He highlights modern aviation accidents where airplanes killed hundreds purely due to bad software without any mechanical malfunction. To explain why modern society fails to recognize this trajectory, Blow draws parallels to historical collapses—such as the Late Bronze Age collapse taking roughly 100 years and the fall of the Western Roman Empire spanning 300 years—showing that compounding civilizational decay often unfolds across generations without sounding immediate alarms. Pervasive Friction Across Everyday Tools (4:06) To evaluate baseline quality, Blow documented software defects encountered during his regular engineering and personal routine. Professional tools routinely failed at fundamental tasks: a terminal crashed with a Lua nil-value error, Emacs truncated files during auto-reloads, Gmail compressed typed text into narrow three-character columns, and Visual Studio threw modal enumeration errors when handling simple command-line arguments. Basic commercial software produced similar results, including an out-of-the-box crash when selecting 'File > New Document' in a newly installed, licensed copy of Adobe Photoshop. Normalization of Software Creep and Failure (6:56) The deterioration extends well past developer tooling into entertainment, bureaucratic forms, and physical environments. Blow encountered frozen store launchers, broken in-game resolutions on Alt-Tab, an official esports broadcast displaying an 'undefined' sixth player, and a Russian visa form permanently poisoned by an unhandled input typo. The intrusion of fragile software into mechanical functions was epitomized by a hotel room capacitive touch panel that caused a telephone to ring whenever the air conditioning was toggled. Blow argues that the most alarming aspect of this trend is the complete lack of public surprise, as users have adapted to pervasive malfunction as ordinary background noise. Blow concludes that society has become dangerously numb to dysfunctional technology, lowering standards to accept catastrophic failures on fundamental operations. He challenges developers and users to personally log daily software defects to reveal the true scale of systemic decay.

精炼阅读摘要

游戏开发者与程序员 Jonathan Blow 提出,现代软件工程正处于不易察觉的渐进式衰退中,硬件算力的飞跃掩盖了底层代码质量与系统稳定性的恶化;随着人类社会的关键基础设施与脆弱软件深度绑定,公众对系统性错误的麻木接受正将文明推向不可逆的系统性风险。 历史崩溃隐喻与关键基础设施风险 (0:00) Blow 指出,当代科技繁荣表象之下潜伏着软件质量的缓慢衰退。目前这种衰退主要表现为频繁出现的软件缺陷与琐碎故障等“软性衰退”,但极易演变为灾难性的“硬性衰退”,因为现代文明的运转已完全依赖软件。电力网络、金融系统、通信与航空等基础设施中均嵌入了复杂的软件层,且不存在可行的人工替代方案。Blow 特别以现代航空为例强调,当代客机在没有任何机械故障的情况下,仅因纯粹的软件缺陷就会导致数百人丧命。 针对“数字化产品蓬勃发展即可证伪衰退”的质疑,Blow 借用历史上的文明崩溃过程进行反驳。晚期青铜时代崩溃耗时约100年,由复杂的渐进式衰减最终抹去了整片高度互联的先进文明;西罗马帝国的覆灭同样经历了约300年。身处系统衰败前几十年的个体往往只会注意到细微恶化,误以为社会基石依旧稳固,并在此过程中不断调低心理预期,从而无法察觉代际蔓延的系统性解体正在发生。 硬件红利掩盖架构停滞与AI幻觉 (1:19) Blow 认为,高企的科技公司估值与智能手机的普及制造了一种软件不断进步的错觉,但这一假象实质上是软件行业在坐享计算机工程学巨大突破的红利。过去数十年间微处理器的指数级性能增长构成了人类工程史上的奇迹,这使得即便软件架构与开发方法停滞不前甚至退步,程序依然能凭借底层硬件几千上万倍的算力提升而显得更加流畅和强大。 面对 AlphaGo 击败围棋大师或手机滤镜实时换脸等前沿突破,Blow 反驳称这些本质上是蛮力算力的产物,而非软件设计健壮性的证明。二十年前的硬件算力根本无法训练此类模型。更关键的是,前沿机器学习的核心数学推导代码在整个应用程序中占比不到1%,结构小巧且数学逻辑直接;而支撑其运行的其余99%代码构架——包括操作系统事件循环、UI驱动、位图解码、内存管理及网络协议等外围脚手架——不仅庞大臃肿,而且正处于不断劣化与脆断的状态。 公众容忍度滑坡与专业开发工具故障 (4:06) Blow 观察到社会大众对软件缺陷的文化容忍度发生了危险的偏移。数十年前,计算机软件或许晦涩难用,但人们普遍预期其会严格按指令准确执行;而在今天,死机、画面撕裂与逻辑错误已被视作理所当然,用户普遍形成了“出错了就重启一下”的麻木心态。为了测试基准软件质量究竟恶化到何种程度,Blow 在日常工程开发中进行了一项非正式记录:每当遭遇明确的程序错误或崩溃便截图留证。 在短短数天内,日常专业开发环境便暴露了密集的缺陷:在为其自研编程语言编写编译器时,命令行终端因使用 Lua 编写而随机抛出“试图索引空值”(attempt to index a nil value)错误;文本编辑器 Emacs 运行多年十分可靠的自动重新加载功能,在磁盘写入时过早触发,导致打开的文件直接被腰斩减半;在 Gmail 中撰写图形架构邮件时,仅复制粘贴一行文字便将后续排版强行锁死在极窄的三字符列内;使用微软 Visual Studio 调试器传递常规命令行参数时,界面抛出“集合已被修改,枚举操作无法执行”的模态错误,仅保存一串静态配置字符串就有4%至5%的概率彻底失败。 软件脆弱性蔓延至娱乐政务与实体生活 (6:56) 软件质量的崩塌并未局限于专业工具,而是广泛渗透到了娱乐、公共政务及实体物理设备中。Blow 尝试使用 Epic Games Store 下载游戏时遭遇未知错误并拒绝启动,改用 Steam 下载后安装程序却呈现死锁的纯黑窗口;好不容易进入游戏,仅因一次常规的 Alt-Tab 切屏操作就彻底损坏了显示分辨率,将画面卡在屏幕一角必须强退进程。在观看拥有十万多观众的《反恐精英》电竞直播时,赛事转播 UI 全程显示着一位名为 undefined 的虚构第六人。 政务系统与日常生活的脆弱性同样显著。在浏览复古游戏《最终幻想 IV》(Ultima IV)的在线地图时,浏览器排版引擎直接将图像割裂换行;在申请前往俄罗斯联邦的旅行签证时,因最初输入电话号码出现笔误,客户端验证脚本永久锁死了错误状态且无法自动重置,迫使 Blow 清除浏览器 Cookie 并彻底重填多页申请。甚至在俄罗斯酒店房间中,原本依靠机械开关控制的照明与空调被替换成了电容触摸屏,每次点击开关面板,房间内的座机电话便偶尔发出毫无逻辑的虚假短鸣,暴露出不必要且脆弱的软件代码对原本已完美解决的物理机械任务的侵蚀。 在演讲前两小时,Blow 在正版 Adobe Photoshop 中点击“新建文档”便立即遭遇扩展无法加载的严重程序错误。Blow 总结指出,当前最可怕的危机并非专业工具基础功能的频繁破损,而是从业人员与全社会对这些故障已彻底失去惊讶感并习以为常;他呼吁公众亲自记录每日所遭遇的软件故障,以此看清系统性退化正在发生的事实。

Detailed notes — zh

## Background 该视频由 YouTube 频道 gamedev cuts 于 2022 年 8 月 3 日发布。视频剪辑自知名独立游戏开发者 Jonathan Blow(Thekla, Inc)的著名演讲《Preventing the Collapse of Civilization》(防止文明崩溃),探讨软件行业当前的真实走向。 ## TL;DR Jonathan Blow 提出了一个颠覆常理的核心论点:当今的软件工程非但没有进步,反而正处于隐秘而危险的全面衰退之中。大众所感知的行业繁荣,本质上是软件严重依赖半导体算力爆发而享受的“硬件搭便车”红利,其底层基础架构不仅停滞不前,反而日益臃肿脆弱。随着现代文明已深度绑定软件系统,这种退化正从轻微的不便演变为足以引发灾难性后果的隐患。通过罗列自己在日常开发、娱乐与生活各环节中密集遭遇的荒谬 Bug,Blow 尖锐地指出全行业最大的危机在于整个社会已对劣质软件麻木不仁并彻底妥协。 ## Atmosphere & style 整场演讲呈现出一种警世般的沉郁与冷峻,Jonathan Blow 以其特有的哲学思辨与技术极客视角,将软件工程危机上升到青铜时代与罗马帝国灭亡的历史厚度。演讲节奏从开篇关于文明终结的宏大警示,迅速下沉到日常各种荒唐、滑稽软件缺陷的具体剖析,在引人发笑的现实荒谬感中包裹着深层的行业悲哀。听众在整个过程中会经历从最初的半信半疑,到随同讲者列举的无数离奇 Bug 产生强烈共鸣,最终陷入对现代技术文明基石是否脆弱不堪的深刻反思与战栗之中。 ## Bulletin - [00:00](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=0s) 知名独立游戏开发者 Jonathan Blow 提出现代软件正处于衰退期,随着通信系统、载具等现代文明基础设施全面软件化,劣质代码已经引发过致命空难,温和的技术衰退未来可能演变为不可逆的硬着陆崩溃。 - [01:19](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=79s) Blow 指出软件行业的表面繁荣本质上是在对硬件算力飞跃进行“搭便车”;像 AlphaGo 或实时人脸滤镜等惊艳功能背后的代码量极小且极度依赖算力堆叠,而底层的事件处理与UI基础架构则臃肿脆弱且严重停滞。 - [04:03](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=243s) 全社会对软件可用性的心理预期已彻底滑坡,从正版 Photoshop 无法新建文档到操作系统与专业 IDE 的频繁崩溃,用户与开发者已对系统残缺陷入习得性无助。 ## Key takeaways - [00:00](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=0s) 当今软件技术正处于“温和衰退”阶段,由于现代社会关键基础设施全盘依赖代码,长此以往极可能演变为文明层面的“硬着陆式崩溃”。 - [00:00](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=0s) 青铜时代崩溃历时百年、西罗马帝国灭亡历时三百年,历史表明深处漫长系统性倒退内部的个体往往极难察觉文明整体的瓦解。 - [01:19](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=79s) 大众感受到的软件繁荣并非源自软件工程本身的飞跃,而是过去数十年里软件一直在长期享受半导体与计算硬件红利带来的“搭便车”效应。 - [01:19](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=79s) 类似 AlphaGo 或人脸替换滤镜的前沿应用,其核心数学与算法代码体量非常小,真正惊人的突破本质上是海量硬件算力堆叠的结果。 - [01:19](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=79s) 在机器学习等少数亮点之外,支撑软件生态正常运行的大盘架构(如图像加载、窗口系统、事件响应)处于严重的惯性停滞与质量退化中。 - [04:03](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=243s) 社会大众对软件质量的标准与心理预期已发生彻底滑坡,人们对程序频繁崩溃麻木不仁,普遍默认“出问题重启就好”是正常的。 - [04:03](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=243s) Blow 在日常高频开发工具中随处记录到严重缺陷,例如终端控制台抛出 Lua 空指针报错、Emacs 文件自动重载截断代码文件等。 - [04:03](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=243s) 即使是 Visual Studio 这类大型专业 IDE,仅仅在项目设置中输入运行参数,也会因多线程集合冲突抛出并发异常并崩溃退出。 - [04:03](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=243s) 主流消费级软件同样瑕疵丛生,包括 Gmail 粘贴文本导致输入框异常压缩、Steam 安装弹窗黑屏、游戏后台切回破坏全屏渲染等。 - [04:03](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=243s) 软件缺陷已渗透至物理现实环境,例如酒店客房中由软件控制的轻触式温控面板,每次开关空调都会意外串扰并触发床头座机短促作响。 - [09:19](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=559s) 正版且高昂的工业级商业软件如 Adobe Photoshop,在刚安装好执行最基础的“新建文档”操作时便会因扩展程序错误直接报错失效。 - [09:19](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=559s) 软件质量正随着时间推移不断恶化,大众若尝试在日常中随手记录遇到的软件 Bug,会发现系统溃败的普遍程度远超直觉想象。 ## Detailed walkthrough ### [00:00](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=0s) 软件衰退论与文明崩溃的隐形过程 Jonathan Blow 提出了本场演讲的核心论点:当今的软件技术实际上正处于衰退之中。目前的衰退或许只是一种“温和的衰退”(soft decline),仅仅给日常生活带来诸多不便;但长此以往,它极有可能演变成一场“硬着陆式的崩溃”(hard decline)。这是因为现代文明已经彻底建立在软件之上——通信系统、各类载具全都依赖代码运行,甚至已经出现“仅仅由于劣质软件,没有任何其他机械故障就导致数百人丧生”的客机坠毁悲剧。Blow 坦言,大多数人听到“软件正在衰退”时根本不会相信,因为表面上看软件行业无比繁荣,因此他必须说服观众认识到这种视角的合理性。 为了说明这种危机的隐蔽性,Blow 以历史上著名的文明崩溃为例。席卷众多古文明的青铜时代崩溃(Bronze Age Collapse)规模极其庞大,但整个过程持续了大约一百年。身处崩溃初期的前二十年,人们往往只会觉得“日子不如二十年前好了,但大体上还过得去”;然而就在这种麻痹中,每过二十年便又有数座城市被付之一炬,直至整个文明化为乌有。同样,西罗马帝国的灭亡也跨越了约三百年。Blow 向观众发问:如果你正身处一场如此漫长而缓慢的文明崩溃之中,你是否能从系统内部察觉到它的发生? Jonathan Blow 总结道: > “And my thesis for the rest of this talk is that software is actually in decline right now; it's in maybe a soft decline that just makes things really inconvenient for us, but it could lead to a hard decline later on because our civilization depends on software.” - 现代文明的基础设施全面软件化,劣质软件已直接导致致命的空难事故。 - 青铜时代崩溃历时约 100 年,生活在其中的人们往往难以在早期察觉文明的整体瓦解。 - 罗马帝国衰亡历经约 300 年,身处内部的个体极易将缓慢的技术与制度倒退视为寻常。 --- ### [01:19](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=79s) 硬件红利下的软件“搭便车”现象 面对“软件行业明明蓬勃发展、互联网巨头日进斗金、彻底改变了人类生活”的普遍反驳,Blow 指出,大众所看到的繁荣本质上是软件在过去数十年里一直对硬件进步“搭便车”(free riding on hardware)。半导体与计算硬件持续以惊人的速度飞跃,堪称人类历史上最伟大的成就之一;而软件之所以表面上看起来“越来越好”,核心原因仅仅是它运行在了性能大幅提升的硬件之上,软件工程本身的技术水平早已停滞不前。 即便是近几年看似不可思议的技术突破——例如击败人类围棋顶尖高手的 AlphaGo,或是 Instagram 等社交软件上的实时人脸替换滤镜——追根溯源依然是海量算力支撑的结果。现代机器学习算法高度依赖惊人的计算量,在二十年前的硬件条件下根本不可能训练出 AlphaGo。虽然算法理论确实有所进展,但机器学习在整个软件工程全貌中仅仅占据极小的局部。 Blow 深入剖析道,无论是围棋 AI 还是手机滤镜,真正执行机器学习、生成惊艳效果的代码部分在数学逻辑明确后其实非常简单,甚至可以说是极小的一块组件。相反,真正庞大、臃肿且脆弱的,是那些负责底层图像位图加载、窗口系统交互、事件响应处理的基础支撑代码。Blow 形象地将当前技术生态概括为:在局部领域(如机器学习)存在微小的新技术亮点,但在整个软件行业的大盘上,迎来的却是惯性停滞甚至全面退化。 Jonathan Blow 明确指出: > “Software technology itself has not improved in quite a while, I claim, right?” ```mermaid flowchart TD accTitle: 软件技术表象与底层现实 accDescr: 展示硬件驱动的算力红利与核心功能、繁杂基础架构之间的对比关系 subgraph HardwareAdvancement["硬件巨大飞跃(算力红利)"] HW["底层计算芯片性能暴涨"] end subgraph SoftwareReality["软件系统真实结构"] ML["高光创新模块<br/>(如 ML/AlphaGo/换脸滤镜)<br/>代码量极小 · 依赖算力堆叠"] Core["繁杂基础架构系统<br/>(位图加载、UI响应、事件处理)<br/>体积庞大 · 混乱脆弱 · 处于退化中"] end HW -->|"提供强力支撑"| ML HW -.->|"掩盖效率缺陷"| Core ``` --- ### [04:03](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=243s) 心理预期的滑坡与日常软件缺陷观察 Blow 指出,软件退化最直观的证据在于:全社会对软件能够正常工作的预期已经彻底崩溃。过去的计算机系统虽然也常被认为古怪费解,但那多半源于缺乏用户友好度或操作门槛高;而在今天,当程序崩溃或行为失常时,所有人早已麻木不仁地默认“软件就是这样的,重启一下就好”。为了衡量日常生活中究竟需要忍受多少糟糕软件,Blow 决定做个实验:每当遇到软件出现明显 Bug、反直觉或错误行为时,就随手截一张图。结果在短短几天内,这种荒谬的缺陷便接踵而至,而且根本不需要刻意寻找: 他在命令行中为自己正在开发的编程语言维护编译器时,使用的终端控制台运行一段时间后,提示符就会莫名报错并打印 `attempt to index a nil value`,究其原因竟然是控制台内部用了 Lua 脚本;当他切换到 Emacs 编辑代码时,原本稳定的文件自动重载功能不知在哪个版本被改坏了,重载触发过早导致文件只读入了一半,不得不每次手动重新重置;当他在 Gmail 中给团队回复关于图形引擎的邮件时,仅仅从旧邮件里复制粘贴了一行文字,正文输入框就瞬间被压缩成只有三个字符宽的细长竖条,直接复现了 90 年代和 2000 年代 Microsoft Word 里最让人抓狂的排版幽灵 Bug,怎么删也删不掉。 这种粗制滥造同样蔓延到专业开发工具与娱乐日常中。当 Blow 打开 Visual Studio 试图在项目设置里输入几个命令行参数时,界面直接弹窗崩溃并提示 `collection was modified; enumeration operation may not execute`——仅仅是暂存一个供后续启动使用的普通字符串,IDE 居然都会遍历集合冲突。工作之余想玩游戏放松时,Epic Games 客户端毫无理由地拒绝启动下载;换用相对老牌可靠的 Steam 虽能下载,但弹出的安装窗口却是一片漆黑,必须重启 Steam;好不容易进入游戏,切到后台 `Alt+Tab` 查看信息后再切回来,全屏分辨率瞬间崩溃,游戏画面直接缩在屏幕角落,必须重启游戏;甚至在观看有十万人同时在线的《反恐精英》(CS:GO)职业比赛(Cloud9 对阵 Luminosity Gaming)时,比分板左侧整场比赛赫然挂着一名名为 `undefined` 的神秘第六人。 Blow 随后分享了更多令人哭笑不得的例子:在查询老游戏《创世纪4》(Ultima IV)的地图网站上,网页排版混乱换行,逼得他更换浏览器排查;在申请俄罗斯签证的官方网站填写个人信息时,仅因手机号输入格式不合要求,校验报错状态便被锁死在变量中再也无法清除,必须彻底清空 Cookie 重启浏览器才能重新填写。更离谱的是,就在他撰写本次演讲文稿的俄罗斯酒店房间里,墙上配有一套由软件控制的无触感轻触式温控与照明面板;不知出于什么怪异的底层布线或逻辑冲突,每次只要他开关房间内的空调,床头的电话就会莫名其妙地短促响一声,随后又归于沉寂。 Jonathan Blow 犀利地反思了大众对软件质量标准的妥协: > “And today, if you're using a program and it does something wrong, you're just like, 'Yeah, it's software, restart it, whatever' — and that didn't use to be.” - **终端控制台崩溃**:命令行终端因内部嵌入的 Lua 脚本出现空指针索引报错(`attempt to index a nil value`)。 - **Emacs 截断错误**:修改后自动重载机制过早触发读取,导致载入代码文件缺失一半内容。 - **Gmail 排版混乱**:单纯复制粘贴单行文本便导致输入流崩溃为 3 字符宽度的异常窄列。 - **Visual Studio 集合并发 Bug**:仅在文本框设置运行参数即抛出 `collection was modified; enumeration operation may not execute` 异常。 - **游戏客户端及运行时故障**:Epic 无法启动下载、Steam 安装界面全黑、游戏后台切回破坏全屏渲染。 - **职业赛事与官方网站瑕疵**:十万人观看的 CS 赛事界面常驻 `undefined` 选手字段;签证申请系统输入校验状态锁死不可逆。 - **物理世界硬件串扰**:酒店房间墙壁软件温控面板每次开关空调,均会异常触发客房座机发生短促误铃。 ### [09:19](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=559s) 软件故障的常态化与习以为常的衰退 Jonathan Blow 强调自己所列举的这些软硬件故障绝非夸大其词,而是实实在在发生在他生活中的日常。为了准备这场演讲,他在登台前两小时还在争分夺秒地赶制一张示意图。为此,他特意在电脑上下载安装了完全合法、正版授权的 Adobe Creative Cloud Photoshop。然而,软件安装好后,他进行的最基础的第一步操作——点击“文件 -> 新建文档”(File -> New Document)——屏幕上便直接弹出一道冰冷的错误提示:“由于程序错误,无法加载新文档扩展”(the new document extension could not be loaded because of a program error)。一个历史悠久、收费高昂的主流专业软件,甚至连最根本的创建空白文件功能都会在开箱瞬间崩溃,这一荒谬场景令他哭笑不得。 但这并不是最令人担忧的部分。Jonathan Blow 指出,更严重的问题在于面对如此频繁的系统溃败,行业和大众已经变得彻底麻木:“And so my whole point though is we are not surprised by any of this.”(所以我的核心观点是,我们对这一切居然完全不感到意外。)与此同时,软件质量并没有随着技术演进而提升,反而呈现出退化趋势:“My other point is that it's getting worse over time.”(我的另一个观点是,情况随着时间的推移正在变得越来越糟。)人们之所以意识不到危机的严重程度,只是因为大家早已被迫习惯了软件的残缺与不可靠。他建议在场的听众不妨亲自做个实验:“Try counting for yourself just every day just make a little list of all these things and I think you'll be surprised how many there are.”(试着每天亲自记录一下,把所有碰到的这些问题列一张小清单,我想你会惊讶于它们到底有多普遍。) - **正版工业级软件的基础功能失效**:Jonathan Blow 在演讲前两小时下载的正版 Adobe Creative Cloud Photoshop,在首次执行“新建文档”操作时便因“程序错误无法加载扩展”而报错。 - **对故障失去敏感度**:现代计算机用户和开发者已经对基础功能的损毁产生习得性无助,对恶劣的软件质量不再感到震惊或愤怒。 - **退化趋势加剧**:软件整体质量正随着时间推移不断滑坡;如果个人每天开始记录遭遇的软件 Bug 和故障,其累积数量将远超人们的直觉预估。 ## Notable quotes > [00:00](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=0s) And my thesis for the rest of this talk is that software is actually in decline right now; it's in maybe a soft decline that just makes things really inconvenient for us, but it could lead to a hard decline later on because our civilization depends on software. — Jonathan Blow > [04:03](https://www.youtube.com/watch?v=FeAMiBKi_EM&t=243s) And today, if you're using a program and it does something wrong, you're just like, 'Yeah, it's software, restart it, whatever' — and that didn't use to be. — Jonathan Blow ## Mentioned Jonathan Blow, AlphaGo, Instagram, Lua, Emacs, Gmail, Microsoft Word, Visual Studio, Epic Games, Steam, Counter-Strike: Global Offensive, Cloud9, Luminosity Gaming, Ultima IV, Adobe Creative Cloud Photoshop ## Video description Snip taken from "Preventing the Collapse of Civilization / Jonathan Blow (Thekla, Inc)" Original video: https://www.youtube.com/watch?v=ZSRHeXYDLko #gamedev #gamedevelopment #jonathanblow #softwaredevelopment [Source](https://www.youtube.com/watch?v=FeAMiBKi_EM)

Source quotes

[0:00] Jonathan Blow: And my thesis for the rest of this talk is that software is actually in decline right now; it's in maybe a soft decline that just makes things really inconvenient for us, but it could lead to a hard decline later on because our civilization depends on software. [4:03] Jonathan Blow: And today, if you're using a program and it does something wrong, you're just like, 'Yeah, it's software, restart it, whatever' — and that didn't use to be.

Source quotes

[1:19] Jonathan Blow: I would characterize software as having small local technological improvements like machine learning, with overall inertia or degradation in the rest of the field.

Original transcript

[0:00] and my thesis for the rest of this talk [0:01] is that software is actually in decline [0:03] right now it's in maybe a soft decline [0:06] that just makes things really [0:07] inconvenient for us but it could lead to [0:09] a hard decline later on because our [0:11] civilization [0:12] depends on software we put it everywhere [0:15] all our communication systems are [0:16] software our vehicles are software so [0:19] you know we now have airplanes that kill [0:20] hundreds of people due to bad software [0:22] and bad software only right there was no [0:24] other problem with those airplanes [0:26] um [0:28] now i don't think most people would [0:30] believe me [0:31] if i say software is in decline it sure [0:33] seems like it's flourishing so i have to [0:35] convince you [0:36] at least that this is a plausible [0:38] perspective and that's my goal for the [0:39] rest of this talk and what i'll say [0:41] about that is [0:43] these collapses like we're talking about [0:44] that bronze age collapse was massive [0:47] like all these civilizations were [0:49] destroyed but it took a hundred years so [0:51] if you're at the beginning of that [0:52] collapse in the first 20 years you might [0:54] think well [0:55] things aren't as good as they were 20 [0:57] years ago but it's fine we're basically [0:58] the same right but then you keep [1:01] thinking that you keep thinking that [1:02] every 20 years another couple cities get [1:04] burned to the ground and then eventually [1:06] there's like nothing right [1:08] um fall of the roman empire was about [1:10] 300 years so if you're in the middle of [1:12] a very slow collapse like that would you [1:14] recognize it would you know what it [1:16] looked like from the inside [1:19] so of course i expect the reply to what [1:21] i'm saying to be your crazy [1:23] software is doing great look at all [1:24] these internet companies that are making [1:26] all this money and changing the way that [1:27] we live [1:29] you know and i would say yes that is all [1:31] happening [1:32] but what is really happening [1:34] is that software has been free riding on [1:36] hardware [1:39] for the past many decades [1:41] we've had amazing advances in hardware [1:43] technology computers keep getting faster [1:45] and faster um it's really one of the [1:48] greatest accomplishments in human [1:49] history that we've somehow managed to do [1:51] that and software gets better in air [1:55] quotes uh because it has better hardware [1:58] to run on that's the main reason [2:00] software technology itself has not [2:03] improved in quite a while i claim right [2:06] and you can say but look at all these [2:07] examples of cool stuff we can do even in [2:10] the past couple of years so like alphago [2:12] was an ai that'll beat human players at [2:14] go [2:15] and you can go on like instagram or [2:18] whatever app and like make your face [2:19] look like somebody else's face that's [2:21] crazy we didn't used to be able to do [2:23] that and that's true [2:25] but one [2:27] most of these again are products of [2:28] hardware being fast most of these cool [2:31] things that we do now are due to machine [2:33] learning algorithms and it's you know [2:35] those really are relying on quantity of [2:37] computation right now to produce [2:40] impressive results it's hard to imagine [2:42] being able to train alphago 20 years ago [2:44] on the computers we had at that time [2:46] right so it's not as there are software [2:49] technology improvements here right [2:51] machine learning learning algorithms [2:52] have legitimately gotten better but [2:55] there's two things to say about that [2:57] um [3:00] uh well the main thing to say about it i [3:02] will say is just that it's a minority of [3:05] actual software technology right so the [3:08] of the volume of things that we run the [3:10] thing that runs the machine learning [3:12] algorithm that produces the actual [3:13] impressive result is a very small piece [3:16] of the program it's actually really [3:18] simple [3:19] once you understand the math and [3:20] especially if you don't have to train it [3:22] if you just have to use it right [3:24] um and so when you take an app on your [3:26] phone like that that does something [3:27] funny with your picture the part of it [3:29] that does the thing that we think is [3:31] cool and really value that piece of [3:33] software is tremendously simple [3:36] compared to all the stuff about like [3:38] loading the bitmap for your face or [3:41] responding to user input events right [3:43] that part of the software is huge and [3:46] complicated and is the part that's kind [3:47] of falling apart so i would characterize [3:50] software as having small local [3:52] technological improvements like machine [3:54] learning [3:55] with overall inertia or degradation in [3:58] the rest of the field and we're very [4:00] impressed by the improvements though [4:01] right [4:03] and let me illustrate the degradation [4:05] part [4:06] as best i can [4:08] and it's to say that we simply don't [4:09] expect software to work anymore and i'm [4:12] not sure when this happened you know [4:14] computers always had a reputation for [4:16] being a little bit funny uh but it you [4:18] know if you go back many decades ago it [4:20] was generally due to like [4:22] not being user friendly or [4:24] hard to understand how to use it [4:26] but today if you're using a program and [4:28] it does something wrong you're just like [4:30] yeah it's software restart it whatever [4:35] and that didn't used to be [4:38] and if our standards are shrinking over [4:40] time how low can they shrink before it [4:42] becomes unsustainable so i decided uh to [4:45] say you know i want to quantify or [4:47] illustrate [4:48] how much i put up with this from day to [4:50] day so from now on i'm just going to [4:52] take a screenshot every time any piece [4:54] of software that i use has an obvious [4:56] bug or you know unintuitive or incorrect [4:59] piece of behavior [5:00] and [5:01] well i write it right when i decided [5:03] that i was working uh on my compiler uh [5:06] in the command line and the console that [5:08] i use after a while just starts saying [5:10] attempt to index a nil value in the [5:12] prompt because it's written in lua for [5:14] some reason [5:15] uh [5:16] then i go to emacs and i'm working on my [5:17] code and uh emacs is set to reload files [5:21] that have been modified and that used to [5:23] work fine but at some point they broke [5:24] it so that it reloads the file too early [5:27] and doesn't get the whole thing and half [5:28] of it is cut off and i have to like [5:30] manually reset that every time it [5:32] happens [5:33] um then i go to gmail and i'm going to [5:36] send an email to the rest of the team [5:37] about some graphics stuff making [5:39] decisions about what to do and i copy a [5:41] line of a previous email and paste it [5:44] into the reply box [5:45] and then i start typing my reply and it [5:47] goes into like a three character wide [5:49] column over here because somehow they've [5:51] managed to reproduce all the kinds of [5:53] stupid microsoft word formatting bugs [5:55] that everyone was frustrated with in the [5:56] 90s and 2000s now those are in gmail and [6:00] i don't know how to fix it like you [6:01] fight with it for a while to get it to [6:03] stop happening you have to like delete [6:05] something invisible i don't know [6:07] very annoying so then i say okay i'm [6:09] gonna get some real programming done i [6:11] go to visual studio and i say i'm gonna [6:13] type in my command line arguments up [6:15] there [6:16] and as soon as i do that we get this box [6:18] that says hey uh collection was modified [6:22] enumeration option may not your [6:24] operation may not execute uh why i don't [6:27] exactly know [6:28] uh why that's a problem like i'm just [6:30] telling it a string we're not even [6:32] trying to do anything with the string [6:33] it's just like save this for later for [6:35] when we want to run the program but [6:37] apparently that's too hard right and [6:39] this is [6:40] far from the only problem with visual [6:41] studio visual studio has many many bugs [6:44] but this is the funniest one because [6:46] it's so simple what i'm trying to do [6:49] and it can't do it all the time this i [6:51] don't know what percentage of the time [6:53] this happens is probably like five [6:54] percent i don't know four percent [6:56] so then i decided to break off blow off [6:58] some steam and play some games so let me [7:00] download a game on the epic store uh but [7:03] we're unable to start the download for [7:05] some reason so maybe i'll go to steam [7:07] because that's a more reliable longer [7:09] lasting store and i'm able to actually [7:11] download a game but then when i go to [7:13] the install window it's just like a [7:14] black window and i have to restart steam [7:16] to play the game then i managed to play [7:18] the game and then i all tab out for a [7:20] second to check something and then now [7:22] full screen is all messed up and the [7:23] game's like up in a corner of a window [7:26] right and then i have to restart the [7:27] game to get full screen again [7:29] and then i'm watching some counter [7:30] strike there was a really good match [7:32] between cloud9 and luminosity gaming [7:33] about a month ago [7:35] and uh [7:36] but for the entire match there was a [7:38] mysterious six player on the cloud nine [7:40] side called undefined up in the corner [7:42] there let me zoom in on that map for you [7:44] counter-strike fans it's undefined is on [7:46] the left a hundred thousand people were [7:48] watching this match and it was there the [7:50] whole time [7:51] um [7:52] i was thinking about a game i like [7:54] called ultima force i went to this [7:55] website that had the map and the map was [7:57] like screwed up because it was like [7:59] wrapping into extra lines so i opened a [8:01] different browser to see it correctly [8:03] i needed to get a visa to come to the [8:05] russian federation so i go to the visa [8:08] site and i start typing my information [8:10] and maybe i type typoed my phone number [8:11] or i put the plus one and it didn't like [8:13] it or something so it says phone number [8:15] is invalid over here [8:17] but i couldn't fix the phone number no [8:19] matter what i put in it wouldn't accept [8:20] it because whatever the variable was for [8:22] phone number is invalid would never get [8:24] reset so i had to like [8:27] stop the application close the website [8:29] like clear my cookies go back [8:31] and reapply in order to be able to and [8:33] be very careful when i was typing my [8:35] phone number uh there's just so many of [8:37] these [8:39] all of this was within a couple days [8:41] like i didn't have to try hard to find [8:42] these right i just had to stop [8:44] collecting them [8:46] but then i come here [8:48] and [8:48] as if to give me more examples in this [8:50] talk so here in this hotel where i've [8:53] been writing this talk for a couple days [8:54] they have this software controlled [8:56] heating and lighting system where it's [8:58] like you kind of push the non-button [9:00] buttons and things happen and some [9:03] percentage of the time not all the time [9:06] when i turn the air conditioning on or [9:08] off [9:09] the phone rings [9:11] it's not a full ring even it's just like [9:13] a little [9:14] and then it stops [9:15] but i know it's not intentional because [9:17] it doesn't happen every time and i am [9:19] not making this up this actually happens [9:21] in my room right now [9:23] okay [9:24] and then [9:25] for this talk two hours ago i was i was [9:27] working at the last minute to make a [9:29] diagram and i downloaded [9:31] fully legitimate licensed creative cloud [9:34] photoshop to my machine the first thing [9:36] i do is go file new document bam the new [9:38] document extension could not be loaded [9:40] because of a program error right [9:42] and so my whole point though [9:44] is we are not surprised by any of this [9:48] my other point is that it's getting [9:49] worse over time [9:50] so try this every day yourself [9:53] because we've gotten used to it [9:55] i didn't even think it would be as much [9:57] when i had the idea to record this i [9:58] didn't think it would be as much as it [9:59] was [10:00] try counting for yourself just every day [10:02] just make a little list of all these [10:04] things and i think you'll be surprised [10:06] how many there are