视频链接: https://www.youtube.com/watch?v=I845O57ZSy4
这段访谈是 Lex Fridman 对传奇程序员、ID Software 联合创始人 John Carmack 的深度对话。内容涵盖了 Carmack 从早期在 Apple II 上通过底层黑客手段突破硬件限制(如实现平滑滚动)到开发出《毁灭战士》(Doom) 和《雷神之锤》(Quake) 等改变行业规则的游戏历程。Carmack 详细分享了他的编程哲学、对 C++/Python/JavaScript 等语言的见解、以及在 Oculus 推动虚拟现实(VR)发展的工程取舍。视频的核心主题围绕着“工程师精神”展开:如何在资源极度受限的情况下,通过深度的技术洞察创造极致的用户价值。此外,Carmack 还探讨了他目前致力的通用人工智能(AGI)研究,提出了 AGI 可能比大众想象中更简单、更接近实现的激进观点。
约翰·卡马克的编程之路始于 Radio Shack 商店里的 TRS-80 电脑。由于当时完全脱离 Unix 或 C 语言的标准化编程文化,他的第一个程序并非传统的 "Hello World",而是 10 PRINT "JOHN CARMACK" 配合 20 GOTO 10 实现的无限刷屏。在信息匮乏的 80 年代,他通过过时的图书馆书籍、百科全书中的大型机照片以及 Radio Shack 委托创作的科普漫画(如超人使用 TRS-80 辅助行动)来汲取知识。卡马克对计算机的痴迷源于一种“绝对的确定性”:计算机是一个不会顶嘴、没有主见、只会精准执行指令的“猴爪神灯”。只要指令正确,它就能创造魔法。这种早期的控制感和对游戏(如 Atari 2600 游戏)的模仿欲望,驱动他开始了从基础语言到汇编语言的进阶过程。
"I remember being in a Radio Shack going up to the trs8 computers and learning just enough to be able to do 10 print John carac... not having any interaction with the cultures of Unix or any other standardized things it was just like well what am I going to say I'm going to say my name." "It just felt like this magical thing to me this idea that the computer would just do exactly what you told it to... it wasn't going to back talk you it wasn't going to have a different point of view it was going to carry out what you told it to do."
关于 goto 语句是否为“毒药”的争议,卡马克持实用主义观点。在早期 BASIC 等缺乏 for/while 循环的语言中,goto 是必需的。而在现代代码中,虽然它由于破坏结构化编程而鲜少出现在应用层,但在底层、高性能代码中,goto 仍有其独特价值。例如,在处理多层嵌套循环的退出或统一的错误处理清理(cleanup)时,使用 goto 往往比散布大量标志位(Flags)或复杂的 if 嵌套更简洁、更直观。卡马克的优化逻辑核心在于:挑战硬件设计的“直觉用法”。他认为,大部分编程任务是实现某种已知的效果,但挑战在于如何使其比标准做法快 2 到 10 倍。越接近机器代码,这种“黑客式”的、利用硬件局限性的手段就越常见。在 VR 和元宇宙开发中,这种触碰系统极限的“精神汇编”依然是定义未来的关键。
"Go-tos aren't poisonous sometimes they're the right thing to do... it can sometimes be better to do a go-to cleanup or go-to error rather than having multiple Flags multiple if statements littered throughout things." "The infrastructure on top of like the closer you get to the machine code the more go-tos you're going to see the more of these like hacks you're going to see." "So much of the programming work that I did was largely figuring out how to do something that everybody knows how they want it to happen it just has to happen two to 10 times faster than sort of the straightforward way."
卡马克职业生涯中第一个重大的技术“黑客”手段是在 Apple II 电脑上实现的图形平滑滚动。当时,受限于极低的 CPU 频率(约 1MHz),如果开发者想制作一个像街机《Vanguard》那样的横版或纵版滚动游戏,采用“每一帧重绘整个屏幕”的朴素方法会导致帧率低至不可玩。卡马克通过研究硬件底层寄存器发现:Apple II 的文本显示模式和低分辨率图形模式(40x40 像素)在硬件机制上是统一的。系统固件中已经存在一个高度优化的汇编子程序,用于处理文本模式下的“滚行(Scrolling)”。卡马克利用了这一特性:他将屏幕置于图形模式,但在需要滚动时,他通过触发一个底部的“换行符(Line Feed)”,强制系统调用那个原有的文本滚动例程将整个位图屏幕瞬间向上推移一行。这样,他只需每帧在屏幕底部重绘极少量的像素行即可,极大地节省了 CPU 开销。这一思路(利用现有硬件特性而非蛮力计算)成为他日后在 id Software 开发卷轴游戏甚至 3D 引擎的思维蓝图。
"The text screen and the low resolution Graphics screen were basically the same thing... I figured out that I could kind of tweak just a couple things... and I could just do a line feed at the very bottom of the screen and then the system would scroll it all up using an Assembly Language routine." "That was like this first great hack that sort of had analoges later on in my career for a lot of different things... efficient drawing where you don't have to draw the whole screen but you draw from the bottom using the thing that was designed in the hardware for text output."
卡马克认为编程语言的选择本质上是工程权衡。他在 AI/ML 领域使用 Python,尽管其原生循环性能极低(比 GPU 张量运算慢百万倍),但通过 C++ 底层库和向量化操作,Python 实现了极高的开发速度。对于“严肃编程”,他坚持使用 C++,但倾向于“类 C 风格”,警惕模板元编程等过度抽象导致的维护困难。他认为 C 语言虽有内存安全缺陷,但其简单性使任何人都能快速接手代码,这种低门槛在团队协作中被低估了。对于 JavaScript,他称之为现代工程奇迹,其 JIT 优化极大地弥补了动态语言的劣势。关于垃圾回收(GC),他认为这对 99% 的应用是利大于弊的,能有效避免内存安全漏洞,仅在追求极致实时的游戏核心引擎中才需手动管理内存。
"When I'm sitting down to do what I consider kind of serious programming, it's still in C++ and it's really kind of a C-flavored C++ at that where I'm not big into the modern template metaprogramming sorts of things. I see a lot of train wrecks coming from some of that over abstraction."
"The engineering under JavaScript is really pretty phenomenal... the systems that make JavaScript run as fast as it does right now are kind of miracles of modern engineering."
"It's not the writing of the program initially, it's the whole lifespan of the program... how well it hands off between a continuous kind of revolving door of programmers taking over maintenance."
卡马克深信《黑客:计算机革命的英雄》中所描述的伦理:信息分享不是零和博弈。他推动 ID Software 开源《毁灭战士》(Doom)和《雷神之锤》(Quake)的代码,并非单纯为了名声,而是为了让开发者能突破既有引擎的限制。他认为,当代码达到“图灵完备的创造力”时,释放源代码能让社区创造出远超原作者想象的内容。在处理技术信用(Credit)时,卡马克展现了极度的谦逊,例如“卡马克反转”算法虽以他命名,但他坦承自己并非首创者。他强调,黑客应专注于构建酷的事物并与他人分享,历史长河自然会公正地分配荣誉。
"It was about sharing information being good not keeping it to yourself and that it's not a zero sum game that you... can share something with another programmer and it doesn't take it away from you."
"The highest form of the art is just focusing on the art... focus on building cool stuff sharing it with other cool people and credit will get assigned correctly in the long arc of history."
"Anything that can be syntactically allowed in your language is going to show up eventually in a large enough code base... you need automated tools and guard rails."
卡马克极度自律,长期保持每周 60 小时的工作强度(每天 10 小时,每周 6 天)。他反对“熬夜写代码”的黑客刻板印象,坚称 12 小时后大脑会变成“浆糊”,因此必须保证 8 小时睡眠以维持认知质量。针对“工时增加会导致效率下降”的观点,他反驳称:虽然边际效率会递减,但总产出仍随工时增加,且这种高压能磨练出真正的匠人。他采用“大脑状态匹配”的任务切换策略:精力充沛时解决硬核逻辑,疲劳时则进行笔记整理或低密度维护。此外,他偏好多显示器和强大的集成开发环境(IDE),认为实时调试器(Debugger)比纯文本编辑器更能高效地剖析复杂系统。
"I always try to get eight hours of sleep it's not this push yourself harder get up earlier I just do worse work where you can work a 100 hours a week and still get eight hours of sleep if you just kind of prioritize things correctly."
"Working longer gets more done... your marginal productivity for an hour after eight hours is less than in one of your peak hours but you're not literally getting less done."
"Switching between them has been real valuable... there are time periods where it's the best time for me to read a new research paper... then there's the time that maybe I should just scan and organize my old notes because my I'm just not on top of things."
ID Software 的前身诞生于 Softdisk 公司的月度软件订阅业务。John Carmack 当时通过向各平台(Apple II, PC)移植自研小游戏维持生计,其高效的跨平台能力吸引了 Softdisk 并受邀前往路易斯安那州。在那里,他遇到了 John Romero 等志同道合的程序员。他们成立了专注于 PC 游戏的部门“Gamer's Edge”,在极高强度的频率下(每月一款游戏)磨炼了开发技巧。
当时 PC 游戏的技术瓶颈是无法实现像任天堂(NES)那样的平滑侧卷轴效果。Carmack 通过研究硬件底层,开发了“自适应图块刷新”(Adaptive Tile Refresh)技术:仅重绘屏幕中发生变化的部分,使效率提升 5 倍。以此为基础,他和 Tom Hall 一夜之间在 PC 上克隆了《超级马力欧兄弟 3》。虽然任天堂拒绝了合作,但这一技术吸引了 Apogee 的 Scott Miller。Miller 提出了革命性的“共享软件”(Shareware)模式:将游戏分为三卷,首卷免费分发,后两卷收费。1990 年《指挥官基恩》利用该模式和 Carmack 升级后的卷轴技术(利用内存环绕实现任意平滑滚动)获得巨大商业成功,单月收益达 3 万美元,正式开启了 ID Software 的传奇。
"You learn so much when you go through and you crank these things out like on a bi-weekly monthly basis. It’s that sense of like I'm just going to go make 26 different games... from the very beginning to the very end is done."
"The core thing that those consoles did that you just didn't get on the PC games was this ability to have a massive scrolling world... My first great hack was finding a way to draw from the bottom using the thing that was designed in the hardware for text output."
《德军总部 3D》(Wolfenstein 3D)的核心贡献在于将游戏视角从传统的“上帝视角”转变为第一人称视角,这种视角能直接触发人类原始的“爬虫脑”惊吓反射,创造了前所未有的浸入感。
技术上,Wolfenstein 3D 是一场优雅的“降维打击”。尽管它是 2D 逻辑(基于 64x64 的网格地图),但通过射线投射算法(Raycasting)实现了伪 3D 渲染:从玩家位置向视场发散射线,计算与网格墙体的交点距离,以此决定墙面绘制高度。这种方法规避了当时 16 位 PC 难以承受的全多边形裁剪计算。为了优化性能,Carmack 还发明了“编译缩放器”(Compiled Scalers):针对不同比例的精灵(Sprite)生成上百段特定的汇编微程序。当怪物靠近、占据整个屏幕时,传统的循环缩放会拖慢帧率,而编译缩放器通过直接将像素数据硬编码进指令中,实现了“离目标越近,渲染越快”的反直觉效率优化。
"There's a monster like right there and he practically fell out of his chair... Something in the back of your brain, some reptile brain thing is just going 'oh something just happened'."
"I made essentially a hundred or more separate little programs that was optimized for... I would take an image and I will draw it 12 pixels tall, 14 pixels tall... it was giving you the most acceleration just when you needed the performance most."
《毁灭战士》(Doom)旨在打破《德军总部 3D》的 90 度直角墙体限制。它引入了非固定的地板/天花板高度、光影变化以及任意角度的墙体,从而达到了“图灵完备”的创作自由度。
工程上的核心挑战是处理不规则几何体的渲染顺序和性能。Carmack 借鉴了学术界的 BSP 树(二叉空间分割)算法,在游戏运行前对静态地图进行空间切分。这解决了 Epsilon 问题(有限精度计算导致的浮点误差),并能快速确定物体的绘制顺序(画家算法)。Doom 被称为 2.5D,因为它支持 3D 坐标和不规则高度,但逻辑上仍不支持“房间重叠”(重叠楼层)和上下仰视。
另一项深远影响是其架构的扩展性:Carmack 引入了 WAD(Where's All the Data)文件格式,将游戏引擎代码与图像、关卡等资源彻底分离。这种设计允许玩家在不修改可执行程序的情况下制作 MOD。ID 甚至主动公开源代码,这种“黑客伦理”(Hacker Ethic)直接催生了现代游戏的 MOD 文化和关卡编辑器的繁荣。
"Doom is the first time you cross that line... You have the kind of computational universality... where a little bit more capability is enough to open it up to just worlds and worlds of new capabilities."
"The BSP trees were important for it... it basically takes the walls and it carves other walls by those walls in this clever way that you can then... for sure from any given point get an ordering of everything in the world."
Quake 是 id Software 技术发展的巅峰,也是 Carmack 职业生涯中挑战最大的项目。相比于 Doom 的“2.5D”架构(无法实现真正的坡面、垂直重叠及完全的自由视角),Quake 实现了真正的 6 自由度(6DOF)。技术创新集中在:1. 光照模型优化:引入了领先于时代的表面缓存(Surface Caching)和光照贴图技术。2. QuakeC 编程语言:Carmack 开发了这种专用语言来实现游戏逻辑的可编程性,使 Quake 成为真正意义上可被深度模组化(Modding)的平台。3. 网络架构演进:从 peer-to-peer 转向 Client-Server 架构,针对互联网高延迟环境优化,并确立了 UDP 的核心地位。
Carmack 反思认为,Quake 同时推进了图形引擎、互联网联机和可编程脚本三项巨变,导致研发周期过长、团队压力极大。若能将这些创新拆分到两个项目中逐步推进,原本可以在 486 时代先推出基于 Doom 引擎但具备互联网多玩家功能的游戏,再向奔腾处理器(Pentium)时代的真 3D 引擎过渡,效率会更高。
"Quake was kind of the first thing where I did have to kind of come face to face with my limitations... we bit off a lot." "I'm a world-class Optimizer... but the most leverage comes from making the decisions that are a little bit higher up where you figure out how to change your large scale problems so that these lower level problems are easier to do." "We could have made more people happier and gotten two games done in 50% more time."
id Software 的早期成功源于 Carmack 的底层技术突破(如平滑横向卷轴)与 John Romero 的设计才华及艺术感知的完美互补。然而,这种早期的“平等合伙人(Equal Partners)”制度为后来的分歧埋下了伏笔。
Carmack 直言当时自己年少轻狂,缺乏管理经验。当公司由于成功而声名大噪时,Romero 开始享受“摇滚明星式”的生活,而 Carmack 坚持极端的工作狂模式(每周 60 小时以上的专注编程)。这种工作强度和职业重心的不对等在 Quake 开发期间爆发。Carmack 认为,由于缺乏现代硅谷式的股权激励挂钩(Vesting)和非投票权股票机制,公司无法在制度上调节合伙人间的贡献差异,最终演变成他利用影响力将 Romero 踢出公司的结局。Carmack 反思道,如果当时有更合理的架构,或许能让不同类型的才华在更健康的框架下共存。
"The original founding corporate structure of ID software really led to a bunch of problems... We started off with us as equal partners... and that did lead to a bunch of the problems." "I was sitting here going: all right, I'm working harder than anyone... and then I see somebody that's not working as hard... I wasn't the most mature about that." "I wish I could have gotten more out of people handling things in different ways... we pushed people out of the company that could have contributed if there was a different framework for them."
Carmack 在 VR 领域的工程哲学始终围绕“实用主义”:即 VR 必须是移动端的、独立的,而非依赖昂贵的 PC 和线缆。他认为 VR 的核心价值在于“让虚拟世界比现实世界更好”,这能极大地改善那些现实条件匮乏者的生活质量。
在 Meta 期间,他面临的巨大挑战并非资金,而是大公司的低效。Meta 每年投入 100 亿美元,但资源常被内部官僚化、跨职能评审和过度复杂的 SDK 消耗。Carmack 坚持认为,Meta 需要建立“一键即达(One-click)”的用户体验,并极端关注延迟(Latency)。他通过 Beat Saber 的成功总结出:VR 的杀手锏应用必须规避硬件弱点(如利用光剑的切割感避免触觉缺失的不自然感),并强调运动健身是 VR 未被预见的价值洼地。尽管 Meta 资源雄厚,Carmack 仍不断挑战内部架构,呼吁回归初创公司般的工程效率。
"I've always favored a lower-end, cheaper, faster approach... lighter and cheaper wind up being a virtuous cycle." "It makes me feel sick to my stomach thinking about that much money [$10B] being spent... I'm not willing to believe that we are within even a factor of two or four of what the efficiency could be." "My pitch was that it should be better inside the headset than outside. It's the world as you want it."
卡马克认为元宇宙并非一个“大爆炸式”的瞬间,而是类似于万维网(Web)的演进过程,由无数微小的成功案例(Sigmoid曲线)叠加而成。他强调开发元宇宙应遵循“用户价值驱动”而非“功能驱动”的逻辑。以《Beat Saber》为例,其成功在于规避了VR的所有弱点(如移动造成的眩晕、物理碰撞反馈缺失),利用了VR的强项(空间音效、简单的切砍动作)。
在硬件策略上,卡马克主张“轻量化与低成本”优先于“高性能与多功能”,因为高昂的成本和增加的重量会形成负面循环。元宇宙的关键瓶颈在于:1. 易用性:必须实现“一键即达”的顺滑体验,目前VR在进入会议等场景的步骤过于繁琐;2. 临场感与延迟:VR会议的语音延迟必须优于Zoom等传统工具,通过眼球追踪和面部捕捉提升非言语沟通的真实性;3. 普及率:当头显达到亿级出货量时,社交网络效应才会真正爆发。卡马克倾向于从游戏等娱乐终端切入,逐步扩展至通用应用,而非试图一开始就构建一个全能的虚拟空间。
"My preferred bet would be you make something amazing that people love and you make it better and better."
"I've always favored a lower-end, cheaper, faster approach... cheaper and lighter wind up being a virtuous cycle."
"It needs to just be one click to make everything happen... being a servant to the user is your job when you're a developer."
卡马克与马斯克有着深厚的友谊,两人在航天早期(Armadillo与SpaceX初期)便基于工程实现进行深度交流。卡马克高度评价马斯克对工程细节的掌控力(如焊接工艺、推进剂选择),认为他并非只是出资者,而是深度参与微观管理的工程师。
在能源领域,卡马克曾因对核能效率的兴趣而考虑将其作为研究方向。他提出了极具挑衅性的观点:核裂变(Fission)比核聚变(Fusion)更具工程可行性。他认为,裂变本质上是“把两块石头放在一起它们就会变热”,逻辑简单且原料廉价;而聚变极其复杂(如托卡马克装置),仅为了产生热量就需耗费天文数字的基建成本。卡马克认为,如果能像 SpaceX 改造航天那样,以工程视角降低裂变电站的建设成本(即便牺牲一部分效率),核能将成为解决全球基底负荷(Baseband)的最优解。关于火星计划,卡马克以1万美元打赌2030年前人类无法登上火星,他认为该目标过度依赖马斯克个人,且面临复杂的发射窗口和官僚挑战。
"Nuclear fission is basically you put these two rocks together and they get hot all by themselves. That is just that much simpler... orders of magnitude simpler."
"He [Elon] is the best modern example now of someone that tries to that can effectively micromanage some decisions on things."
"I have a $10,000 bet that by 2030... I don't think that we'll have humans on Mars."
卡马克对自动驾驶持有比行业主流更乐观的态度。他认为,虽然特斯拉等公司在时间表上多次跳票,但由于有数十家公司竞争,自动驾驶已不再是马斯克的“个人项目”,而是一个全球驱动的工程趋势。他认为自动驾驶的进化路径是从“基于数据的窄AI(插值问题)”向“AGI(通用人工智能)”过渡。
卡马克预测到2030年,全自动驾驶无人出租车将在主流城市运行。他反驳了“人类驾驶不可超越”的观点,认为虽然人类在极端情况下的直觉很强,但人类也是极其不可靠的驾驶员。只要AI在统计学上比人类更安全,它就能通过挽救数万人的生命来获得社会认可。他指出,目前的窄AI通过海量数据解决了大部分长尾问题(Long Tail),但如果最后那1%的问题证明是“AGI完全问题”(即需要常识和复杂推理),那么目前的路径将汇入他正在研究的AGI领域。他相信AI不需要物理身体(Embodiment)也能进化出高级智能,因为虚拟环境的学习效率远高于受制于物理定律的实体机器人。
"It's possible the long tail of self-driving problems winds up being an AGI-complete problem."
"We will have systems that are statistically safer than human drivers and we will be saving thousands of lives every year."
"I think that anybody that is all in on the embodied aspect of it [AI]... they are tying a huge weight to their ankles."
John Carmack 将精力从虚拟现实(VR)转向通用人工智能(AGI),认为这是人类历史上最高杠杆率的决策。他提出了一个极具挑战性的观点:AGI 的核心算法逻辑并非像现代操作系统或浏览器那样由数百万行代码构成,而可能仅需几万行代码。这种规模的代码量意味着单一个体也能够完成编写。他认为 AGI 的实现不依赖于复杂的工程堆砌,而是取决于少数(可能少于 6 个)核心见解,且每个见解都简单到可以写在信封背面。Carmack 认为虽然目前 AI 领域有许多卓越的数学家和统计学家,但他作为系统工程专家的视角(从底层向上构建、寻找系统效率瓶颈)可能会带来不同的突破。他预测,到 2030 年,有 55%-60% 的概率会出现 AGI 的“生命迹象”。
"It is likely that the code for artificial general intelligence is going to be tens of thousands of lines of code, not millions of lines of code."
"My bet is that I think there's less than six key insights that need to be made, each one of them can probably be written on the back of an envelope."
"I had a point years later when I realized okay my financial resources at this point are basically what Elon's was when he went all in on SpaceX and Tesla."
Carmack 坚决反对“具身智能(Embodiment)是实现 AGI 的必要条件”这一观点。他认为将智能绑定在物理机器人身上会因为机械故障、重力限制和硬件成本而极大地拖慢研发速度。相反,模拟环境(如 VR 或数字化环境)足以提供智能进化所需的复杂交互。他认为 AGI 的真正门槛是“持续的终生学习能力”,而非目前的预训练后推断。他提出的判定标准是出现“生命迹象”,例如一个表现得像有认知障碍或特殊需求的幼儿,虽然智力水平不高,但能够像生物一样在实时互动中被教育和训练。他追求的是能以每秒 30 帧速度运行、可进行实时交互的数字化“生命”,而非仅能处理特定任务的狭义模型。
"I think anyone who is all in on the embodied aspect of it, they are tying a huge weight to their ankles."
"If we get to the point where you've got a learning-disabled toddler... that can be trained and learn in some appreciably human-like way, at that point you can deploy an army of engineers... it's going to be a done deal."
"I want to be able to have the AGIs either socially interact with each other or critically with actual people... something that is at least potentially real-time."
Carmack 强调了“武器化好奇心(Weaponized Curiosity)”的概念,即有意识地利用好奇心去深入钻研任何看似乏味但具有挑战性的系统(如数据库或操作系统)。他建议年轻人不要只停留在工具的使用表面,而要具备“垂直向下打入底层”的能力,理解从硬件寄存器、编译器到应用层的整个技术栈。他认为高强度的工作(每周 60 小时以上)是不可或缺的,虽然边际效用递减,但总产出和个人能力的“淬炼”效果远超常规标准。他鼓励年轻人要建立“我可以学会任何事”的信心,这种深度的技能积累能让人在机会出现时,通过找到系统中被他人忽视的效率漏洞(即“光速解”),将未来的技术提前数年带给世界。
"You can't know everything, but you should convince yourself that you can know anything."
"Deploy your curiosity to find ways to make things useful and valuable to you, even if they don't immediately appear that way."
"Working longer and harder is the path to getting it accomplished... you're tempering yourself in some ways."
卡马克认为,过度追问“生命的终极意义”往往会降低人的行动效率。他持有一种彻底的实用主义视角:人类是生物进化的偶然产物,其行为动机受基因编码和后天环境驱动。他将成功归结为“局部梯度下降”的逻辑:不依赖于虚无缥缈的宏大愿景,而是专注于处理当下的具体问题,利用局部信息不断做出微小改进,这些微小迭代的累积最终会导向极其复杂且卓越的成果。他将此比作进化论或代码演进(如JavaScript):虽然单体逻辑可能混乱低效,但通过大规模的适应与生存筛选,系统会自动涌现出智能。卡马克强调,专注的勤勉(即便边际效用递减,总产出仍会增加)是进步的唯一核心,而在面对路径选择时,应通过实际行动测试(AB测试)而非逻辑空谈来决定方向。
"It's been my experience that people that focus on that don't focus on the here and now right in front of them tend to be less effective... little tiny steps local information winds up leading to all the best answers."
"The magic of gradient descent: people just don't believe that just looking locally gets you to all of these spectacular things."
"Focused hard work is the real key to success. Keep your eyes on the goal and just keep taking the next step towards completing it. If you aren't sure which way to do something, do it both ways and see which works better."
John Carmack 的技术哲学建立在极其务实的“用户价值”基础之上。他认为,编程不应是单纯的艺术创作或自我感动的“代码高尔夫(Code Golf)”,而是一种为用户解决问题或提供娱乐的手段。这一理念深刻影响了他的决策逻辑:
Carmack 的每一项突破本质上都是在硬件极限下进行的“权衡艺术”,通过巧妙的数学算法实现了当时被认为不可能的视觉体验:
Carmack 的“黑客伦理”深受 Steven Levy 的《黑客》一书影响,其核心在于信息共享的非零和博弈:
Carmack 的编程哲学核心是实用主义与性能导向。对于语言,他持有非常客观的工具观:
关于“全栈深度”: Carmack 强调必须理解从硬件寄存器、缓存失效到编译器行为,再到高级架构的全过程。他认为只有掌握全栈深度,才能找到“光速方案”(Speed of Light solutions)。当大多数开发者仅在自己的层级(Silo)内优化时,具备全栈视野的人能通过跨层级的权衡(例如牺牲一点内存换取巨大的计算提速),将未来的技术提前五年实现。
Carmack 对 AGI 的看法基于算法简洁性和模拟优越性:
Carmack 以一种边际产出与总量产出的逻辑来反驳该观点:
Carmack 认为元宇宙目前最大的瓶颈并非单纯的硬件性能不足,而是易用性、可用性以及极高的进入门槛(摩擦成本)。他指出,VR 领域目前还缺乏像 Zoom 那样“一键即入”且高质量、稳定的用户体验。在他看来,很多项目过于追求增加新功能,却忽视了从用户动念到真正进入虚拟世界之间的延迟和障碍。
他强调降低摩擦成本的原因在于:
Carmack 的“梯度下降”式哲学是指不依赖于宏大、复杂的长远愿景,而是专注于解决眼下最直接、最具体的技术问题,通过局部的不断优化迭代,最终达成卓越的整体结果。
这种思维模式在多个领域展现了其有效性:
Carmack 深信“资源限制是创新的催化剂”。在早期 PC 性能极其低下的时代,按照常规方法无法实现流畅的动作游戏,这逼迫他不得不深入硬件底层,寻找非传统的解决方案(即 Hacks)。
具体的例子包括:
Carmack 总结道,虽然现在的计算机快得离谱,许多程序员不再需要成为汇编奇才,但如果想把未来提前 5 到 10 年拉到现实中(如在手机芯片上实现极致的 VR),依然需要那种在限制条件下挑战极限的黑客精神。
卡马克在决定职业生涯的下一个大目标时,曾在“高成本效益的核裂变能”与“通用人工智能(AGI)”之间进行过深度权衡。他最终选择 AGI 的原因主要基于以下两点深刻洞见:
关于那“六个关键见解”,卡马克的直觉呈现出一种极简主义与历史唯物主义的结合: