你的意思是已经灭绝了吗?
Don't You Mean Extinct?

原始链接: https://fabiensanglard.net/extinct/index.html

软件开发向大语言模型(LLM)的转型,正如 20 世纪 90 年代 CGI 取代定格动画一样,反映了行业从人工劳动向自动化工具的演进。虽然许多开发者担心会被淘汰,但解决之道并非抗拒,而是进化。 菲尔·蒂贝特(Phil Tippett)在《侏罗纪公园》采用 CGI 技术后曾一度担心自己“过时了”,但他最终通过将传统专业知识与新技术相结合,赢得了奥斯卡奖。同样,现代开发者也应将大语言模型视为强大的助手,而非替代者。编程的核心价值始终在于解决问题,而非语法。 为了保持竞争力,开发者必须掌握这些工具,理解其工作原理,并利用它们在不牺牲质量的前提下提高开发速度。这要求开发者提高代码审查标准,进行严格的测试,并保持对系统架构的深刻理解,以避免人工智能可能产生的“难以解读的混乱代码”。归根结底,大语言模型使小型团队能够完成更多工作,将对被淘汰的恐惧转化为成长的机遇。通过将大语言模型视为需要掌握的新浪潮,程序员可以提升技能、保持不可替代性,并在瞬息万变的行业格局中持续创新。

``` Hacker News 最新 | 过往 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 你是指已经灭绝吗?(fabiensanglard.net) 12 分,zdw 发布于 1 小时前 | 隐藏 | 过往 | 收藏 | 2 条评论 | 帮助 singpolyma3 1 分钟前 | 下一条 [–] 我大体上喜欢这篇文章,但文中提到“拒绝使用大语言模型(LLM)的人将会落后,因为他们无法产出同等数量的内容”。 这看起来是一个愚蠢且不必要的激进观点。落后于什么?“同等数量”是指什么?我这辈子从未因工作量被评估过。那些被认为严重“落后”的同事,也从未担心过自己的饭碗。 回复 pocksuppet 0 分钟前 | 上一条 [–] 最好还是去了解一下大语言模型,然后在大多数情况下不使用它们。 回复 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索: ```
相关文章

原文
Don't you mean extinct?

Jul 10, 2026

Don't you mean extinct?

In 1993, Jurassic Park came out and revolutionized the use of CGI in films[1]. To the public the experience was magic. But for some of the people in the movie industry, it was a rude awakening.

Director Steven Spielberg had hired stop-motion master[2] Phil Tippett[3] 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[4]. 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.

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’[5].

I did seem like everything that I had built up until that time was like, "We are not going to do that anymore"[6].

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. The Making of Jurassic Park

I have been thinking of this anecdote a lot lately. I see a lot of pessimism[7] around programmers. The anxiety of becoming obsolete is particularly palpable online[8][9].

Evolve

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.

zkmon (Hacke Nnews)

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[10]. LLMs are yet another tool. To evolve is to invest the time to learn how it works and how to best use it.

Learn how LLMs work

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.

Learn how to write code with LLMs

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.

Many times over the years I have thought about a great programmer I knew that loved assembly language to the point of not wanting to move to C. I have to fight some similar feelings of my own around using existing massive codebases and inefficient languages, but I push through.

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. 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". Every time I notice something I don't like, I add it to my ~/.gemini/GEMINI.md/~/.claude/CLAUDE.md so the agent can emulate my style. Over the past months, I have added quite a few lines like the following.

- 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*.

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.

Code Review in the age of LLMs

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 (72 is the absolute hard limit).
Rule 3: Capitalize the first letter of the subject line.
Rule 4: Do not end the subject line with a period.
Rule 5: Use the imperative mood in the subject line (e.g., "Fix bug," "Add feature," 
        not "Fixed" or "Adds"). Test formula: It must complete the sentence: "If applied,
        this commit will [your subject line here]".
Rule 6: Wrap the body text manually at 72 characters to prevent Git formatting issues.
Rule 7: Use the body to explain what and why vs. how. Assume the code explains the how;
        the message must explain the context and reasoning. 

Since authoring code is much less of an effort, I expect SWEs to take much more care into designing elegant solutions. I have little scruples in asking for improved code clarity/code simplicity if the PR is a mess.

The same goes for PR code size. It used to be tedious to break a PR into smaller, easier-to-review, parts. This is no longer the case and I have no problems asking an author to break down their PRs unless they have a good reason for it.

Many code review tools now have integrated LLMs. You can create your own preferred prompt to automatically perform a first pass. For codebases I own, I have added the content of my GEMINI.md/CLAUDE.md which I can trigger with one click. Before sending a PR for review, the first thing I do is ask for the LLM to criticize/look for mistakes. This avoids wasting the reviewer's time on the other end.

Writing tests used to be a pain. This is no longer the case. It is ok to request unit tests/CI tests for each PR. These have never been more important since large refactors are becoming increasingly common. Human and LLM review may miss stuff but good tests should catch breakages.

It is more ok to refuse to take dependencies now. It used to be the go-to solution to avoid writing anything moderately complex. As recently as this morning, I asked an LLM to write a Levenshtein distance function instead of adding a dependency to my project.

Smaller teams

We can accomplish more with smaller teams. We may not be far from the '90s model, when a team of four could produce professional software. I was able to revive projects I had abandoned because I deemed them too time-consuming or complex. Last month I completed the reverse engineering of the Silpheed video format and I am making good process on Ikaruga for Dreamcast and Zelda: A Link to the Past on SNES.

If you can't beat them, join them

The LLM scene is fascinating. And amusingly the very subject to study is also a great tool to help keep up. An LLM will help to dive into any codebase and give pointers about the overall architecture. I have been enjoying reading how llama-cpp, OpenCode, ollama, and vLLM work. There are also many hardware solutions, like Tenstorrent, Etched, MatX, d-Matrix, or Cerebras Systems that are super interesting to follow.

Reading research papers was difficult at first since I have always had a difficult relationship with mathematics notation. LLMs helped to catch up with shortcomings. Having a buddy offer their opinion, and double checking it, helps a lot to ramp up.

Find the motivation

Most importantly, there is the problem of finding the motivation to learn. There are many good reasons to avoid making the effort, among them stories of people finding success by moving on.

To keep on going or not is a decision that belongs to each of us. It is the result of a process involving conviction and inspiration. While the former comes from within, I sometimes find the latter in success stories. This takes me back to the anecdote at the beginning of the article. I did not pick Phil Tippett's story randomly. While many know the misquoted "Don't you meant extinct?" part, what happened next is less notorious.

Despite the initial shock, Tippett, at 41 years old, was far from being "extinct". Spielberg kept him on as the film's "Dinosaur Supervisor." Because the computer animators at ILM were programmers and tech artists rather than traditional performance animators, they had no idea how to make a creature move with weight, timing, and biological intent.

Tippett co-developed the Dinosaur Input Device (DID)[11], a highly articulated physical armature connected to sensors, with ILM. Then his team physically manipulated the DID just like stop-motion, and the computer translated those movements into the digital space.

Phil Tippett (along with Dennis Muren, Stan Winston, and Michael Lantieri) won the Academy Award for Best Visual Effects for Jurassic Park in 1994[12]. His company, Tippett Studio, lived on to take part in movies such as StarShip Troopers, Dragonheart, and seventy-five other titles[13].

References



*
联系我们 contact @ memedata.com