Don't you mean extinct?
Don’t you mean extinct?
你是指“灭绝”吗?
Fabien Sanglard - WEBSITE Jul 10, 2026 Fabien Sanglard - 网站 2026年7月10日
Don’t you mean extinct? In 1993, Jurassic Park came out and revolutionized the use of CGI in films. To the public the experience was magic. But for some of the people in the movie industry, it was a rude awakening. 你是指“灭绝”吗?1993年,《侏罗纪公园》上映,彻底改变了电影中 CGI(计算机生成图像)的使用方式。对于公众来说,这种体验如同魔法一般。但对于电影行业中的一些人来说,这却是一个残酷的警醒。
Director Steven Spielberg had hired stop-motion master Phil Tippett to bring the film’s full-body dinosaurs to life using his go-motion technique. Spielberg was highly skeptical that computer-generated imagery (CGI) could realistically depict a dinosaur. But Dennis Muren and the digital artists at Industrial Light & Magic (ILM) worked on a proof-of-concept using CGI. They rendered a fully textured, photorealistic T. rex chasing a herd of Gallimimus in full sunlight. 导演史蒂文·斯皮尔伯格曾聘请定格动画大师菲尔·蒂贝特(Phil Tippett),希望利用他的“动态运动”(go-motion)技术让片中的恐龙栩栩如生。斯皮尔伯格当时非常怀疑 CGI 能否真实地呈现恐龙。但丹尼斯·穆伦(Dennis Muren)和工业光魔(ILM)的数字艺术家们制作了一个 CGI 概念验证。他们渲染了一只纹理完整、照片级逼真的霸王龙,在阳光下追逐一群似鸡龙。
I went down with [visual effects supervisor] Dennis Muren when he presented the T-Rex test to Steven and Steven went, ‘Wow, that’s what we’re going to do,’ and he asked me how I would feel and I said, ‘I feel extinct’. I did seem like everything that I had built up until that time was like, “We are not going to do that anymore”. — Phil Tippett “当[视觉特效总监]丹尼斯·穆伦向史蒂文展示霸王龙测试片段时,我陪同前往。史蒂文惊叹道:‘哇,这就是我们要做的。’他问我感觉如何,我说:‘我感觉自己要灭绝了。’在那一刻,我之前所建立的一切似乎都在说:‘我们不再需要做这些了。’”——菲尔·蒂贝特
Tippett, who had already selected a crew of thirty and was gearing up for the massive go-motion assignment, was understandably devastated by the turn of events. 蒂贝特当时已经挑选了三十人的团队,正准备投入这项庞大的动态运动任务,面对这样的转折,他感到崩溃是完全可以理解的。
I have been thinking of this anecdote a lot lately. I see a lot of pessimism around programmers. The anxiety of becoming obsolete is particularly palpable online. 最近我经常想起这个轶事。我看到程序员群体中弥漫着许多悲观情绪。对被时代淘汰的焦虑在网络上尤为明显。
The best way to avoid becoming extinct is to evolve. I liked zkmon’s take from Hacker News. Ride the wave. You rode it when websites/webapps were the wave. I came into software industry before internet, kept changing my horse. You are never too old to learn new tricks. The new wave create new kind of work and workers. Be one of them. Ride the beast, master the tools. It’s the same game again. 避免灭绝的最好方法就是进化。我很喜欢 Hacker News 上 zkmon 的观点:顺势而为。当网站/Web 应用成为浪潮时,你曾乘风破浪。我在互联网出现之前就进入了软件行业,并不断更换赛道。学习新技能永远不会太晚。新的浪潮创造了新的工作类型和从业者。成为其中一员吧。驾驭这头猛兽,掌握这些工具。这不过是同一场游戏的重演。
While the current episode reminds zkmon of the mid-90s web, it makes me think of the field of Computer Graphics in the early 2000s and the rise of “Mobile First” in early 2010s. Every generation of programmers will likely have seen a form of r-evolution. This is indeed the same game again. Life is flux. LLMs are yet another tool. To evolve is to invest the time to learn how it works and how to best use it. 虽然当前的这一幕让 zkmon 想起了 90 年代中期的互联网,但它让我想起了 21 世纪初的计算机图形学领域,以及 2010 年代初“移动优先”的兴起。每一代程序员都可能经历过某种形式的“进化/革命”。这确实是同一场游戏的重演。生活就是变迁。大语言模型(LLM)不过是又一种工具。进化意味着投入时间去学习它的工作原理,以及如何最好地利用它。
The best resource I found to learn how LLMs work is Andrej Karpathy’s channel. The man obviously cares deeply about LLMs and really wants you to get them. His series of videos so far is 25 hours of pure gold. A nice follow-up is the book Build a Large Language Model (From Scratch) by Sebastian Raschka. There are many drawings in full-color with rare “Now Draw the Owl” moments. This is a really good book. 我发现学习 LLM 工作原理最好的资源是 Andrej Karpathy 的频道。他显然对 LLM 充满热情,并真心希望你能理解它们。他目前的系列视频是 25 小时的纯金干货。后续阅读推荐 Sebastian Raschka 的书《从零构建大语言模型》(Build a Large Language Model (From Scratch))。书中有很多全彩插图,极少出现那种“直接画出猫头鹰”(指跳过关键步骤)的情况。这是一本非常棒的书。
Writing every line by hand is no longer the norm. Those who refuse to use an LLM will fall behind because they won’t be able to produce as much - and I know several developers who refuse to use agents. John Carmack recently had an interesting take about coding. “Coding” was never the source of value, and people shouldn’t get overly attached to it. Problem solving is the core skill. The discipline and precision demanded by traditional programming will remain valuable transferable attributes, but they won’t be a barrier to entry. 手写每一行代码已不再是常态。拒绝使用 LLM 的人将会落后,因为他们的产出效率无法跟上——我认识几位拒绝使用 AI 代理的开发者。约翰·卡马克(John Carmack)最近对编程有一个有趣的看法:“编码”从来不是价值的源泉,人们不应该过度执着于它。解决问题才是核心技能。传统编程所要求的纪律性和精确性依然是宝贵且可迁移的特质,但它们不再是进入该领域的门槛。
Even though I am not writing code, I am still indirectly producing code. And there is considerable discretion about what one can generate. If I go “full-vibe-code” and let an LLM run, I can produce 1000x what I used to and find myself with an indecipherable mess. Is that a bad thing? If I work on a prototype or a small personal project, it does not matter. But for everything else, code quality still matters tremendously. 即使我不是在亲手写代码,我仍然在间接生成代码。对于生成什么内容,我们有很大的自主权。如果我完全依赖“感觉编程”并让 LLM 自动运行,我的产出量可以达到过去的 1000 倍,但最终会得到一堆无法解读的乱码。这是坏事吗?如果是在做原型或小型个人项目,这无所谓。但对于其他所有项目,代码质量依然至关重要。
LLMs may claim they still understand the project and suggest solutions, but I have seen them fail spectacularly and hallucinate. It remains important to be able to read the code and understand the architecture. It may sound like a given, but I have seen many developers fail to do so. As a result, I reduce my velocity by iterating over my PR until it reaches the same level of quality I would have produced “by hand”. LLM 可能会声称它们理解项目并提供解决方案,但我见过它们惨败并产生幻觉。能够阅读代码并理解架构依然非常重要。这听起来像是理所当然,但我见过许多开发者做不到这一点。因此,我通过反复迭代我的 PR(拉取请求),直到其达到我“亲手”编写时的质量水平,从而降低了我的开发速度。
Every time I notice something I don’t like, I add it to my ~/.gemini/GEMINI.md or ~/.claude/CLAUDE.md so the agent can emulate my style. Over the past months, I have added quite a few lines like the following:
每当我发现不喜欢的地方,我就会把它添加到我的 ~/.gemini/GEMINI.md 或 ~/.claude/CLAUDE.md 中,这样 AI 代理就能模仿我的风格。在过去的几个月里,我添加了不少类似以下的规则:
- Don’t use magic numbers or strings. Use a const or even better, an enum when appropriate.
- Reduce code indentation. Avoid Arrow Anti-Pattern. Leverage early return and continue.
- Use enums instead of boolean for function parameters.
- Respect layering. Don’t punch holes through the layers.
- Let the reader of the code breathe. Add empty lines between logical blocks of code. Add a small, to the point, comment to explain what the block does and why.
- 不要使用魔术数字或字符串。使用常量,或者在合适时使用枚举。
- 减少代码缩进。避免“箭头反模式”。利用提前返回(early return)和 continue。
- 函数参数尽量使用枚举而非布尔值。
- 尊重分层架构。不要破坏层级结构。
- 让代码阅读者有喘息空间。在逻辑代码块之间添加空行。添加简明扼要的注释,解释该代码块“做什么”以及“为什么”。
The greatest difficulty I have encountered is “context switching”. Working on multiple projects / independent features allows me to drive multiple agents simultaneously. It is quite a mental gymnastics to keep up. I have seen reports of “mental burnout” and I have also personally experienced increased mental fatigue. This is definitely something to monitor. 我遇到的最大困难是“上下文切换”。同时处理多个项目或独立功能,意味着我需要同时驱动多个 AI 代理。跟上节奏是一项相当耗费脑力的体操。我看到过关于“精神倦怠”的报道,我自己也确实感受到了精神疲劳的增加。这绝对是需要警惕的事情。
Given how much better the tools are, I have much higher expectations during code reviews. There is little excuse for poor commit messages now. There are many guides about how to write a good commit message. Here is the best one I ever came across. It takes 1 minute to ask an LLM to summarize it and transform it into directives that one can add to their GEMINI.md/CLAUDE.md. When you write a commit message, follow these 7 rules: Rule 1: Separate the subject line from the body with a single blank line. Rule 2: Limit the subject line to 50 characters… 鉴于工具已经变得如此强大,我在代码审查时有了更高的期望。现在,提交信息(commit message)写得烂已经没什么借口了。关于如何写好提交信息有很多指南。这是我见过最好的一篇。花一分钟让 LLM 总结它,并将其转化为指令添加到你的 GEMINI.md/CLAUDE.md 中即可。当你编写提交信息时,请遵循这 7 条规则:规则 1:用一个空行将主题行与正文分开。规则 2:将主题行限制在 50 个字符以内……