DHH:编程的未来、AI、Ruby on Rails、效率与育儿
DHH: Future of Programming, AI, Ruby on Rails, Productivity & Parenting
Ruby on Rails 创始人谈 AI 对开发者的冲击、编程的未来与远程工作方法,也聊为人父的体会。
全世界没有一个人认真相信 cookie banner 对任何人有好处,可就是没人能摆脱它。DHH(David Heinemeier Hansson,大卫·海涅迈尔·汉森)在 Lex Fridman 的播客里,用这句话给 GDPR 的十年做了判决。
GDPR 实施十到十二年,在 DHH 看来,它在所有可衡量的指标上彻底失败。唯一受益的是律师、会计师和官僚。他说欧洲在"善意导致恶果"这件事上做到了世界一流。
没有人相信 cookie banner 对任何人有好处,可我们就是无法摆脱它。它是善意直接通往地狱的纪念碑,而欧洲在这件事上确实是世界级的。(DHH)
他甚至推演了一个荒诞场景。坐马斯克的火箭去火星访问网页,依然会看到 cookie banner。火星到地球的 ping 延迟一百五十秒,页面加载完,还需要四十五秒才能点完那个弹窗。全世界都被它覆盖,无人能逃。
这个开场很能说明 DHH 是个什么样的人。他不关心一件事的初衷有多高尚,只关心它实际产生了什么。后面整场对话,无论是谈编程语言、谈云服务、谈苹果,还是谈家庭,他都用同一把尺子衡量:这个东西真的让人过得更好吗?
三次尝试,一次开窍
DHH 学编程,前两次都失败了。
六岁那年他想要一台 Commodore 64,父亲却带回一台 Amstrad 464。他从杂志上抄游戏源代码,一抄两个小时,常常因为一个拼写错误全盘失败。他理解了常量,却理解不了变量的意义。后来他发现了盗版游戏,干脆放弃学习。
十一二岁他拿到 Amiga 500,试了 EasyAMOS,学会了条件语句和循环,却连一个最基础的游戏都做不出来。他开始怀疑自己不够聪明,数学不够好。这种自我否定持续了很多年。
第三次是大约二十岁。九年级时他接触到互联网和 Netscape Navigator,用 HTML 让文字闪烁,第一次获得正反馈。他做游戏评测网站,先学 ASP.NET,后来转向 PHP。写 PHP 的时候,他开窍了。
十四岁那年,他在哥本哈根的小卧室里运营一个 BBS,接了三根电话线。父母知道他有电脑和电话线,但不完全清楚他在倒腾盗版软件。丹麦的成长环境里,没人对盗版有道德质疑。他曾经花一个月送报纸挣的钱,买一个 Sega Master System 游戏 After Burner II,六百克朗。他还坐火车从哥本哈根到日德兰半岛参加 demo party,拖着一台十四寸 CRT 显示器。
demo scene 是用 4KB 内存做出接近音乐视频的东西,通过邮寄 3.5 寸软盘来交换作品。那种极致的资源约束,和后来他追求的美学一脉相承。
PHP 给的那口甜
PHP 给 DHH 的东西很具体。九十年代末写 PHP,写脚本、FTP 上传、即时部署,不需要 web 服务器,不需要任何设置。他把这种体验称作 web 开发者人体工学的巅峰,整个职业生涯都在追逐那种快感。
我们是怎么丢掉这种敏感度的?让人能这样工作,还能把新人带进这个行业,给他们那种成功体验。(DHH)
他赞赏 Pieter Levels 至今还在用 PHP 加 jQuery 加 SQLite 运营多个业务。这证明那种方式真的能跑,跑得还挺好。行业后来把这条路弄丢了,而且丢得理直气壮。
JavaScript 的十年混沌
2010 到 2020 这十年,JavaScript 社区在框架和工具链上的更迭荒谬至极。一个用 Webpack 的项目,放下五分钟,它就编译不过了。DHH 的原话是"为什么所有东西永远在坏"。
JavaScript 社区,尤其是框架和工具,在 2010 到 2020 这十年里的更迭量,是荒谬的。(DHH)
浏览器技术本身也曾经停滞。IE5 赢了之后,微软解散了浏览器开发团队,整个 web 十年不动。是 Chrome 和 Google 把 web 重新推向前。DHH 承认复杂性有时候是桥,是过渡,但代价大得离谱。
他这里埋了一个判断:复杂性本身没有错,错的是把它当成终点。一座桥你可以走过去,但如果所有人都住在了桥上,问题就大了。JavaScript 生态那十年,太多人把桥当成了家。
Chrome 不该被拆
美国司法部想拆分 Chrome,DHH 的反应只有一句话:这是场灾难。
在技术领域所有关于垄断的问题里,Chrome 是最不该动的那个。(DHH)
他的理由是,浏览器领域基本不存在垄断问题。有 Firefox,有 Safari,有 Chrome,用户有选择。Chrome 是给 web 开发者的完整礼物,Google 值得巨大赞誉。真正的问题在移动手机上那个收费站,也就是苹果的 App Store,不在开放 web 上。要反垄断,该冲着 Google 的广告业务去,而不是 Chrome。
这个立场和他后面谈苹果、谈 HEY 的那段故事,是同一个逻辑的两面。开放 web 是他眼里少有的、还站在开发者这一边的地方,他不想看着它被拆掉。
Ruby:为大脑定制的手套
DHH 是通过 Dave Thomas 和 Martin Fowler 在 IEEE 杂志上的一篇文章发现 Ruby 的。那篇文章用 Ruby 来解释编程模式,因为 Ruby 看起来就像伪代码。Ruby 由松本行弘(Matz)在 1993 年开始开发。
DHH 给自己两周时间写一个概念验证,结果一个周末就完成了。他被彻底震撼。
Ruby 像是为我的大脑量身定制的手套,而缝制它的人我从未见过。这怎么可能?(DHH)
Ruby 的核心设计目标是程序员幸福感(programmer happiness)。对比之下,James Gosling 设计 Java 时的哲学是:普通程序员是愚蠢的生物,不能信任他们使用复杂语言。两种世界观,导向两种语言,也导向两种工作方式。
Ruby 的美学,DHH 举了几个例子。5.times,数字 5 也是对象,可以调用方法。initialize 对比 Python 的 __init__(self),干净太多。if user.admin?,那个问号是给人类看的交流工具,对计算机毫无意义,但正是这种冗余让代码读起来像人话。user.downgrade unless user.admin?,用 unless 替代 if !,更自然。还有 5.days,是 DHH 通过 Active Support 加到 Number 类上的方法。
它读起来像诗。(DHH)
他还提到 Matz 的信任。一个来自丹麦的陌生人,去改动他心爱的作品,Matz 允许了。这种信任程度基本闻所未闻。
静态类型之争与 Shopify 的账单
DHH 誓死捍卫动态类型。他认为静态类型让元编程更难,美学上也令人反感。静态类型里写 User user = new User(),同一个词 user 出现三次,纯属浪费。他不用 IDE,不用自动补全,用文本编辑器徒手把代码凿出来。
我不是用工具写代码,我用文本编辑器。我用双手把它从屏幕上凿出来。我不用自动补全。(DHH)
他认为自动补全会提高你对样板代码的容忍度,因为你打得快,就不觉得它在浪费你的生命。
他也承认,千万行、几千个程序员的大型代码库需要不同的方法。他反对的,是把这套东西强加到个人项目上。
用你的帕加尼去 Costco 买杂货。那是个糟糕的交通工具。(DHH)
支撑他观点的是真实数据。Shopify 在黑色星期五达到每秒一百万动态请求,运行着全球约 30% 的电商店铺,它的单体应用约五百万行代码。如果换成 Go 或者 Java 写,同样功能需要两千五百万行。Shopify 约一万名员工,市值一千二百亿美元,每季度 GMV 两千五百亿美元。它的创始人 Tobi Lütke 曾是 Rails 核心团队成员,写了 Active Merchant 和 Liquid 模板语言。
Ruby 是奢侈品语言。最高级的奢侈品。它是编程语言里的香奈儿。(DHH)
扩展性其实是一道经济学题
DHH 把扩展性拆成两个维度。一个是运行时性能,也就是单请求的执行速度,目标三百毫秒以内,理想是一百毫秒。另一个是水平扩展,加服务器就行,Shopify 用一千台服务器处理每秒一百万请求。
真正的扩展难点是数据库,是 MySQL,编程语言根本排不上号。Twitter 从 Rails 切走之后,DHH 说它十年零创新,这是 Rails 最好的广告。
他算过一笔账。37signals 大约 15% 的运营预算花在 Ruby 应用服务器上。就算换一门快一倍的语言,也只省下七个百分点的预算。而如果 Ruby 和 Rails 能让程序员生产力提高 10%,那个影响远远大于省下的 CPU 周期。
关于 Ruby 扩展性的问题,本质是经济问题。(DHH)
不是 CPU 核心。是 web 核心,是人力的核心。是人理解和运转系统的能力。(DHH)
大多数关于语言性能的争论,其实都在讨论一个错误的成本项。机器贵还是人贵,答案早就摆在那了,只是争论的人不愿意承认。
AI 让能力从手指间流失
DHH 喜欢用 AI 协作,但有个硬规矩:不让 AI 驱动写代码,只在单独的窗口里用它当参谋。他觉得 AI 有点太慢,像回到需要等编译的时代。
他最大的担忧是,能力从手指间流失。
我能真切感觉到,能力正从我的手指间流走。(DHH)
他举自己写的 Omakub 项目,一个用 Bash 写的 Ubuntu 定制版。让 AI 写代码的时候,他没学到任何东西。自己一个字一个字打的时候,他学到了。
你是用手指学习的。你要学吉他,可以看无数 YouTube 视频,但你还是学不会弹吉他。(DHH)
他说 AI 让他每天聪明 0.5%,但让 AI 驱动的时候,他每天笨 0.5%。他把 AI 看成结对编程伙伴,一个可以问愚蠢问题而不会被评判的对象。
Anthropic 的 CEO 预测年底 90% 的代码由 AI 写,DHH 说他不止一点怀疑。
第一条规则,没人他妈知道任何事。没人能预测六个月之后会发生什么。(DHH)
但他也接受一个可能:编程也许会变成"马"。从交通工具,变成休闲活动。一个人承认自己热爱的东西可能被时代降格,需要勇气。
Rails 的九条信条
2012 年 DHH 写下 Rails 的九条信条,原因很简单:如果不把价值观记录下来,社区就会迷失。
第一条,优化程序员幸福感,致敬 Matz。接受美学和其他目标之间的权衡,允许模糊。IRB 里 exit 和 quit 都能退出,Python 里你打 exit,它会给你上一课。
第二条,约定优于配置。反对 Java 框架那种几百行 XML 配置。系统应该预装好,不用你从一盒乐高开始拼。
约定优于配置,本质是说系统应该预先组装好。我不是递给你一盒该死的乐高,让你拼千年隼。我给你的是一件成品玩具。(DHH)
第三条,菜单是 Omakase,厨师精选。Rails 是解决 web 问题的完整尝试,所有拼图预先配置。对比 JavaScript 生态,没有人负责菜单,N 乘 N 乘 N 种排列组合,没有保留的智慧。
第四条,单一范式。Ruby 的核心是面向对象,也借鉴函数式和命令式。Rails 同样把各种最佳理念重新混搭。
第五条,追求优美代码。class Project 继承 ApplicationRecord,belongs_to :account,has_many :participants,validates :name,presence: true。读起来像俳句。
第六条,提供利刃。反对 Java 那种"不给你 foot gun"的哲学。信任人类,允许危险操作,割伤一次就学会了。
第七条,价值集成系统。Rails 解决整个 web 问题,不做零散组件。
第八条,进步优于稳定。DHH 承认这条已经过时。Rails 8 对 Rails 7 用户基本是无操作升级。是 JavaScript 社区的混沌让他改变了看法。
第九条,隐含的:单体优于微服务。
分布式编程第一法则:不要分布式你的编程。(DHH)
微服务……当你把这个模式用到二十个程序员、五十万行代码的团队上,你就是个白痴。(DHH)
这些信条背后是具体的产品。Basecamp 约十万行 Ruby 代码,约四百二十个屏幕。HEY 也是约十万行。HEY 发布时前端只有 40KB,Gmail 压缩后约 6MB,未压缩 28MB。Basecamp 首版由 DHH 一人在 2004 年用四百小时完成,至今创造数亿美元收入。
四百小时,一个人,一个周末到几周的量级。工具选对了,小团队能做出后来几十年都在产生现金的东西。
SQL 为什么一直没死
ActiveRecord 这个名字直接来自 Martin Fowler 2001 年的《企业应用架构模式》,那本书里就有这个模式名。核心思想很简单:表对应类,行对应对象。
它没有把 SQL 抽象掉,反而让 SQL 更简洁,更适合构建领域模型。
DHH 批评其他 ORM 试图活在纯对象世界里,然后发明一套复杂机制来回翻译。他认为程序员应该理解 SQL,哪怕用着 ORM。
SQL 是那些经受住 NoSQL 冲击、至今仍然统治的东西之一。(DHH)
这句话放到今天依然成立。当年喊着要取代 SQL 的一批数据库,大多已经变成了 SQL 数据库。持久的东西往往跟时髦无关,靠的是把问题切得准。
不要经理,要小团队
DHH 反对工程经理这个角色。他做过两年实验,雇了很优秀的工程经理,结论是:我原来是对的,我们不应该有经理。
经理的问题在于很快失去技术手感,变成"尖头发老板"。最好的反馈来自比你更擅长你工作的人,经理给不了。
37signals 的默认配置是小团队,两个人,一个程序员加一个设计师。没有经理,就不需要计划,可以跟随从代码里涌现的真相。小团队本身就是目的,不必把它当成通往大团队的垫脚石。
你没法用一千人的团队做出 Basecamp 这样的软件。你会做出一千人做的那个软件,那完全是两回事。(DHH)
他也反对 VC。拿别人的钱,意味着他们要回报。
不要拿风险投资。(DHH)
37signals 有个数据很有意思:十九年没有全职财务人员,后来因为没有收销售税被罚五百万美元,才不得不雇。他们还曾有过十年全职数据分析师,后来选择用财务人员替代。这种近乎偏执的精简,和他在云服务上的做法是同一种性格。
Jason Fried、Bezos 与一段被当成理所当然的信任
DHH 和 Jason Fried 合作了二十五年。两人住在不同城市,每周直接交流不到两小时。早期产品讨论激烈到员工担心公司要散架,但争论针对想法而非个人:Jason,你是个白痴,你是个白痴是因为你看这个问题的方式错了。
两人各有明确的能力领域。Jason 信任 DHH 的技术决策,DHH 信任 Jason 的设计和产品方向。他们刻意避免把彼此耗尽,因为关系有有限的交换量。两个人都喜欢做具体工作,DHH 编程,Jason 设计,不满足于只是头脑风暴。
Bezos 通过私人办公室买了二级股份,金额几百万美元,从 DHH 和 Jason 个人手中买,钱没进公司账户。DHH 说这是疫苗,让他们有底气拒绝 VC。
写投资提案的时候他们大笑,故意写了个疯子才会接受的价格。Bezos 的投资团队说这毫无经济意义,Bezos 说:我不在乎,我想投资这个人。
Bezos 每年和他们会谈一次,说的话是:你们在做很棒的事,继续做。我不懂怎么经营你们的业务,你们懂。
DHH 从 Bezos 那里学到长期信念和 disagree and commit。他对这段关系有一些遗憾,因为曾把这种信任视为理所当然。他还说,会议有毒。
会议有毒。(DHH)
恨意是热爱的副产品
DHH 引用 Kathy Sierra 的博客 Creating Passionate Users。如果你创造出有价值的东西让很多人喜爱,必然产生等量的反作用力,也就是恨你的人。
如果你在创造有价值的东西、让很多人热爱它,你必然创造出等量而反向的恨意力量。唯一逃脱它的方式是平庸。(DHH)
任何试图讨好所有人的人,最后只能平庸。反过来说,如果身上一点争议都没有,可能该反思自己到底做了什么。
流、自行车与 top 5%
DHH 引 Mihaly Csikszentmihalyi 的《Flow》。这本书的研究起点是"为什么有些人幸福、什么时候幸福"。结论是,人最幸福的时刻,是能力被拉伸到略超当前水平的时候,而不是坐在 Mojito Island、没有义务和责任的时候。
流状态里人会忘记时间空间。编程一个难题,你以为过了二十分钟,实际过了三小时。人回望这些时刻会感到最大的快乐。如果移除所有问题,人会抑郁。
成功卖掉公司后,退休两周就会无聊到极点。失败则后悔过去十年。继续经营也永远不会更容易。如果只留下工作,会全面失败。DHH 想要流带来的幸福,但要以能持续四十年甚至五十年的方式做。
第一次体验只发生一次,大多数人无法第二次复制成功。Basecamp 是 lightning in a bottle,第二家公司很少能同样成功。创始人容易傲慢,认为成功只因自己厉害,但有时只是时机之门打开又关闭。
如果问他想对年轻的自己说什么,他说不会说任何话,不会剥夺因无知而获得的人生经历。智慧要一次一次摔碎再重建。新起点最大的祝福,就是不知道会有多难,不知道自己不知道什么。
责任是意义的关键。Jordan Peterson 教他表达这一点,Viktor Frankl 在《Man's Search for Meaning》里说,只要有理由,人能忍受任何苦难。
二十岁、三十岁、四十岁都不可回。Derek Sivers 有个自行车的比喻:全力骑十九分钟,或者享受风景慢 5% 用二十一分钟,只差两分钟。
如果想成为世界第一,必须牺牲一切,痴迷于一件事。DHH 不追求第一。他自认不是最聪明、最好、最有天赋的,但能组合不同领域。top 5% 比 top 0.1% 容易二十倍或一百倍,你可以在五件事上同时做到 top 5%:写作、赛车、编程、经营公司、家庭。
Karl Marx 描述过早上钓鱼、晚上锤铁、周末画画的生活。DHH 无法忍受单一隧道视野带来的异化。深度编程数周甚至数月之后,必须浮上来做别的事,再以全强度回来。
从云端搬回自己的机房
批评者说,如果 37signals 追求 moon、VC、AI,可能大一百倍。DHH 承认机会成本真实,但以公司这个规模来看,每年省下两百万美元基础设施账单,其中一半到三分之二直接进入底线,归所有者和员工分红,这笔账值得算。
他反对硅谷那种"成本不重要"的思维。低效业务和低效程序一样像脑中刺,看 expense report 里的浪费让他不适。
AWS 曾经用于一切,包括 HEY,总云账单峰值约三百二十万到三百四十万美元。云的推销话术是更快、更容易、更便宜,DHH 曾经相信,决定不再拥有服务器。后来他发现 AWS 运营着约 40% 的毛利,云的那套话术在他看来根本站不住脚。
AWS 也没有更容易。IAM 规则、access parameters 之类的东西复杂得很。迁出自有硬件后,没多雇一个人,团队不变。
"更快"只在需要十五分钟内上线一千台机器时明显,日常用不到。买服务器便宜得多,可以买更多机器,不必追求自动缩放的极致效率。
2023 年初他受够了账单,六个月内把七个主要应用从云端迁到自有服务器,包括 compute、caching、databases。服务器从 Michael Dell 那里买,Dell 已经营业四十一年。S3 因为四年合同继续使用,云里拿到好价格通常需要多年合同,compute 常是一年合同。
他预计五年省约一千万美元,基础设施支出降一半到三分之二。
DARPA 原设计是分布式网络,没有单一节点控制一切。US-East-1 宕机时,看似三分之一互联网离线,这是对 DARPA 设计的侮辱。
自有硬件现在完全可行。现代 CPU、1U 机器的内存容量、TSMC 和苹果推动的进步,年增 15% 到 20%。NVMe 和 SSD 改变了系统设计。摩尔定律本应让价格下降,云却反着来。
自有机器有痛点。计算机固有痛苦,需要机架、网络、专业 know-how。但整个互联网曾经就是靠插以太网、插电源、启动 Linux 建成的。
数据中心用 Summit,前身是 Deft,白手套服务,DHH 不亲自去。看到 IP、drives 上线,体验类似云,但便宜很多。
他还提到 homelab:个人服务器、家庭光纤 5 gigabit。2004 年的技术和 100 megabit cable 就能支撑 Basecamp 数百万 MRR。从卧室就能启动公司。
xAI 不租对手的 GPU,自建十万块 GPU 的帐篷,以创纪录速度搭起来。拥有硬件在小型、中型、前沿计算三个尺度上都有优势。
招聘、Elon、苹果与 HEY 的那场仗
DHH 招聘不看简历、学校、成绩、血统,看 cover letter 和编程测试。远程工作要求好写作,编程测试模拟真实工作。他多次被代码质量颠覆预期:简历完美的人代码不行,看起来不确定的人代码极好。
Elon 不是在找人才,是在吸引人才。使命足够大胆、清晰,人才因为使命而来。Elon 懂很多东西,能评估工作产品的质量,快速分辨谁在胡说,能押注在能去火星的人身上。他能简化问题,需要愿景加现实锚定,加对结果的激情。
苹果早年,DHH 是死忠。2000 年代初苹果以 Unix 为底,他从微软逃离。在哥本哈根商学院用第一台白色 iBook,转化了半个班。2004、2005 年他和 Jason 做苹果开发者广告。Mac 用户二十年,2007 年和 Jason 排队五小时买第一代 iPhone。
转折在 iPhone
No one anywhere who’s serious believes that cookie banners does anything good for anyone, yet we’ve been unable to get rid of it.
任何认真的人都不会相信 cookie 横幅对任何人都有好处,但我们一直无法摆脱它。
00:00 This is the thing that really gets me about cookie banners too.
这也是 cookie 横幅真正让我着迷的地方。
It’s not just the EU, it’s the entire world.
不仅仅是欧盟,而是整个世界。
You can’t hide from cookie banners anywhere on this planet.
在这个星球上的任何地方,你都无法躲避饼干横幅。
If you go to goddamn Mars on one of Elon’s rockets and you try to access a web page, you’ll still see a cookie banner.
如果你乘坐埃隆的火箭前往该死的火星并尝试访问网页,你仍然会看到一个 cookie 横幅。
No one in the universe is safe from this nonsense.
宇宙中没有人能免受这种废话的影响。
00:26 It sometimes feels like we’re barely better off.
有时感觉我们的情况好不到哪儿去。
Web pages aren’t that different from what they were in the late ’90s, early 2000s.
网页与 90 年代末 2000 年代初并没有太大不同。
They’re still just forms.
它们仍然只是形式。
They still just write to databases.
他们仍然只是写入数据库。
A lot of people, I think, are very uncomfortable with the fact that they are essentially crud monkeys.
我认为,很多人对自己本质上是粗鲁的猴子这一事实感到非常不舒服。
They just make systems that create, read, update, or delete rows in a database and they have to compensate for that existential dread by over complicating things.
他们只是创建在数据库中创建、读取、更新或删除行的系统,并且必须通过使事情过度复杂化来弥补这种存在的恐惧。
That’s a huge part of the satisfaction of driving a race car is driving in at the edge of adhesion, as we call it, where you’re essentially just a tiny movement away from spinning out.
驾驶赛车的满意度的很大一部分是在我们所说的附着力边缘行驶,在这种情况下,你基本上只需要一个微小的动作就可以摆脱旋转。
Doesn’t take much.
不需要太多。
Then the car starts rotating.
然后汽车开始旋转。
Once it starts rotating, you lose grip and you’re going for the wall.
一旦它开始旋转,你就会失去抓地力并撞向墙壁。
That balance of danger and skill is what’s so intoxicating.
危险与技巧的平衡令人陶醉。
The following is a conversation with David Heinemeyer Hansen, also known as DHH.
以下是与 David Heinemeyer Hansen(也称为 DHH)的对话。
01:21 He is a legend in the programming and tech world, brilliant and insightful, sometimes controversial, and always fun to talk to.
他是编程和技术界的传奇人物,才华横溢、富有洞察力,有时颇具争议,但交谈起来总是很有趣。
He’s the creator of Ruby on Rails, which is an influential web development framework behind many websites used by millions of people, including Shopify, GitHub, and Airbnb.
他是 Ruby on Rails 的创建者,Ruby on Rails 是一个有影响力的 Web 开发框架,为数百万人使用的许多网站提供支持,包括 Shopify、GitHub 和 Airbnb。
He is the co-owner and CTO of 37signals that created Basecamp, HEY, and ONCE.
他是 37signals 的共同所有者兼首席技术官,该公司创建了 Basecamp、HEY 和 ONCE。
01:57 He is a New York Times best-selling author together with his co-author, Jason Fried, of four books, Rework, Remote, Getting Real, and It Doesn’t Have To Be Crazy At Work.
他与杰森·弗里德 (Jason Fried) 合着了《返工》、《远程》、《变得真实》和《工作不必疯狂》四本书,成为《纽约时报》畅销书作家。
And on top of that, he’s also a race car driver, including being a class winner at the legendary twenty-four-hour Le Mans race.
最重要的是,他还是一名赛车手,包括在传奇的 24 小时勒芒比赛中获得组别冠军。
This is the Lex Fridman podcast.
这是莱克斯·弗里德曼播客。
To support it, please check out our sponsors in the description and consider subscribing to this channel.
为了支持它,请查看说明中的赞助商并考虑订阅此频道。
And now, dear friends, here’s DHH.
现在,亲爱的朋友们,这里是 DHH。
02:32 For someone who became a legendary programmer, you officially got into programming late in life, and I guess that’s because you tried to learn how to program a few times and you failed.
对于成为传奇程序员的人来说,您在晚年才正式进入编程领域,我想那是因为您尝试学习如何编程几次但失败了。
So can you tell me the full story, the saga of your failures to learn programming?
那么你能告诉我完整的故事吗?你学习编程失败的传奇故事?
Was Commodore 64 involved?
Commodore 64 是否参与其中?
Commodore 64 was the inspiration.
Commodore 64 就是灵感来源。
02:53 I really wanted a Commodore 64.
我真的很想要一台 Commodore 64。
That was the first computer I ever sat down in front.
那是我坐在前面的第一台电脑。
And the way I sat down in front of it was I was five years old and there was this one kid on my street who had a Commodore 64.
当我坐在它前面时,我才五岁,我的街道上有一个孩子拥有一台 Commodore 64。
No one else had a computer, so we were all the kids just getting over there and we were all playing Yie Ar Kung-Fu.
其他人没有电脑,所以我们都是刚到那里的孩子,我们都在玩一阿功夫。
I don’t know if you’ve ever seen that game.
不知道你有没有看过那个游戏。
It was one of the original fighting games.
这是最初的格斗游戏之一。
It’s really a great game and I was playing that for the first time at five years old, and we were like seven kids sitting up in this one kid’s bedroom all taking our turn to play the game.
这真的是一个很棒的游戏,我五岁时第一次玩这个游戏,我们就像七个孩子坐在一个孩子的卧室里,轮流玩这个游戏。
And I just found that unbelievably interesting.
我发现这非常有趣。
And I begged and I begged and I begged my dad, “Could I get a computer?” And he finally comes home.
我恳求爸爸,“我可以买一台电脑吗?”他终于回家了。
He’s like, “I got you a computer.” I was like, yes, my own Commodore 64.
他说:“我给你买了一台电脑。”我当时想,是的,我自己的 Commodore 64。
And he pulls out this black, green and blue keyboard that’s an Amstrad 464.
他拿出这个黑色、绿色和蓝色的键盘,它是 Amstrad 464。
I was like, “Dad, what’s this?”
我当时想:“爸爸,这是什么?”
The disappointment.
失望。
This is not a Commodore 64.
这不是 Commodore 64。
03:54 But it was a computer.
但那是一台电脑。
So I got my first computer at essentially six years old, that Amstrad 464.
所以我在大约六岁的时候就得到了我的第一台计算机,那就是 Amstrad 464。
And of course, the first thing I wanted to do, I wanted to play video games.
当然,我想做的第一件事就是玩电子游戏。
And I think the computer, which he by the way had traded for a TV and a stereo recorder or something like that, came with two games.
我认为他用这台电脑换了一台电视和一台立体声录音机或类似的东西,附带了两款游戏。
One was this Frogger game where you had to escape from underground.
其中之一是《青蛙过河》游戏,你必须从地下逃脱。
It was actually kind of dark, like this frog, you’re trying to get it out from underground.
实际上有点黑,就像这只青蛙,你正试图把它从地下救出来。
I was pretty bad at it.
我做得很糟糕。
And I only had those two games and then I wanted more games.
我只玩了这两场比赛,然后我想要更多比赛。
And one way to get more games when you’re a kid who doesn’t have a lot of money and can’t just buy a bunch of games is to type them in yourself.
当你还是个没有很多钱并且无法购买一堆游戏的孩子时,获得更多游戏的一种方法就是自己输入它们。
Back in ’84, ’85, magazines would literally print source code at the back of their magazines and you could just sit and type it in.
早在 84、85 年,杂志就会在杂志背面打印源代码,你只需坐下来输入即可。
04:46 So I tried to do that and it would take like two hours to print this game into the Amstrad, and of course I’d make some spelling mistake along the way and something wouldn’t work and the whole thing…
所以我尝试这样做,大约需要两个小时才能将这个游戏打印到 Amstrad 中,当然,我一路上会犯一些拼写错误,有些东西不起作用,整个事情......
I wasn’t that good of English, I was born in Denmark.
我出生在丹麦,英语不太好。
So I was really trying to get into it because I wanted all these games and I didn’t have the money to buy them.
所以我真的很想参与其中,因为我想要所有这些游戏,但我没有钱购买它们。
And I tried quite hard for quite a while to get into it, but it just never clicked.
我很努力地尝试了很长一段时间,但始终没有成功。
And then I discovered the magic of piracy, and after that I basically just took some time off from learning to program because well now suddenly I had access to all sorts of games.
然后我发现了盗版的魔力,在那之后我基本上只是花了一些时间学习编程,因为现在我突然可以接触各种游戏了。
So that was the first attempt around six, seven years old.
这是六七岁左右的第一次尝试。
And what’s funny is I remember these fragments.
有趣的是我还记得这些片段。
I remember not understanding the purpose of a variable.
我记得不理解变量的用途。
05:34 If there’s a thing and you assign something, why would you assign another thing to it?
如果有一个东西并且你分配了一些东西,为什么你要给它分配另一个东西呢?
So for some reason, I understood constants.
所以出于某种原因,我理解了常量。
Constants made sense to me, but variables didn’t.
常量对我来说有意义,但变量没有。
Then maybe I’m 11 to 12, I’ve gotten into the Amiga at this point.
那么也许我是 11 岁到 12 岁,此时我已经进入了 Amiga。
The Amiga, by the way, still perhaps my favorite computer of all time.
顺便说一句,Amiga 可能仍然是我一直以来最喜欢的计算机。
I mean, this is one of those things where people get older and they’re like, oh, the music from the ’80s was amazing.
我的意思是,这是人们变老的事情之一,他们会说,哦,80 年代的音乐太棒了。
To me, even as someone who loves computers and love new computers, the Amiga was this magical machine that was made by the same company that produced the Commodore 64 and I got the Amiga 500 I think in ’87.
对我来说,即使作为一个热爱电脑和新电脑的人,Amiga 也是一台神奇的机器,它是由生产 Commodore 64 的同一家公司制造的,我想是在 87 年买了 Amiga 500。
Look at this sexy thing.
看看这个性感的东西。
06:16 That is a sexy machine right there.
那是一台性感的机器。
This is from an age by the way where computing wasn’t global in the same sense, that different territories had different computers that were popular.
顺便说一下,这是一个计算并不是全球化的时代,不同的地区有不同的流行计算机。
06:19 The Amiga was really popular in Europe, but it wasn’t very popular at all in the US as far as I understand.
Amiga 在欧洲非常受欢迎,但据我了解,它在美国一点也不受欢迎。
It wasn’t popular in Japan.
它在日本并不流行。
There were just different machines.
只是有不同的机器。
The Apple II was a big thing in the US.
Apple II 在美国风靡一时。
I’d never even heard of Apple in the ’80s in Copenhagen.
八十年代的哥本哈根,我什至从未听说过苹果公司。
But the Amiga 500 was the machine that brought me to want to try it again.
但 Amiga 500 是让我想要再次尝试的机器。
And do you know what’s funny?
你知道什么是有趣的吗?
The reason I wanted to try it again was I remembered the first time I tried to learn and then there was this programming language that was literally called EasyAMOS, like the easy version of AMOS.
我想再尝试一次的原因是我记得第一次尝试学习时有一种编程语言,字面意思是 EasyAMOS,就像 AMOS 的简单版本一样。
I’m like, if it’s easy AMOS, how hard can it be?
我想,如果这很容易,AMOS,它能有多难呢?
I’ve got to be able to figure this out.
我必须能够弄清楚这一点。
07:04 And this time I tried harder.
而这一次我更加努力了。
I got into conditionals, I got into loops, I got into all these things and still, I couldn’t do it.
我陷入了条件语句,陷入了循环,陷入了所有这些事情,但我仍然做不到。
And on the second attempt, I really got to the point of maybe I’m not smart enough.
在第二次尝试时,我真的意识到也许我不够聪明。
Maybe it’s too much math.
也许数学太多了。
I like math in this sort of superficial way.
我喜欢这种肤浅的数学。
I don’t like it in the deep way that some of my perhaps slightly nerdier friends did, who I had tremendous respect for, but I’m not that person.
我不太喜欢我的一些可能有点书呆子的朋友那样的方式,我非常尊重他们,但我不是那样的人。
I’m not the math geek who’s going to figure it all out.
我不是一个能够解决所有问题的数学极客。
So after that attempt with EasyAMOS and failing to even get…
因此,在尝试 EasyAMOS 后甚至没有得到......
I don’t even think I completed one even very basic game.
我什至不认为我完成了一款非常基本的游戏。
I thought, programming’s just not for me.
我想,编程不适合我。
I’m going to have to do something else.
我得做点别的事。
I still love computers.
我还是喜欢电脑。
I still love video games.
我仍然喜欢电子游戏。
07:53 I actually at that time had already begun making friends with people who knew how to program, who weren’t even programming EasyAMOS, they were programming with freaking Assembly.
事实上,我当时已经开始和那些知道如何编程的人交朋友,他们甚至没有编程 EasyAMOS,他们正在使用该死的 Assembly 进行编程。
And I would sit down and just go, the moves and the memories and the copies, how do you even do this?
我会坐下来,然后走,移动、记忆和副本,你是怎么做到的?
I don’t even understand how you go from this to Amiga demos for example.
例如,我什至不明白你是如何从这里转到 Amiga 演示的。
That was the big thing with the Amiga.
这就是 Amiga 的大事。
It had this wonderful demo scene in Europe.
它在欧洲有这个精彩的演示场景。
It’s this really interesting period of time in the Amiga’s history where you had all these programmers spread out mostly all over Europe who would compete on graphic competitions where you could probably bring one of these different-
在 Amiga 的历史上,这是一段非常有趣的时期,所有这些程序员大多分布在欧洲各地,他们将参加图形竞赛,你可能会带来这些不同的之一——
On that thing?
在那件事上?
On this thing.
就这件事而言。
08:36 They would make these little almost like music videos, combining some MIDI music, combining some cool graphics, and they would do all of it in like 4K.
他们会制作这些几乎像音乐视频一样的小视频,结合一些 MIDI 音乐,结合一些很酷的图形,并且他们会以 4K 格式完成所有这些。
Four kilobytes that is.
即四KB。
Not four Ks of resolution.
分辨率不是四个 K。
Four kilobytes of memory.
四KB内存。
And I just thought that was such a cool scene.
我只是觉得那真是一个很酷的场景。
This was obviously pre-internet.
这显然是在互联网出现之前。
It was even pre-BBS, bulletin board systems, to some extent.
在某种程度上,它甚至是前BBS、公告板系统。
It was you swap your demo software with someone else by sending them a disk in the mail, like the 3.5s.
就是你通过邮寄光盘的方式与其他人交换你的演示软件,比如 3.5s。
And I was enamored with that whole scene.
我被整个场景迷住了。
I was enamored with what they were able to create and I just wanted to be a part of it even though I kind of didn’t have any skills to contribute.
我对他们能够创造的东西很着迷,我只是想成为其中的一部分,尽管我没有任何技能可以做出贡献。
And that’s how I got into running BBSs.
这就是我开始运营 BBS 的原因。
09:22 I didn’t learn programming then and I wouldn’t learn programming until much later, until I was almost 20 years old.
那时我没有学习编程,直到很久以后,直到我快20岁的时候我才学习编程。
The bulletin board systems existed in this funny space where they were partly a service to the demo scenes allowing all these demo groups to distribute their amazing demos.
公告板系统存在于这个有趣的空间中,它们在一定程度上是为演示场景提供服务,允许所有这些演示小组分发他们令人惊叹的演示。
And then it was also a place to trade piracy software, pirated software.
然后它也是一个交易盗版软件、盗版软件的地方。
And I ended up starting one of those when I was 14 years old in my tiny little bedroom in Copenhagen.
当我 14 岁时,我在哥本哈根的小卧室里开始了其中的一个。
I had my, at that point, Amiga 4000.
那时我有我的 Amiga 4000。
I had three telephone lines coming in to my tiny room.
我的小房间里有三根电话线。
Nice.
好的。
Which is funny because again, I’m 14 years old.
这很有趣,因为我又14岁了。
10:00 By the time I was installing my third line, you had to get someone from the telephone company to come do it.
当我安装第三条线路时,你必须让电话公司的人来做这件事。
I get this guy and he’s just looking around, like what is this?
我找到了这个人,他只是四处张望,这是什么?
Why the hell is a 14 year old having three phone lines into their tiny little bedroom?
为什么一个 14 岁的孩子的小卧室里要插三根电话线?
What’s going on here?
这是怎么回事?
Why are all these modems blinking red and black and making funny sounds?
为什么所有这些调制解调器都闪烁红色和黑色并发出奇怪的声音?
Did your parents know?
你父母知道吗?
They did and they didn’t.
他们做到了,也没有做到。
10:24 They knew I had the phone lines.
他们知道我有电话线。
They knew I had the computer.
他们知道我有电脑。
I don’t think they really understood that I was trading pirated software that was both illegal and whatever else was going on.
我认为他们并没有真正理解我正在交易盗版软件,这些软件既非法又发生了其他事情。
Oh, we should probably say that in Europe, maybe you can comment on this, especially in Eastern Europe, but Europe in general, piracy I think was more acceptable than it was in the United States.
哦,我们可能应该说,在欧洲,也许你可以对此发表评论,特别是在东欧,但总的来说,欧洲,我认为盗版比在美国更容易被接受。
10:38 I don’t know, maybe it’s just my upbringing-
我不知道,也许这只是我的成长经历——
Even that conversation wasn’t present.
甚至那次谈话也不在场。
10:52 I never spoke to anyone growing up in Denmark-
我从来没有和任何在丹麦长大的人说过话-
That piracy is wrong.
这种盗版行为是错误的。
Who had any moral qualms whatsoever about piracy.
谁对盗版有任何道德疑虑。
10:57 It was just completely accepted that you’re a kid, you want a lot of games, you don’t have a lot of money.
人们完全接受了这样的事实:你是个孩子,你想要很多游戏,但你没有很多钱。
What do you do?
你做什么工作?
You trade.
你交易。
Some people would occasionally buy a game.
有些人偶尔会购买游戏。
I mean, I once bought a Sega Master system and I bought one game because that was what I could afford.
我的意思是,我曾经购买过世嘉大师系统,并且购买了一款游戏,因为那是我买得起的。
I got After Burner II, I don’t know if you’ve ever played that game.
我有After Burner II,不知道你是否玩过这个游戏。
It’s a pretty bad implementation on the Sega Master System, but it was like 600 crowners.
这在 Sega Master 系统上是一个相当糟糕的实现,但它就像 600 个皇冠。
11:28 And I was making money at that time doing newspaper delivery.
那时我靠送报纸赚钱。
I had to do that for a month to afford one game.
我必须这样做一个月才能买得起一款游戏。
I liked video games way too much to wait a month just to get one game.
我太喜欢电子游戏了,以至于等了一个月才得到一款游戏。
So piracy was just the way you did it, and that was how I got into running this bulletin board system, being part of the demo scene, being part of the piracy scene to some extent.
所以盗版就是你这样做的方式,这就是我如何开始运行这个公告板系统,成为演示场景的一部分,在某种程度上成为盗版场景的一部分。
And then also at some point realizing, oh, you can actually also make money on this and this can fund buying more phone lines and buying more modems and buying more Amigas.
然后在某个时候你会意识到,哦,你实际上也可以通过这个赚钱,这可以资助购买更多的电话线、更多的调制解调器和更多的 Amigas。
Oh yeah, that was one of the demo parties.
哦,是的,那是一场演示派对。
These were amazing things.
这些都是令人惊奇的事情。
What am I looking at?
我在看什么?
Isn’t that amazing?
这不是很神奇吗?
Look at all those CRT monitors.
看看那些 CRT 显示器。
All these CRT monitors.
所有这些 CRT 显示器。
12:08 Again, when I was 14, I don’t understand fully why my parents allowed this, but I traveled from Copenhagen, the capital of Denmark to [inaudible 00:12:20], this tiny little town in Jutland on the train with a bunch of dudes who were late teens, in their twenties.
再一次,当我 14 岁的时候,我不完全明白为什么我的父母允许这样做,但我从丹麦首都哥本哈根到了[听不清 00:12:20],日德兰半岛的这个小镇,和一群十几岁、二十多岁的家伙一起坐火车。
I’m 14 years old.
我今年 14 岁。
I’m lugging my 14-inch CRT monitor with my computer in the back to go to the party.
我拖着 14 英寸 CRT 显示器和后面的电脑去参加聚会。
That was what it was called.
这就是它的名字。
That was the biggest demo scene party at that time and it was exactly as you see in that picture, thousands of people just lining up with their computers, programming demos all day long and trading these things back and forth.
那是当时最大的演示现场聚会,正如您在图片中看到的那样,成千上万的人只是在计算机前排队,整天编程演示并来回交换这些东西。
That’s kind of awesome.
这真是太棒了。
12:48 Not going to lie.
不会撒谎。
It’s a little ridiculous.
这有点可笑。
It’s totally awesome, and I miss it in ways where the internet has connected people in some ways, but the connection you get from sitting right next to someone else who has their own CRT monitor, who’s lugged at halfway around the country to get there is truly special because it was also just this burst of creativity.
这太棒了,我很怀念互联网以某种方式将人们联系起来的感觉,但是当你坐在拥有自己的 CRT 显示器的人旁边时所获得的联系确实很特别,因为这也是创造力的爆发。
12:52 You’re constantly running around, you’re constantly surrounded by people who are really good at what they could do, they’re really good at programming computers.
你不断地四处奔走,你周围的人总是非常擅长他们能做的事情,他们非常擅长计算机编程。
It’s infectious.
它具有传染性。
It was part of that pang I felt then going like, oh man, why can’t I figure this out?
这是我当时感到的痛苦的一部分,天哪,为什么我不能弄清楚这一点?
I mean, why can’t I even figure out EasyAMOS?
我的意思是,为什么我连 EasyAMOS 都搞不懂?
It’s kind of frustrating.
这有点令人沮丧。
But on your third attempt, you were a little more successful.
但在第三次尝试时,你取得了一些成功。
So third attempt is when I start getting it.
所以第三次尝试是当我开始得到它的时候。
13:30 This is when I start helping out, let’s say, building things for the internet.
比方说,从那时起我就开始帮忙构建互联网的东西。
So around ’95 I think it is, or ’96, I discovered the internet.
所以我认为是在 95 年左右,或者说是在 96 年,我发现了互联网。
Actually in ninth grade, that was my first experience.
实际上,在九年级时,那是我的第一次经历。
I went to some university in Denmark and in ninth grade we had this excursion and they sat us down in front of a computer and the computer had Netscape Navigator, the first version, or maybe it was even the precursor to that, and they had a text editor and us kids [inaudible 00:14:06] hey, build something on the internet.
我去了丹麦的某所大学,九年级时我们进行了一次短途旅行,他们让我们坐在电脑前,电脑上有 Netscape Navigator,第一个版本,或者甚至是它的先驱,他们有一个文本编辑器,我们孩子们 [听不清 00:14:06] 嘿,在互联网上构建一些东西。
And it was just HTML and the first thing you do is like, oh, I can make the text blink by just putting in this tag and saving it?
它只是 HTML,你要做的第一件事就是,哦,我可以通过放入这个标签并保存它来使文本闪烁吗?
That moment, that was actually when I reawakened the urge to want to learn to program because I got a positive experience.
那一刻,实际上我重新唤醒了想要学习编程的冲动,因为我获得了积极的经历。
14:23 All the other experiences I had with programming was I’d spend hours typing something in, I click run and it wouldn’t work, and I’d get an error message that made no sense to me as a kid either at six or seven or at 12.
我在编程方面的所有其他经历是,我会花几个小时输入一些内容,然后单击“运行”,但它不起作用,而且我会收到一条错误消息,这对于我六岁、七岁或 12 岁的孩子来说毫无意义。
And here I am sitting in front of a computer connected to the internet and I’m making text blink.
我坐在连接互联网的电脑前,让文字闪烁。
I’m making it larger.
我正在把它做得更大。
I’m turning it into an H1 or an H2.
我正在把它变成 H1 或 H2。
And these guys out here, we just did it for like an hour and a half and suddenly I go, oh, I can make things for the internet that someone in Germany can be able to access and see, and I don’t have to ask anyone for permission?
这些人在这里,我们只做了大约一个半小时,突然我想,哦,我可以为互联网制作一些东西,德国的人可以访问和查看,而且我不需要征求任何人的许可?
This is super cool.
这太酷了。
I’ve got to do more of this.
我必须做更多这样的事情。
So I got into the internet.
所以我进入了互联网。
I got into working with HTML, and I still had all these friends from these demo parties, and I started working with them on creating gaming websites.
我开始使用 HTML,而且我仍然有来自这些演示聚会的所有这些朋友,我开始与他们一起创建游戏网站。
15:11 I’d rather buy the video games, I’d review them.
我宁愿买电子游戏,我也会评论它们。
This was another good way of getting new video games was to walk down to some store and say like, hey, I’m a journalist.
这是获得新视频游戏的另一种好方法,那就是走进一家商店并说,嘿,我是一名记者。
I’m like this fifteen-year-old kid and they’re looking at me.
我就像这个十五岁的孩子,他们正在看着我。
“You’re a journalist?” “Yeah, can I borrow some games?” Because this was when games moved on to the PlayStation and these other things.
“你是记者?” “是啊,我可以借一些游戏吗?”因为那时游戏开始转移到 PlayStation 和其他设备上。
You couldn’t just as easily pirate, at least not at first.
你不能轻易盗版,至少一开始不能。
So I went down there, did all that, and that started the journey of the internet for me.
所以我去了那里,做了所有这些,这开始了我的互联网之旅。
I started working on these gaming websites, working with programmers, figuring out that I could do something, I could work on the HTML part.
我开始在这些游戏网站上工作,与程序员一起工作,发现我可以做一些事情,我可以处理 HTML 部分。
15:44 It’s not really programming, but it kind of smells like it.
这并不是真正的编程,但有点像编程。
You’re talking to a computer, you’re making it put text on the screen and you’re communicating with someone halfway around the world.
你正在与一台计算机交谈,你正在让它在屏幕上显示文本,你正在与地球另一端的人进行交流。
So that became my pathway back into programming, and then slowly I picked up more and more of it.
所以这成为我重新回归编程的途径,然后慢慢地我学会了越来越多的东西。
First website I did with someone, one of these programmers from the demo scene that was dynamic was asp.net.
我与某人合作制作的第一个网站是 asp.net,其中一位来自动态演示场景的程序员。
It wasn’t even actually called .net.
它实际上甚至没有被称为.net。
That was what we started on, and then we moved on to PHP and PHP was when I finally got it, when it finally clicked, when conditionals and loops and variables and all of that stuff started to make sense enough to me that I thought, I can do this.
这就是我们开始的地方,然后我们转向 PHP,当我终于明白 PHP 的时候,当它终于成功的时候,当条件、循环和变量以及所有这些东西开始对我来说足够有意义时,我想,我可以做到这一点。
So would it be fair to say that we wouldn’t have DHH without PHP and therefore you owe all of your success to PHP?
那么,可以公平地说,如果没有 PHP,我们就不会有 DHH,因此您的所有成功都归功于 PHP?
A hundred percent, that’s true.
百分之一百,确实如此。
16:33 And it’s even better than that because PHP to me didn’t just give me a start in terms of making my own web applications.
它甚至比这更好,因为 PHP 对我来说不仅仅是让我开始制作自己的 Web 应用程序。
It actually gave me a bar.
它实际上给了我一个酒吧。
In many ways I think the pinnacle of web developer ergonomics is late ’90s PHP.
从很多方面来说,我认为 Web 开发人员人体工学的顶峰是 90 年代末的 PHP。
You write this script, you FTP it to a server and instantly it’s deployed.
您编写此脚本,将其通过 FTP 传输到服务器并立即进行部署。
Instantly it’s available.
立即可用。
You change anything in that file and you reload, boom, it’s right there.
你改变了该文件中的任何内容,然后重新加载,繁荣,它就在那里。
There’s no web servers, there’s no setup.
没有网络服务器,也没有设置。
There’s just an Apache that runs mod PHP, and it was essentially the easiest way to get a dynamic web page up and going, and this is one of the things I’ve been chasing that high for basically the rest of my career.
只有一个运行 mod PHP 的 Apache,它本质上是启动和运行动态网页的最简单方法,这也是我在余下的职业生涯中一直追求的目标之一。
It was so easy to make things for the internet in the mid to late ’90s.
在 90 年代中后期,为互联网制作东西非常容易。
17:26 How did we lose the sensibilities that allowed us to not just work this way but get new people into the industry to give them those success experiences that I had adding a freaking blink tag to an HTML page, FTPing a PHP page to an Apache web server without knowing really anything about anything?
我们是如何失去情感的,这种情感不仅让我们能够以这种方式工作,而且让新人进入这个行业,为他们提供那些成功的经验,就像我在 HTML 页面中添加一个奇怪的眨眼标签,在对任何事情一无所知的情况下将 PHP 页面通过 FTP 传输到 Apache Web 服务器一样?
Without knowing anything about frameworks, without knowing anything about setup.
对框架一无所知,对设置一无所知。
All of that stuff have really taken us to a place where it sometimes feels like we’re barely better off.
所有这些东西确实把我们带到了一个有时感觉我们的境况好不到哪里去的地方。
Web pages aren’t that different from what they were in the late ’90s, early 2000s.
网页与 90 年代末 2000 年代初并没有太大不同。
They’re still just forms.
它们仍然只是形式。
They still just write to databases.
他们仍然只是写入数据库。
18:06 A lot of people, I think are very uncomfortable with the fact that they are essentially crud monkeys.
我认为很多人对自己本质上是粗鲁的猴子这一事实感到非常不舒服。
They just make systems that create, read, update or delete rows in a database, and they have to compensate for that existential dread by over-complicating things.
他们只是制造在数据库中创建、读取、更新或删除行的系统,并且他们必须通过过度复杂化的事情来弥补这种存在的恐惧。
Now, that’s a bit of a character.
现在,这有点像一个角色。
There’s more to it and there’s things you can learn for more sophisticated ways of thinking about this, but there’s still an ideal here, which is why I was so happy you had Pieter Levels on because he still basically works like this.
还有更多内容,你可以学习一些东西来以更复杂的方式思考这个问题,但这里仍然有一个理想,这就是为什么我很高兴你有 Pieter Levels,因为他基本上仍然是这样工作的。
And I look at that and go, man, that’s amazing.
我看着它就走了,伙计,这太棒了。
Yeah, you’re chasing that high.
是的,你追求那么高。
18:39 He’s been high all along.
他一直都很高。
Yes.
是的。
Using PHP, jQuery and SQLite.
使用 PHP、jQuery 和 SQLite。
I think it’s amazing because he’s proving that this isn’t just a nostalgic dream.
我认为这很神奇,因为他证明这不仅仅是一个怀旧的梦想。
18:47 He’s actually doing it.
他实际上正在这样做。
He’s running all these businesses.
他经营着所有这些业务。
Now, some of that is, as he would admit up first upfront, is that he’s just one guy.
现在,正如他首先承认的那样,其中一些是他只是一个人。
And you could do different things when you’re just one guy.
当你只是一个人时,你可以做不同的事情。
When you’re working in a team, when I started working on a team, when I started working with Jason Fried on Basecamp, we at first didn’t use version control together.
当你在团队中工作时,当我开始在团队中工作时,当我开始与 Jason Fried 在 Basecamp 上工作时,我们首先并没有一起使用版本控制。
19:16 I used version control for myself, and then I thought, do you know what?
我自己使用版本控制,然后我想,你知道吗?
Designers, they’re probably not smart enough to figure out CBS and therefore I was just like, no, no, no, you just FTP it up.
设计师们,他们可能不够聪明,无法弄清楚 CBS,因此我就说,不,不,不,你只需 FTP 即可。
You just FTP it.
你只需通过 FTP 传输即可。
They knew how to do FTP.
他们知道如何进行 FTP。
And then after the third time I had overwritten their changes I was like, goddamn it, I guess I’ve got to teach Jason CBS to not do that again.
然后,在我第三次覆盖他们的更改后,我想,该死的,我想我必须教杰森·哥伦比亚广播公司不要再这样做了。
But I think there’s still way more truth to the fact that we can work the way we did in the ’90s, work the way Pieter works today even in the team context, and that we’ve been far too willing to hand over far too much of our developer ergonomics to the merchants of complexity.
但我认为更真实的事实是,我们可以像 90 年代那样工作,甚至在团队环境中也可以像 Pieter 今天的工作方式一样工作,而且我们非常愿意将太多的开发人员人体工程学交给复杂性商人。
And you’ve been chasing that with Rails 8.
您一直在通过 Rails 8 来实现这一目标。
19:57 So how do you bring all the cool features of a modern framework and make it no build, make it as easy to create something and to ship it as it was in the ’90s with just PHP?
那么,如何将现代框架的所有炫酷功能融入其中,并且无需构建,使其像 90 年代仅使用 PHP 一样轻松创建和发布?
It’s very difficult for me to beat the Pieter Levels approach of just…
对我来说,要击败 Pieter Levels 的方法非常困难……
It’s so easy to just ship some PHP.
只需发送一些 PHP 就非常容易了。
And it should be.
应该如此。
20:21 Why should it be harder than that?
为什么比这更难呢?
Our computers today are almost infinitely faster than what they were in the ’90s.
今天我们的计算机比 90 年代的计算机几乎无限快。
So shouldn’t we be able to work in even easier ways?
那么我们难道不应该能够以更简单的方式工作吗?
We should be looking back on the ’90s and go, oh, that was way too complicated.
我们应该回顾 90 年代,然后说,哦,那太复杂了。
Now we have more sophisticated technology that’s way faster and it allows us to work in these easier to use ways.
现在我们拥有更先进的技术,速度更快,它使我们能够以更易于使用的方式工作。
But that’s not true.
但事实并非如此。
But now you can see the line I draw in my work with Ruby on Rails, and especially with Rails 8.
但现在您可以看到我在 Ruby on Rails(尤其是 Rails 8)工作中所划定的界线。
No build to me is reaching back to that ’90s feeling and going, now we can do some of those things without giving up on all the progress.
对我来说,没有什么可以回到 90 年代的感觉和继续,现在我们可以在不放弃所有进展的情况下做一些事情。
Because I do think you can get too nostalgic.
因为我确实认为你会变得太怀旧。
I do think you can start just fantasizing that everything was better in the ’90s.
我确实认为你可以开始幻想 90 年代一切都更好。
I wasn’t.
我不是。
21:10 I mean, I was there, there was a lot of things that sucked.
我的意思是,我在那里,有很多事情很糟糕。
And if we can somehow find a way to combine the advantages and advances we’ve had over the past 20 years with that ease of developer ergonomics, we can win.
如果我们能以某种方式找到一种方法,将过去 20 年的优势和进步与开发人员人体工程学的便利性结合起来,我们就能获胜。
No build is a rejection of the part of web development I’ve hated the most in the past 10, 15 years, which is the JavaScript scene.
没有构建是对过去 10、15 年中我最讨厌的 Web 开发部分的拒绝,即 JavaScript 场景。
And I don’t say that as someone who hates JavaScript.
我并不是作为一个讨厌 JavaScript 的人这么说的。
I mean, I often joke that JavaScript is my second favorite program language.
我的意思是,我经常开玩笑说 JavaScript 是我第二喜欢的程序语言。
It’s a very distant second.
这是非常遥远的第二件事。
Ruby is by far and away number one, but I actually like JavaScript.
Ruby 遥遥领先,但我实际上更喜欢 JavaScript。
I don’t think it’s a bad language.
我不认为这是一种糟糕的语言。
It gets a lot of flak.
它受到了很多批评。
People add a string of two plus a one and it gives something nonsense, and I just go, yeah, but why would you do that?
人们添加一串二加一的字符串,这会带来一些废话,我只是说,是的,但你为什么要这样做呢?
Just don’t do that.
只是不要那样做。
The language is actually quite lovely, especially the modern version.
语言其实很可爱,尤其是现代版本。
22:02 ES6, that really introduced a proper class syntax to it, so I could work with JavaScript in many of the same ways that I love working with Ruby.
ES6 确实引入了正确的类语法,因此我可以用许多与我喜欢使用 Ruby 相同的方式来使用 JavaScript。
It made things so much better.
它让事情变得好多了。
But in the early 2010s until quite recently, all of that advancement happened in pre-processing, happened in build pipelines.
但从 2010 年代初直到最近,所有这些进步都发生在预处理和构建管道中。
The browsers couldn’t speak a dialect of JavaScript that was pleasant to work with so everyone started pre-compiling their JavaScript to be able to use more modern ways of programming with a browser that was seen as stuck with an ancient version of JavaScript that no one actually wanted to work with.
浏览器无法使用令人愉快的 JavaScript 方言,因此每个人都开始预编译他们的 JavaScript,以便能够在浏览器中使用更现代的编程方式,而浏览器被视为受制于没有人真正愿意使用的古老版本的 JavaScript。
And that made sense to me, but it was also deeply unpleasant.
这对我来说是有道理的,但也非常不愉快。
And I remember thinking during that time, the dark ages as I refer to them with JavaScript, that this cannot be the final destination.
我记得当时我在想,这不可能是最终的目的地,我用 JavaScript 来称呼它们的黑暗时代。
There’s no way that we have managed to turn the internet into such an unpleasant place to work where I would start working on a project in JavaScript using Webpack and all of these dependencies, and I would put it down for literally five minutes and the thing wouldn’t compile anymore.
我们不可能成功地将互联网变成一个如此令人不快的工作场所,让我开始使用 Webpack 和所有这些依赖项在 JavaScript 中开发一个项目,我会放下它五分钟,然后它就无法再编译了。
23:14 The amount of churn that the JavaScript community, especially with its frameworks and its tooling, went through in the decade from 2010 to 2020 was absurd.
从 2010 年到 2020 年的十年间,JavaScript 社区(尤其是其框架和工具)经历的流失量是荒谬的。
And you had to be trapped inside of that asylum to not realize what an utterly perverse situation we had landed ourselves in.
你必须被困在那个疯人院里,才能意识到我们已经陷入了多么反常的境地。
Why does everything break all the time?
为什么一切总是坏掉?
I mean, the joke wouldn’t be just that the software would break, that would annoy me personally.
我的意思是,这个笑话不仅仅是软件会崩溃,这会让我个人感到恼火。
But then I’d go on Hacker News and I’d see some thread on the latest JavaScript release of some framework, and the thread would be like, someone would ask, well, aren’t we using the thing we just used three months ago?
但随后我会在 Hacker News 上看到一些关于某些框架的最新 JavaScript 版本的帖子,而这些帖子会是这样的,有人会问,好吧,我们不是在使用三个月前刚刚使用的东西吗?
And people would be like, that thing is so outdated.
人们会说,那东西太过时了。
That’s so three months ago.
三个月前就是这样。
You’ve got to get with the new program, we’re completely rewriting everything for the [inaudible 00:24:07] time and anything you’ve learned in the framework you’ve been spending the last amount of time on, it’s all useless.
你必须使用新程序,我们正在完全重写 [听不清 00:24:07] 时间的所有内容,以及你在框架中学到的任何东西,你花了最后的时间,它们都是无用的。
You’ve got to throw everything out and you’ve got to start over.
你必须扔掉一切,必须重新开始。
Why aren’t you doing it stupid idiot?
你为什么不这样做呢?
Is that a kind of mass hysteria that took over the developer community you think?
您认为这是一种席卷开发者社区的集体歇斯底里吗?
24:18 Like where you have to keep creating new frameworks and new frameworks and are we past that dark age?
就像你必须不断创建新的框架和新的框架一样,我们是否已经度过了那个黑暗时代?
I think we’re getting out of it and we’re getting out of it because browsers have gotten so much better.
我认为我们正在摆脱它,我们正在摆脱它,因为浏览器已经变得更好了。
24:29 There was a stagnation in browser technology.
浏览器技术停滞不前。
Some of it was an overhang all the way back from IE5.
其中一些是从 IE5 以来一直存在的突出部分。
So IE5 essentially put the whole internet development experience into a deep freeze because Microsoft won the browser wars in the mid-2000s, and then they basically disbanded their browser development team because they’re like all right, job done, we don’t need any more innovation on the internet.
因此,IE5 本质上使整个互联网开发体验陷入了深度冻结,因为微软在 2000 年代中期赢得了浏览器战争,然后他们基本上解散了浏览器开发团队,因为他们就像好吧,工作完成了,我们不需要在互联网上进行任何更多创新。
Can we just go back to writing Windows forms or something now that we control everything?
现在我们可以控制一切了,我们可以回去编写 Windows 表单或其他东西吗?
And it really wasn’t until obviously Firefox kind of kindled a little bit of something.
直到 Firefox 显然点燃了一些东西之后,这才真正发生了。
Then Chrome got into the scene and Google got serious about moving to web forward, that you had a kindling of maybe the browser could be better.
然后 Chrome 进入了场景,谷歌开始认真地转向网络,你可能会觉得浏览器可能会更好。
Maybe the browser wasn’t frozen in time in 2005.
也许浏览器没有及时冻结在 2005 年。
Maybe the browser could actually evolve like the development platform that it is.
也许浏览器实际上可以像它本身的开发平台一样发展。
But then what happened was you had a lot of smart people who poured in to the web because the web turned out to be the greatest application development platform of all time.
但后来发生的事情是,有很多聪明的人涌入网络,因为网络被证明是有史以来最伟大的应用程序开发平台。
This was where all the money was being made.
这就是所有钱的来源。
This was where all the billionaires were being minted.
这是所有亿万富翁的诞生地。
This was where the Facebook’s and whatever of the world came to be.
这就是 Facebook 和世界上其他任何东西的诞生地。
So you had all of this brain power applied to the problem of how to work with the web, and there were some very smart people with some I’m sure very good ideas who did not have programmer happiness as their motivation number one.
因此,您将所有这些脑力都应用于如何使用网络的问题,并且有一些非常聪明的人,他们有一些我确信非常好的想法,但他们并没有将程序员的快乐作为他们的第一动机。
They had other priorities and those priorities allowed them to discount and even rationalize the complexity they were injecting everywhere.
他们还有其他优先事项,这些优先事项使他们能够降低甚至合理化他们在各处注入的复杂性。
Some of that complexity came from organizational structure.
其中一些复杂性来自组织结构。
When you have a company like Facebook for example that does depend on the web and want to push it forward, but have sliced the development role job into these tiny little niches…
例如,当你拥有像 Facebook 这样的公司,它确实依赖于网络并希望推动它向前发展,但将开发角色的工作分割成这些微小的利基市场时......
I’m a front-end glob pipeline configurator.
我是前端全局管道配置器。
26:41 Oh yeah, well, I’m a front-end whatever engineer.
哦,是的,好吧,我是一名前端工程师。
And suddenly the web developer was no longer one person.
突然间,Web 开发人员不再是一个人了。
It was 15 different roles.
有 15 个不同的角色。
That in itself injected a ton of complexity.
这本身就增加了大量的复杂性。
But I also want to give it the bold case here, which was that some of that complexity was necessary to get to where we are today, that the complexity was a bridge.
但我也想在这里给出一个大胆的例子,那就是,为了达到我们今天的水平,一些复杂性是必要的,复杂性是一座桥梁。
It wasn’t the destination, but we had to cross that bridge to get to where we are today where browsers are frankly incredible.
这不是目的地,但我们必须跨过那座桥才能到达今天的位置,坦率地说,浏览器令人难以置信。
The JavaScript you can write in a text file and then serve on a web server for a browser to ingest is amazing.
您可以在文本文件中编写 JavaScript,然后在 Web 服务器上提供服务以供浏览器摄取,这真是太神奇了。
It’s actually a really good experience.
这实际上是一次非常好的体验。
You don’t need any pre-processing.
您不需要任何预处理。
You could just write text files, send them to a browser, and you have an incredible development-
你只需编写文本文件,将它们发送到浏览器,你就会得到令人难以置信的发展 -
And we should also say that it can kind of be broken, at least the HTML, but even the JavaScript could be a little bit broken and it kind of still works.
我们还应该说,它可能会被破坏,至少是 HTML,但即使是 JavaScript 也可能会被破坏,但它仍然可以工作。
27:25 Like maybe it half-ass works, but just the amount of mess of smelly code that a browser has to deal with is insane.
也许它是半途而废的,但浏览器必须处理的大量混乱的臭代码是疯狂的。
This is one of the hardest problems in computing today is to parse the entire internet.
当今计算中最困难的问题之一是解析整个互联网。
27:44 Because thankfully for us as web developers, but perhaps not so much for the browser developers, every webpage that has ever been created minus the brief period with Flash still runs today.
因为对于我们作为 Web 开发人员来说值得庆幸的是,但对于浏览器开发人员来说也许就不那么幸运了,每一个曾经创建的网页在减去 Flash 的短暂时期后仍然可以运行。
The webpage I did in ninth grade would render on a modern browser today, 30 years later.
我九年级时制作的网页将在 30 年后的今天在现代浏览器上呈现。
That’s crazy.
这太疯狂了。
That is completely crazy when you think about the amount of evolution we’ve had with the web, how much better we’ve made it, how many more standards browsers have adopted.
当你想到我们的网络已经经历了多么大的发展,我们已经把它做得更好了,浏览器已经采用了多少标准时,这真是太疯狂了。
28:11 It’s essentially an Apollo project today to create a new browser, which is why it doesn’t happen very often, which is why even companies like Microsoft had to throw in the towel and say, we can’t do it.
今天,这本质上是一个创建新浏览器的阿波罗项目,这就是为什么它不会经常发生,这就是为什么即使像微软这样的公司也不得不认输并说,我们做不到。
Now, I actually don’t think that’s good for the web.
现在,我实际上并不认为这对网络有好处。
There is the danger of the monoculture if we just get a single browser engine that runs everything, and we are in danger of that.
如果我们只使用一个浏览器引擎来运行所有内容,那么就会存在单一文化的危险,我们就面临着这种危险。
I love the fact that the Ladybird project, for example, is trying to make a new browser engine from scratch.
例如,我喜欢瓢虫项目,它试图从头开始制作一个新的浏览器引擎。
I’ve supported that project.
我支持那个项目。
I would encourage people to look into that.
我会鼓励人们对此进行调查。
It’s really a wonderful thing.
这真是一件美妙的事情。
It’s staffed by a bunch of people who worked on other browser projects in the past.
它的员工是一群过去参与过其他浏览器项目的人。
Truly independent web browser.
真正独立的网络浏览器。
We really need that.
我们真的需要那个。
28:59 But I can hold that thought in my head at the same time I hold the thought in my head that Google Chrome was pivotal to the web surviving as the premier web development platform.
但我可以在脑海中牢记这个想法,同时我也可以认为 Google Chrome 对于网络作为首要 Web 开发平台的生存至关重要。
If it had not been for Google and their entire business depending on a thriving open web, Apple, Microsoft I think would’ve been just as fine to see the web go away to disappear into being something that’s just served native mobile applications and native desktop applications that they could completely control.
如果不是谷歌和他们的整个业务依赖于蓬勃发展的开放网络、苹果、微软,我认为看到网络消失并消失成只为他们可以完全控制的本机移动应用程序和本机桌面应用程序服务的东西也一样好。
So I have all sorts of problems with Google, but it’s not Chrome.
所以我在使用 Google 时遇到了各种各样的问题,但它不是 Chrome。
Chrome is a complete gift to web developers everywhere, to the web as a development platform, and they deserve an enormous amount of credit I think for that.
Chrome 对于世界各地的网络开发者来说是一份完整的礼物,对于网络作为一个开发平台来说,我认为他们应该为此获得巨大的荣誉。
Even if it’s entangled with their business model and half of Chrome is code that spies on you or informs targeted ads and a bunch of things I’m not a big fan of, I can divorce that from the fact that we need champions in the corner of the web who have trillions of dollars of market cap value riding on the open web.
即使它与他们的商业模式纠缠在一起,而且 Chrome 的一半是监视你或通知有针对性的广告以及一堆我不喜欢的东西的代码,我可以将其与我们需要网络角落的冠军这一事实分开,他们在开放网络上拥有数万亿美元的市值。
We’re going to take tangents upon a tangent upon a tangent.
我们将在切线上取切线。
30:16 So let’s go to Chrome.
那么让我们转到 Chrome 吧。
I think Chrome positive impact on humanity is immeasurable for reasons that you just described.
我认为 Chrome 对人类的积极影响是不可估量的,原因正如您刚才所描述的。
On the technology front, the features that present the competition they created, it’s spurred on this wonderful flourishing of web technologies.
在技术方面,他们创造的竞争特征,刺激了网络技术的蓬勃发展。
But anyway, I have to ask you about the recent stuff with the DOJ trying to split up Chrome and Google.
但无论如何,我必须问你最近美国司法部试图拆分 Chrome 和 Google 的事情。
Do you think this is a good idea?
你认为这是个好主意吗?
Do you think this does harm?
你认为这有坏处吗?
It’s a disaster.
这是一场灾难。
30:47 And I say that as someone who’s been very sympathetic to the antitrust fight, because I do think we have antitrust problems in technology, but the one place where we don’t have them by and large is with browsers, is with the tools we use to access the open web.
作为一个非常同情反垄断斗争的人,我这么说是因为我确实认为我们在技术方面存在反垄断问题,但总的来说,我们没有这些问题的地方是浏览器,是我们用来访问开放网络的工具。
First of all, we have Firefox.
首先,我们有火狐浏览器。
Now, Firefox is not doing all that great, and Firefox has been propped up by Google for many years to deter from exactly what’s going on with the DOJ that they were the only game in town.
现在,Firefox 的表现并不那么出色,而且 Firefox 多年来一直受到 Google 的支持,以阻止 DOJ 的行为,因为它们是镇上唯一的游戏。
Apple has Safari.
苹果有 Safari。
I have a bunch of problems with Apple too, but I love Safari.
我在使用 Apple 时也遇到了很多问题,但我喜欢 Safari。
I love the fact that we have a premier browser running on a premier operating system that people can’t turn the web into just a Chrome experience.
我喜欢这样一个事实:我们拥有在一流操作系统上运行的一流浏览器,人们无法将网络变成只是 Chrome 体验。
But I also think that the open web needs this trillion dollar champion, or at least benefits from it.
但我也认为开放网络需要这个万亿美元的冠军,或者至少从中受益。
31:44 Maybe it doesn’t need it, but it certainly benefits from it.
也许它不需要它,但它肯定会从中受益。
And of all the things that are wrong with monopoly formation in technology, Chrome is the last thing, and this is why I get so frustrated sometimes about the monopoly fight, that there are real problems and we should be focusing on the premier problems first like the toll booths on our mobile phones.
在技术垄断形成的所有问题中,Chrome 是最后一件事,这就是为什么我有时对垄断之争感到如此沮丧,因为存在真正的问题,我们应该首先关注首要问题,比如我们手机上的收费站。
There are far bigger problems.
还有更大的问题。
It’s not the open web, it’s not the tools that we use to access the open web.
它不是开放网络,也不是我们用来访问开放网络的工具。
If I don’t want to use Chrome, if my customers of my businesses that run on the internet don’t want to use Chrome, they don’t have to.
如果我不想使用 Chrome,如果我在互联网上运营的企业的客户不想使用 Chrome,他们就不必使用。
We’re never forced to go through it.
我们从来没有被迫经历它。
The open internet is still open.
开放的互联网仍然开放。
So I think it’s a real shame that the DOJ has chosen to pursue Google in this way.
所以我认为司法部选择以这种方式追查谷歌真是一种耻辱。
I do think there are other things you can nail Google for, their ad monopoly maybe, or the shenanigans they’ve done in controlling both sides of the ad ledger, that they both control the supply and the demand.
我确实认为还有其他事情可以指责谷歌,也许是他们的广告垄断,或者是他们在控制广告账本两侧所做的恶作剧,即他们既控制了供给又控制了需求。
32:45 There are problems.
有问题。
Chrome, isn’t it.
铬,不是吗。
And you end up making the web much worse.
最终你会让网络变得更糟。
And this is the thing we’ve always got to remember when we think about legislation, when we think about monopoly fights is you may not like how things look today and you may want to do something about it, but you may also make it worse.
当我们考虑立法时,当我们考虑垄断斗争时,这是我们始终要记住的事情,你可能不喜欢今天的情况,你可能想对此做点什么,但你也可能会让事情变得更糟。
The good intentions behind the GDPR in Europe currently has amounted to what?
目前欧洲GDPR背后的良好意愿体现在哪些方面?
Cookie banners that everyone on the internet hates, that helps no one do anything better, anything more efficient, that saves no privacy in any way, shape or form, has been a complete boondoggle that has only enriched lawyers and accountants and bureaucrats.
互联网上的每个人都讨厌 Cookie 横幅,它帮助没有人做得更好、更高效,以任何方式、形式或形式都无法保护隐私,这完全是一种浪费,只会让律师、会计师和官僚发财。
Yeah, you said that the cookie banner is a monument for why Europe is losing, is doing the worst of all the regions in tech.
是的,你说过饼干横幅是一座纪念碑,说明欧洲为何正在失败,在科技领域的所有地区中表现最差。
It’s a monument to good intentions leading straight to hell, and Europe is actually world-class in good intentions leading straight to hell.
这是一座善意通向地狱的纪念碑,而欧洲在善意通向地狱方面实际上是世界一流的。
So hell is the cookie accept button, that you have to accept all cookies.
cookie 接受按钮就是地狱,你必须接受所有 cookie。
33:53 That’s what hell looks like.
这就是地狱的样子。
Over and over, you don’t actually ever get to the web page-
一遍又一遍,您实际上从未访问过该网页 -
Just on a…
就在一个…
…
……
34:00 over.
结束了。
You don’t actually ever get to the web page.
您实际上从未访问过该网页。
Just on a human scale, try to imagine how many hours every day are wasted clicking that away and how much harm we’ve done to the web as a platform that people enjoy because of them.
就人类而言,试着想象一下每天有多少时间浪费在点击这些内容上,以及我们对网络这个人们享受的平台造成了多大的伤害。
34:03 The internet is ugly in part because of cookie banners.
互联网之所以丑陋,部分原因在于 cookie 横幅。
Cookie banners were supposed to save us from advertisement, and advertisement can make the web ugly.
Cookie 横幅本应使我们免受广告的侵害,但广告却会使网络变得丑陋。
There’s plenty of examples of that, but cookie banners made the entire internet ugly in one fell swoop, and that’s a complete tragedy.
这样的例子有很多,但 cookie 横幅一下子让整个互联网变得丑陋,这完全是一场悲剧。
But what’s even worse, and this is why I call it out as a monument to everything the EU gets wrong, is that we have known this for a decade.
但更糟糕的是,这就是为什么我称其为欧盟所犯下的一切错误的纪念碑,我们十年来就知道这一点。
No one anywhere who’s serious believes that cookie banners does anything good for anyone, yet we’ve been unable to get rid of it.
任何认真的人都不会相信 cookie 横幅对任何人都有好处,但我们一直无法摆脱它。
34:50 There’s this one piece of legislation that’s now I think 10 or 12 years old.
我认为这项立法已有 10 或 12 年的历史了。
It’s complete failure on every conceivable metric.
从每一个可以想象的指标来看,它都是完全失败的。
Everyone hates it universally, yet we can’t seem to do anything about it.
每个人都普遍讨厌它,但我们似乎对此无能为力。
That’s a bankruptcy declaration for any body of bureaucrats who pretend or portend to make things better for not just citizens but people around the world.
对于那些假装或预示着不仅要为公民而且要为世界各地的人们改善生活的官僚机构来说,这就是破产声明。
This is the thing that really gets me about cookie banners, too.
这也是 cookie 横幅真正让我着迷的地方。
It’s not just the EU, it’s the entire world.
不仅仅是欧盟,而是整个世界。
You can’t hide from cookie banners anywhere on this planet.
在这个星球上的任何地方,你都无法躲避饼干横幅。
If you go to goddamn Mars on one of Elon’s rockets and you try to access a webpage, you’ll still see a cookie banner.
如果你乘坐埃隆的火箭前往该死的火星并尝试访问网页,你仍然会看到一个 cookie 横幅。
No one in the universe is safe from this nonsense.
宇宙中没有人能免受这种废话的影响。
Probably the interface on the rocket.
可能是火箭上的接口。
It’d be slower.
会慢一些。
35:36 You have basically 150 second ping time, so it’ll take you 45 seconds just to get through the cookie banners from Mars.
你基本上有 150 秒的 ping 时间,所以你需要 45 秒才能浏览来自火星的 cookie 横幅。
All right, let’s walk back up the stack of this recursive tangents we’ve been taking.
好吧,让我们回到我们一直在采用的递归切线堆栈。
35:46 So Chrome, we should say, at least in my opinion, is not winning unfairly.
因此,我们应该说,至少在我看来,Chrome 的获胜并不公平。
It’s winning in the fair way by just being better.
只要做得更好,就能以公平的方式获胜。
It is.
这是。
36:03 If I was going to Steelman the other side just for a half second, people would say, well, maybe yes, most people do sort of begrudgingly agree that Chrome is a pretty good browser.
如果我去 Steelman 的另一边半秒钟,人们会说,好吧,也许是的,大多数人确实有点不情愿地同意 Chrome 是一个非常好的浏览器。
But then they’ll say the reason it got dominance was distribution, and the reason it got distribution was because Google also controls Android and therefore can make Chrome the default browser on all these phones.
但他们会说它获得主导地位的原因是分发,而它获得分发的原因是因为谷歌也控制着Android,因此可以让Chrome成为所有这些手机上的默认浏览器。
36:27 Now, I don’t buy that, and the reason I don’t buy that is because on Android, you are actually allowed to ship a different browser that has a browser engine that’s not the same as Chrome.
现在,我不买这个,我不买这个的原因是因为在 Android 上,你实际上可以发布一个不同的浏览器,它的浏览器引擎与 Chrome 不同。
Unlike an iOS where if you want to ship a browser, Chrome, for example, ships for iOS, but it’s not Chrome, it’s Safari wrapped in a dress, and every single alternative browser on iOS have to use the Safari web engine.
与 iOS 不同,如果你想发布浏览器,Chrome 是针对 iOS 发布的,但它不是 Chrome,而是裹在裙子里的 Safari,而且 iOS 上的每一个替代浏览器都必须使用 Safari Web 引擎。
That’s not competition.
这不是竞争。
That’s not what happened on Android.
Android 上却没有发生这种情况。
36:57 Again, I think there are some nuances to it, but if you zoom out and you look at all the problems we have with Big Tech, Chrome is not it.
再说一次,我认为它有一些细微差别,但如果你缩小范围,看看我们与大型科技公司遇到的所有问题,Chrome 就不是它。
Chrome One unmerits.
Chrome One 没有优点。
I begrudgingly have switched to Chrome on that realization alone.
仅仅因为这一点,我就很不情愿地转向了 Chrome。
As a web developer, I just prefer it.
作为一名网络开发人员,我只是更喜欢它。
I like Firefox in many ways.
我在很多方面都喜欢 Firefox。
I like the ethos of it, but Chrome is a better browser than Firefox, full stop.
我喜欢它的精神,但 Chrome 是比 Firefox 更好的浏览器,句号。
And by the way, we’ve never mentioned Edge.
顺便说一句,我们从未提到过 Edge。
37:21 Edge is also a good browser.
Edge 也是一个不错的浏览器。
Because it’s also Chrome in a dress.
因为它也是裙子里的铬。
But it never gets the love.
但它永远得不到爱。
37:27 I don’t think I’ve ever used Bing, and I’m sure Bing is really nice.
我想我从来没有使用过 Bing,但我确信 Bing 确实很棒。
Maybe you have, because you know what is Bing in a dress?
也许你有,因为你知道穿裙子的 Bing 是什么?
What?
什么?
DuckDuckGo.
鸭鸭走。
What?
什么?
Which is actually the search engine that I use.
这实际上是我使用的搜索引擎。
37:38 DuckDuckGo gets its search results from Bing, or at least it used to.
DuckDuckGo 从 Bing 获取搜索结果,或者至少以前是这样。
If they changed that, that would be news to me.
如果他们改变了这一点,那对我来说就是新闻。
Well, maybe everything is just a wrap or a dress.
好吧,也许一切都只是一件围巾或一条裙子。
37:47 Everything is wearing a dress underneath.
一切都穿着裙子。
There’s some other turtles-
还有一些其他的乌龟——
There’s some of that.
有一些这样的。
The turtles, the dress is all the way down.
海龟们,裙子已经全部垂下来了。
37:56 Okay, what were we talking about?
好吧,我们在说什么?
They got there from JavaScript and from you learning how to program.
他们通过 JavaScript 和你学习如何编程实现了这一目标。
So eventually the big success stories when you built a bunch of stuff with PHP and you were like actually chipping things.
所以最终当你用 PHP 构建了一堆东西并且你就像真的在切东西时,取得了巨大的成功。
Yes.
是的。
And that’s when the Ruby story came.
这就是 Ruby 的故事来了。
38:15 So your big love affair with programming began there.
所以你对编程的热爱就从这里开始了。
So can you take me there?
那么你能带我去那里吗?
What is Ruby?
什么是红宝石?
Tell the story of Ruby.
讲讲鲁比的故事。
Explain Ruby to me.
向我解释一下Ruby。
PHP was what converted me from just being able to fondle HTML and turn out some web pages to actually being able to produce web applications myself.
PHP 使我从只能玩弄 HTML 并生成一些网页,转变为真正能够自己生成 Web 应用程序。
38:28 So I owe a tremendous gratitude to PHP in that regard.
因此,在这方面我非常感谢 PHP。
But I never thought of PHP as a calling.
但我从来没有把 PHP 当作一种使命。
I’m a professional programmer who writes PHP.
我是一名编写 PHP 的专业程序员。
That’s who I am, and that’s what I do.
这就是我,这就是我所做的。
I thought of PHP as a tool I needed to smack the computer with until it produced web applications I wanted.
我认为 PHP 是一种我需要用来攻击计算机的工具,直到它生成我想要的 Web 应用程序。
It was very much a means to an end.
这在很大程度上是达到目的的一种手段。
I didn’t fall in love with PHP.
我并没有爱上 PHP。
I’m very grateful that it taught me the basics of programming, and I’m very grateful that it set the bar for the economics.
我非常感谢它教会了我编程的基础知识,也非常感谢它为经济学设定了标准。
But it really wasn’t until Ruby that I started thinking of myself as a programmer.
但直到使用 Ruby,我才真正开始将自己视为一名程序员。
The way that came about was that the first time I ever got hired as a professional programmer to write code was actually by Jason Fried, my business partner still.
结果是,我第一次被聘为专业程序员来编写代码实际上是由杰森·弗里德(Jason Fried)聘用的,他仍然是我的商业伙伴。
39:31 All the way back in 2001, I had been working on these gaming websites in PHP for essentially 18 months at that point.
早在 2001 年,我就已经用 PHP 开发这些游戏网站了 18 个月。
No one had been paying me to do code in that regard, and I connect with Jason Fried over an email sent from Copenhagen, Denmark to Chicago, Illinois to a person who didn’t know who I was.
没有人付钱让我在这方面编写代码,我通过一封从丹麦哥本哈根发送到伊利诺伊州芝加哥的电子邮件与 Jason Fried 取得了联系,而这个人并不知道我是谁。
I was just offering solicited advice.
我只是提供征求建议。
Jason had asked a question on the internet, and I had sent him the answer and he was asking me PHP, and I’d sent him the answer to that question and we started talking and then we started working, which by the way is a miracle of what the internet can allow.
Jason 在互联网上问了一个问题,我把答案发给了他,他问我 PHP,我把这个问题的答案发给了他,我们开始交谈,然后我们开始工作,顺便说一句,这是互联网所能允许的一个奇迹。
How can a kid in Copenhagen who’s never met this guy in Chicago connect just over email and start working together?
一个从未见过芝加哥人的哥本哈根孩子如何通过电子邮件联系并开始合作?
By the way, we’re still working together now 24 years later.
顺便说一句,24 年后我们仍然在一起工作。
That’s incredible.
那真是难以置信。
But we started working together and we started working together on some client projects.
但我们开始合作,并开始在一些客户项目上合作。
40:25 Jason would do the design, 37signals would do the design.
Jason 负责设计,37signals 负责设计。
I would bring the programming PHP.
我会带PHP编程。
And after we work on I think two or three client projects together in PHP, we kept hitting the same problem that whenever you work with a client, you start that project off an email, “Oh, yeah, let’s work together.
在我们用 PHP 一起完成两到三个客户项目之后,我们不断遇到同样的问题,每当你与客户合作时,你都会通过电子邮件开始该项目,“哦,是的,让我们一起工作。
Here’s what we’re building.” And you start trading more and more emails and before a few weeks have passed, you got to add someone to the project.
这就是我们正在构建的。”你开始交易越来越多的电子邮件,几周后,你必须将某人添加到该项目中。
They don’t have the emails, they don’t have the context.
他们没有电子邮件,也没有上下文。
You send them, “Where’s the latest file?” “Oh, I’ve uploaded it on the FTP.
您向他们发送“最新文件在哪里?” “哦,我已经上传到FTP上了。
It’s like final, final V06 2.0.” Right?
这就像最终的 V06 2.0。”正确的?
That’s the one to get.
这就是要得到的。
It’s just a mess, a beautiful mess in some ways.
这只是一团乱,从某些方面来说是一团美丽的乱。
It’s a mess that still runs the vast majority of projects to this day.
直到今天,绝大多数项目仍然处于混乱状态。
Email is the lowest common denominator.
电子邮件是最低公分母。
That’s wonderful.
太棒了。
41:13 But we had dropped the ball a couple of times in serious ways with customers and we thought we can do better.
但我们曾多次在与客户的严肃相处中犯了错误,我们认为我们可以做得更好。
We know how to make web applications.
我们知道如何制作网络应用程序。
Can’t we just make a system that’s better than email for managing projects?
难道我们不能创建一个比电子邮件更好的系统来管理项目吗?
It can’t be that hard.
这不可能那么难。
We’ve been doing blogs, we’ve been doing to-do lists.
我们一直在写博客,我们一直在写待办事项列表。
Let’s put some of these things together and just make a system where everything that anyone involved in the project needs is on one page.
让我们将其中一些东西放在一起,创建一个系统,其中参与项目的任何人所需的所有内容都在一页上。
And it has to be simple enough that I’m not going to run a seminar teaching you how to use the system.
它必须足够简单,我不会举办一个研讨会来教你如何使用该系统。
I’m just going to give you the login code.
我只是给你登录代码。
You’re going to jump into it.
你会跳进去的。
So that’s Basecamp.
这就是大本营。
When we started working on Basecamp, I, for the first time in the experience I had with Jason had the freedom of technology choice.
当我们开始在 Basecamp 上工作时,在与 Jason 的合作中,我第一次拥有了技术选择的自由。
There was no client telling me, “Yeah, PHP, that sounds good.
没有客户告诉我:“是的,PHP,听起来不错。
We know PHP.
我们了解 PHP。
Can you build it in PHP?”
你能用 PHP 构建它吗?”
42:06 I had free reins.
我有自由的缰绳。
At that time I’d been reading IEEE magazine and a couple of other magazines back from the early 2000s where Dave Thomas and Martin Fowler had been writing about programming patterns and how to write better code.
当时我一直在阅读 IEEE 杂志和其他几本 2000 年代初的杂志,戴夫·托马斯 (Dave Thomas) 和马丁·福勒 (Martin Fowler) 一直在这些杂志上撰写有关编程模式以及如何编写更好代码的文章。
These two guys in particular were both using Ruby to explain their concepts because Ruby looked like pseudocode.
特别是这两个人都使用 Ruby 来解释他们的概念,因为 Ruby 看起来像伪代码。
Whether you were programming in C or Java or PHP, all three constituencies could understand Ruby because it basically just reads like English.
无论您是使用 C、Java 还是 PHP 进行编程,这三个部分都可以理解 Ruby,因为它基本上读起来就像英语。
So these guys were using Ruby to describe the concepts, and first of all, I would read these articles for just the concepts they were explaining and I’d be like, “What is this program language?” I mean, I like the concept you’re explaining, but I also want to see the programming language.
所以这些人使用 Ruby 来描述这些概念,首先,我会阅读这些文章来了解他们所解释的概念,然后我会想,“这是什么程序语言?”我的意思是,我喜欢你解释的概念,但我也想看看编程语言。
Why haven’t I heard of this?
为什么我没听说过这个?
43:02 So I started looking into Ruby and I realized at that time, Ruby might not be known by anyone, but it’s actually been around for a long time.
所以我开始研究 Ruby,当时我意识到,Ruby 可能不被任何人知道,但它实际上已经存在很长时间了。
Matz, the Japanese creator of Ruby, had started working on Ruby back in ’93 before the internet was even a thing.
Matz 是 Ruby 的日本创建者,早在 93 年互联网还没有出现之前就开始了 Ruby 的研究。
And here I am in 2003, 10 years later, picking up what seems like this hidden gem that’s just laying in obscurity and plain sight.
10 年后的 2003 年,我在这里捡起了这颗看似隐藏的宝石,但它只是埋藏在默默无闻和显而易见的地方。
But Dave Thomas and Martin Fowler, I think successfully put me and a handful of other people on the trail of a programming language that hadn’t been used much in the west, but could be.
但我认为戴夫·托马斯和马丁·福勒成功地让我和其他一些人走上了一种编程语言的道路,这种语言在西方还没有被广泛使用,但可能会被广泛使用。
So I picked up Ruby and I thought, this is very different.
所以我选择了 Ruby,我想,这是非常不同的。
First of all, where are all the semicolons?
首先,所有的分号在哪里?
I’d been programming in PHP, in ASP, I’d even done some Pascal.
我一直在用 PHP、ASP 编程,甚至还用过一些 Pascal。
I’d looked at some C.
我看过一些C。
There were semicolons everywhere.
到处都是分号。
44:05 That was the first thing that struck me is where are the damn semicolons?
让我震惊的第一件事是该死的分号在哪里?
And I started thinking, actually, why do we have semicolons in programming?
我开始思考,实际上,为什么我们在编程中使用分号?
They’re to tell the interpreter that there’s a new line of instructions, but I don’t need them as a human.
他们要告诉口译员有一条新的指令,但作为人类我不需要它们。
Oh, someone is looking out for the human here, not for the machine.
哦,有人在这里照顾人,而不是机器。
So that really got me interested.
这真的引起了我的兴趣。
And then I thought to myself, do you know what?
然后我心想,你知道吗?
I know PHP quite well.
我非常了解 PHP。
I’m not an amazing programmer.
我不是一个了不起的程序员。
I haven’t been working in programming for all that long, but maybe I can figure it out.
我从事编程工作的时间并不长,但也许我能弄清楚。
I’m going to give myself two weeks.
我打算给自己两周的时间。
I’m going to write a proof of concept where I talked to a database, I pulled some records, I format them a bit, and I display them on an HTML page.
我将编写一个概念验证,其中我与数据库进行了对话,提取了一些记录,对它们进行了一些格式化,然后将它们显示在 HTML 页面上。
Can I figure that out in a couple of weeks?
我能在几周内弄清楚吗?
It took about one weekend and I was completely mesmerized.
花了大约一个周末的时间,我完全被迷住了。
I was completely mind blown because Ruby was made for my brain like a perfect tailored glove by someone I’d never met.
我完全被震撼了,因为 Ruby 是为我的大脑打造的,就像我从未见过的人为我量身定制的完美手套一样。
How is this even possible?
这怎么可能?
We should say maybe paint the picture of the certain qualities that Ruby has, maybe even compare it to PHP.
我们应该说,也许可以描绘出 Ruby 所具有的某些品质,甚至可以将其与 PHP 进行比较。
45:14 We should also say that there’s a ridiculous thing that I’m used to that I forget about, that there’s dollar signs everywhere.
我们还应该说,有一件我已经习惯了却忘记了的可笑的事情,那就是到处都是美元符号。
Yes.
是的。
PHP.
PHP。
45:29 I mean that-
我的意思是——
Yes, there’s line noise.
是的,有线路噪音。
Line noise.
线路噪声。
That’s what I like to call it.
我喜欢这么称呼它。
Line noise.
线路噪声。
45:31 Line noise.
线路噪声。
That’s such a beautiful phrase.
这是多么美丽的一句话。
So there’s all these things that look like programs, and with Ruby, I mean there’s some similarities in Python there.
所以所有这些东西看起来都像程序,对于 Ruby,我的意思是 Python 中有一些相似之处。
It just looks kind of like natural language.
它看起来有点像自然语言。
You can read it normally,
就可以正常阅读了
Here’s a wild loop that does five iterations.
这是一个进行五次迭代的疯狂循环。
45:47 You can literally type the number five, dot, now I’m calling a method under number five.
你可以直接输入数字五,点,现在我正在调用数字五下的方法。
By the way, that’s one of the beautiful aspects of Ruby that primitives like integers are also objects and you can call five dot times start brackets.
顺便说一句,这是 Ruby 的美妙之处之一,像整数这样的基元也是对象,你可以调用五个点乘以开始括号。
Now you’re iterating over the code in that bracket five times.
现在您将迭代该括号中的代码五次。
That’s it.
就是这样。
Okay, that’s nice.
好吧,那很好。
That’s not just nice, that’s exceptional.
这不仅很好,而且非常出色。
46:16 There’s literally no other programming language that I know of that has managed to boil away the line noise that almost every other programming language would inject into a five-time iteration over a block of code to that extent.
据我所知,实际上没有其他编程语言能够成功地消除几乎所有其他编程语言都会在代码块上进行五次迭代时注入的线路噪音达到这种程度。
Wow.
哇。
46:32 That’s a really nice…
这真是一个很好的……
Well, thank you for giving that example.
嗯,谢谢你举了这个例子。
That’s a beautiful example.
这是一个很好的例子。
Wow, I don’t think I know a programming language that does that.
哇,我想我不知道有一种编程语言可以做到这一点。
That’s really nice.
那真是太好了。
Ruby’s full of that.
Ruby 充满了这样的东西。
46:41 So let me dive into a couple of examples because I really think it helps paint the picture and let me preface this by saying I actually, I like the ethos of Python.
因此,让我深入研究几个例子,因为我真的认为这有助于描绘图景,并让我在序言中说,我实际上喜欢 Python 的精神。
I think the Ruby and the Python community share a lot of similarities.
我认为 Ruby 和 Python 社区有很多相似之处。
They’re both dynamic interpreted languages.
它们都是动态解释语言。
They’re both focused on immediacy and productivity and ease of use in a bunch of ways, but then they’re also very different in many other ways.
它们在很多方面都注重即时性、生产力和易用性,但它们在许多其他方面也有很大不同。
One of the one ways they’re very different is aesthetically.
它们非常不同的一种方式是美学上的。
47:12 Python to me, I hope I don’t offend people too much.
Python对我来说,希望不要太得罪人。
I’ve said this before, it’s just it’s ugly and it’s ugly in its base because it’s full of superfluous instructions that are necessary for legacy reasons of when Guido made Python back in ’87 that are still here in 2025, and my brain can’t cope with that.
我之前说过,它只是很丑陋,而且它的基础很丑陋,因为它充满了多余的指令,这些指令是由于 Guido 在 87 年创建 Python 时的遗留原因所必需的,而这些指令到 2025 年仍然存在,而我的大脑无法处理这些指令。
Let me give you a basic example.
让我给你一个基本的例子。
When you make a class in Python, the Initializer method, the starting method is def, okay, fair enough.
当你在Python中创建一个类时,Initializer方法,起始方法是def,好吧,很公平。
That’s actually the same as Ruby.
这实际上与 Ruby 相同。
D-E-F definition of a method.
D-E-F 方法的定义。
Then it is underscore not one, underscore, two, init, underscore underscore, parentheses start, self, comma, and then the first argument.
然后是下划线不是一,下划线,二,init,下划线下划线,括号开始,自我,逗号,然后是第一个参数。
Yeah, the whole self thing.
是的,整个自我的事情。
48:03 Yeah.
是的。
I look at that and go, “I’m sorry I’m out.
我看着它,然后说道:“很抱歉我出去了。
48:06 I can’t do it.” Everything about it offends my sensibilities to the core.
我做不到。”关于它的一切都从根本上冒犯了我的情感。
Here you have the most important method that all new objects or classes have to implement, and it is one of the most aesthetically offensive ways of typing initialize that I’ve ever seen anywhere, and you guys are okay with this?
这里有所有新对象或类都必须实现的最重要的方法,这是我在任何地方见过的最美观的输入初始化方式之一,你们对此同意吗?
Hey, you’re making me…
嘿嘿,你让我……
48:29 You know where you’re talking about my marriage or something like this, and I’m not realizing I’ve been in a toxic relationship all along yet.
你知道你在哪里谈论我的婚姻或类似的事情,而我还没有意识到我一直处于有毒的关系中。
I just get used to it.
我只是习惯了。
That to me by the way, was the magic of Ruby.
顺便说一下,这对我来说就是 Ruby 的魔力。
That’s the problem.
这就是问题所在。
It opened my eyes to how beautiful programs could be.
它让我看到了程序可以有多么美丽。
48:41 I didn’t know.
我不知道。
I’d been working in ASP, I’d been working in PHP.
我一直在 ASP 工作,我一直在 PHP 工作。
I didn’t even have the concept that aesthetics, beautiful code was something we could optimize for.
我什至没有意识到美学、漂亮的代码是我们可以优化的。
That’s something we could pursue, and even more than that, that we could pursue it above other objectives.
这是我们可以追求的东西,甚至更重要的是,我们可以将其置于其他目标之上。
That Ruby is as beautiful as it is, it’s not an accident and it’s not easy.
红宝石如此美丽,这并非偶然,也并不容易。
Ruby itself is implemented in C.
Ruby 本身是用 C 实现的。
It’s very difficult to parse Ruby code because Ruby is written for humans and humans are messy creatures.
解析 Ruby 代码非常困难,因为 Ruby 是为人类编写的,而人类是混乱的生物。
They like things in just the right way.
他们喜欢以正确的方式做事。
I can’t fully explain why the underscore, underscore, init, underscore, underscore make me repulse, but it does.
我无法完全解释为什么下划线、下划线、init、下划线、下划线让我反感,但确实如此。
And when I look at the Ruby alternative, it’s really instructive.
当我看到 Ruby 的替代方案时,它确实很有启发。
So it’s def, same part, D-E-F space, initialize, parentheses, not even parentheses if you don’t need to call it within the arguments, there’s not even a parentheses.
所以它是 def,相同的部分,D-E-F 空间,初始化,括号,如果你不需要在参数中调用它,甚至没有括号,甚至没有括号。
49:44 That in itself is actually also a major part.
这本身实际上也是一个主要部分。
If the human doesn’t need the additional characters, we’re not just going to put them in because it’d be nicer to parse for the computer.
如果人类不需要额外的字符,我们不会只是将它们放入,因为这样会更好地为计算机解析。
We’re going to get rid of the semicolons, we’re going to get rid of the parentheses, we’re going to get rid of the underscores, we’re going to get rid of all that ugliness, all the line noise and boil it down to its pure essentials and at the same time, we’re not going to abbreviate.
我们要摆脱分号,我们要摆脱括号,我们要摆脱下划线,我们要摆脱所有那些丑陋的东西,所有的线条噪音,并将其归结为纯粹的本质,同时,我们不会缩写。
This is a key difference in the aesthetics between Ruby and Python as well.
这也是 Ruby 和 Python 之间美学上的一个关键区别。
Init is shorter to type, it’s only five characters.
Init 的输入较短,只有五个字符。
Initialize is a lot longer, but it looks a lot better and you don’t type it very often, so you should look at something pretty.
初始化要长得多,但看起来好多了,而且你不经常键入它,所以你应该看一些漂亮的东西。
If you don’t have to do it all the time, it’s okay that it’s long.
如果你不需要一直这样做,那么时间长一点也没关系。
50:29 Those kinds of aesthetic evaluations are rife all over the Ruby language.
这些审美评价在 Ruby 语言中随处可见。
But let me give you an even better example.
但让我给你举一个更好的例子。
The if conditional, that’s the bedrock of all programming languages.
if 条件,这是所有编程语言的基石。
They have the if conditional, if you take most programming languages, they’ll have if, that’s basically the same in almost every language, space, start parentheses, we all do that.
他们有 if 条件,如果你采用大多数编程语言,他们都会有 if,这在几乎每种语言中基本上都是相同的,空格,开始括号,我们都这样做。
And then you have perhaps, let’s say you’re calling a object called user.
然后,假设您正在调用一个名为 user 的对象。
is admin, close parentheses, close parentheses, start brackets, and here’s what we’re going to do if the user’s an admin, right?
是管理员,右括号,右括号,起始括号,如果用户是管理员,这就是我们要做的,对吧?
That would be a normal programming language.
那将是一种普通的编程语言。
Ruby doesn’t do it like that.
Ruby 不会那样做。
Ruby boils almost all of it away.
鲁比几乎把所有的东西都煮掉了。
We start with the if.
我们从如果开始。
Okay, that’s the same, no parentheses necessary because there’s no ambiguity for the human to distinguish that the next part is just a single statement.
好吧,这是一样的,不需要括号,因为人类可以毫不含糊地区分下一部分只是一个单独的语句。
So you do if, space, user dot admin, question mark, no open brackets, no parentheses, no nothing.
所以你要做的是 if、空格、用户点 admin、问号、没有左括号、没有圆括号,什么都没有。
Next open line, here’s your conditional.
下一个空行,这是您的条件。
51:45 That question mark means nothing to the computer, but it means something to the human.
这个问号对计算机来说毫无意义,但对人类来说却有意义。
Ruby put in the predicate method style purely as a communication tool between humans.
Ruby 引入谓词方法风格纯粹是作为人与人之间的交流工具。
It’s actually more work for the interpreter to be able to see that this question mark is there.
实际上,口译员需要做更多的工作才能看到这个问号的存在。
Why is this question mark in here?
为什么这个问号在这里?
Because it just reads so nicely.
因为它读起来非常好。
If user admin question mark, that’s a very human phrase, but it gets better.
如果用户管理员打问号,这是一个非常人性化的短语,但它会变得更好。
You can turn this around.
你可以扭转这个局面。
You can have your statement, you want to execute before the conditional.
你可以有你的语句,你想在条件之前执行。
You can do user.upgrade, say you’re calling an upgrade method on a user, space, if, space, user.admin question mark.
你可以执行 user.upgrade ,假设你正在对 user、space、if、space、user.admin 问号调用升级方法。
We do the thing, if the thing is true, instead of saying if the thing is true, do the thing.
如果事情是真的,我们就去做,而不是说事情是否真实,就去做。
But it gets even better.
但它会变得更好。
This is why I love this example with the conditional because you can keep diving into it.
这就是为什么我喜欢这个带有条件的例子,因为你可以继续深入研究它。
So let’s flip it around.
那么我们来翻转一下。
user.downgrade if exclamation point, not user.admin, that’d be a typical way of writing it.
user.downgrade 如果是感叹号,而不是 user.admin,这是典型的编写方式。
Ruby goes that exclamation point is light noise.
鲁比说感叹号是轻微的噪音。
Why do we have if and then an exclamation point that’s ugly?
为什么我们有 if 和 then 一个丑陋的感叹号?
We could do user.downgrade unless user.admin question mark.
除非 user.admin 问号,否则我们可以执行 user.downgrade。
That is awesome.
那太棒了。
That to me is an encapsulation of the incredible beauty that Ruby affords the programmer through ambiguity that is only to serve the human reader and writer.
对我来说,这是 Ruby 通过模糊性为程序员提供的令人难以置信的美丽的封装,而这种模糊性只是为人类读者和作家服务的。
53:17 All of these statements we’ve just discussed, they’re the same for the computer.
我们刚刚讨论的所有这些陈述对于计算机来说都是相同的。
It’ll compile down to the same C code.
它将编译为相同的 C 代码。
They’ll compile down to the same assembly code.
它们将编译为相同的汇编代码。
It makes no difference whatsoever.
这没有任何区别。
In fact, it just makes it harder to write an interpreter.
事实上,它只会让编写解释器变得更加困难。
But for the human who gets to choose whether the statement comes before the conditional or the predicate method has, it’s just incredible.
但对于能够选择语句是否出现在条件方法或谓词方法之前的人来说,这真是令人难以置信。
It reads like poetry at some point.
它在某些时候读起来像诗。
It’s also incredible that one language designer is creating that.
一位语言设计师创造了这一点,这也令人难以置信。
53:55 Guido van Rossum also.
吉多·范·罗森也是。
It’s like one person gets to make these extremely difficult decision because you have to think about how does that all get parsed and you have to think about the thousands, if it’s a popular language that millions of people that end up using this and what they feel, what that question mark for the if statement, what does that feel like of the user?
就像一个人要做出这些极其困难的决定,因为你必须考虑如何解析这一切,并且你必须考虑成千上万的人,如果它是一种流行语言,数百万人最终使用它以及他们的感受,if语句的问号是什么,用户的感觉如何?
That’s what Matz thought about because he started his entire mission off a different premise than almost every programming language designer that I’d heard at least articulate their vision, that his number one goal was programmer happiness.
这就是 Matz 的想法,因为他开始他的整个使命的前提与几乎所有我听过的至少阐明他们愿景的编程语言设计师不同,他的首要目标是程序员的幸福。
54:24 That his number one goal was the affordances that would allow programmers to articulate code in ways that not just executed correctly, but were a joy to write and were a joy to read.
他的首要目标是让程序员能够以不仅能够正确执行、而且能够愉悦地编写和阅读代码的方式来表达代码。
That vision is based on a fundamentally different view of humanity.
这一愿景基于一种根本不同的人类观。
There’s no greater contrast between Matz and James Gosling, the designer of Java.
Matz 和 Java 的设计者 James Gosling 之间没有比这更大的反差了。
I wanted to listen to James talk about the design of Java.
我想听 James 谈论 Java 的设计。
Why was it the way it was?
为什么会这样?
Why was it so rigid?
为什么这么僵硬?
He was very blunt about it, which by the way, I really appreciate and I think Gosling has done a tremendous job with Java, but his view of humanity is rather dark.
他对此非常直言不讳,顺便说一句,我真的很欣赏,我认为 Gosling 在 Java 方面做得非常出色,但他的人性观相当黑暗。
55:24 His view of humanity was programmers at the average are stupid creatures.
他对人类的看法是,程序员一般来说都是愚蠢的生物。
They cannot be trusted with sophisticated programming languages because they’re going to shoot their foot off or their hand off.
他们不能信任复杂的编程语言,因为他们会举手投足。
And that would be kind of inconvenient to the regional development office of a mid-tier insurance company writing code that has to last for 20 years.
这对于编写必须持续 20 年的代码的中型保险公司的区域开发办公室来说有点不方便。
Now it’s actually a very Thomas Sowell view of constrained capacity in humans that I’ve come to appreciate much later in life.
现在,这实际上是一种非常托马斯·索威尔(Thomas Sowell)关于人类能力有限的观点,我在晚年才开始欣赏这一点。
But it’s also a very depressing view of programmers that there are just certain programmers who are too dumb to appreciate code poetry.
但对于程序员来说,这也是一个非常令人沮丧的观点,即只有某些程序员太愚蠢而无法欣赏代码诗歌。
They’re too ignorant to learn how to write it well.
他们太无知,无法学习如何写好它。
We need to give them a sandbox where they just won’t hurt themselves too much.
我们需要给他们一个沙箱,让他们不会伤害自己太多。
56:20 Matz went the complete opposite direction.
马茨走了完全相反的方向。
He believes in humanity.
他相信人性。
He believes in the unlimited capacity of programmers to learn and become better so much so that he’s willing to put the stranger at his own level.
他相信程序员学习和变得更好的能力是无限的,因此他愿意将陌生人置于与自己相同的水平。
This is the second part I truly appreciate about Ruby.
这是我真正欣赏 Ruby 的第二部分。
Ruby allows you to extend base classes.
Ruby 允许您扩展基类。
You know how we just talked about five dot times is a way to iterate over a statement five times.
您知道我们刚才谈到的五点时间是对语句进行五次迭代的一种方法。
That five is obviously a base class, it’s a number.
这五显然是一个基类,它是一个数字。
Do you know what?
你知道什么吗?
You can add your own methods to that?
您可以添加自己的方法吗?
I did extensively.
我做了广泛的工作。
In Rails, we have something called active support, which is essentially my dialect of Ruby for programming web applications.
在 Rails 中,我们有一种称为主动支持的东西,这本质上是我用于编程 Web 应用程序的 Ruby 方言。
I’ll give you one example.
我给你举一个例子。
I’ve added a method called Days to the Number.
我添加了一个名为 Days to the Number 的方法。
So if you do five .days, you get five days in seconds because seconds is the way we set cache expiration times and other things like that.
因此,如果您执行五个 .days,则您会在几秒钟内获得五天,因为秒是我们设置缓存过期时间和其他类似内容的方式。
So you can say cache expires in five .days and you’re going to get whatever-
所以你可以说缓存在五天后过期,你会得到任何东西 -
That’s nice.
太好了。
…
……
57:35 five times, 24 times 60 times 60 is or whatever the math is, right?
五倍、24 倍、60 倍、60 或其他什么数学公式,对吧?
Very humanly readable.
非常人性化可读。
In a normal programming language, you would type out the seconds and then you would have a little comment above it saying this represent five days.
在普通的编程语言中,您可以输入秒,然后在上面有一个小注释,说明这代表五天。
In Ruby, you get to write five days.
在 Ruby 中,您需要五天的时间来编写。
But even better than that, Matz didn’t come up with it.
但比这更好的是,马茨没有想出这个办法。
Matz didn’t need the five days.
马茨不需要这五天。
I needed that because I needed to expire caches.
我需要它,因为我需要使缓存过期。
I was allowed by Matz to extend his story with my own chapters on equal footing such that a reader of Ruby could not tell the difference between the code Matz wrote and the code that I wrote.
Matz 允许我在平等的基础上用我自己的章节来扩展他的故事,这样 Ruby 的读者就无法区分 Matz 编写的代码和我编写的代码之间的区别。
58:16 He trusted me as a complete stranger from Denmark who he’d never met to mess with his beautiful story.
他相信我是一个来自丹麦的陌生人,他从未见过我来扰乱他美丽的故事。
That level of trust is essentially unheard of.
这种程度的信任基本上是闻所未闻的。
I know there are other program languages that allow things with macros and so forth, but none do it in a way like Ruby does it.
我知道还有其他程序语言允许使用宏等,但没有一种语言能像 Ruby 那样做到这一点。
None does it with an articulated vision of humanity, a trust in humanity like Matz does.
没有人像马茨那样以清晰的人性愿景和对人性的信任来做到这一点。
That is the opposite end of the spectrum of Java.
这是 Java 的另一端。
Yeah, I mean for my aesthetic sensibilities, just the way you described five .days, that’s really pleasant to me.
是的,我的意思是,就我的审美感受而言,就像你描述的五天一样,这对我来说真的很愉快。
58:46 I could see myself sitting alone sleep-deprived and just writing that.
我可以想象自己独自坐着,睡眠不足,只是写下这篇文章。
It’s just an easy thing.
这只是一件容易的事。
You can write it in a long way with a comment.
可以写得很长,加上评论。
You can write in multiple lines, you could do…
你可以写多行,你可以......
And now with AI, I’m sure it’s going to generate it correctly, but there’s something really pleasant about the simplicity of that.
现在有了人工智能,我确信它会正确生成它,但它的简单性确实令人愉快。
I’m not sure what that is, but you’re right.
我不确定那是什么,但你是对的。
There is a good feeling there.
那里有一种很好的感觉。
I’m sure we’ll talk about happiness from all kinds of philosophical angles, but that is what happiness is made of.
我确信我们会从各种哲学角度谈论幸福,但这就是幸福的组成部分。
That little good feeling there.
那里有那种小小的美好感觉。
Exactly.
确切地。
59:29 It’s the good feeling that come out of a concept compressed to its pure essence.
这是一种从压缩到纯粹本质的概念中产生的良好感觉。
There’s nothing you can take away from that statement that’s superfluous.
从这句话中你无法看出什么是多余的。
But see, I also want to push back a little bit because it’s not…
但是你看,我也想稍微推迟一下,因为这不是……
59:39 Because I also programed in Perl a bunch just to be cool.
因为我也用 Perl 编写了一堆程序只是为了炫酷。
So it’s not all about compression.
所以这不仅仅与压缩有关。
No, you can compress it too far.
不,你可以把它压缩得太远。
59:51 Perl golf is a thing where you can turn programs into something that’s unreadable for humans.
Perl Golf 是一种可以将程序变成人类无法阅读的东西。
Now the great thing about Perl was that it came out before Ruby.
Perl 的伟大之处在于它先于 Ruby 出现。
Matz was a great student of Wall, was a great student of Perl, was a great student of Python and Smalltalk and Lisp.
Matz 是 Wall 的优秀学生,是 Perl 的优秀学生,也是 Python、Smalltalk 和 Lisp 的优秀学生。
He took inspiration from all of these prior attempts at creating good programming languages and really edited down the very best bits into this.
他从之前创建优秀编程语言的所有这些尝试中汲取了灵感,并真正将最好的部分编辑到了其中。
So he was able to learn from his lessons.
所以他能够从他的教训中吸取教训。
But what I found incredible about Ruby is that here we are, 2025, Ruby has been worked on for over 30 years and essentially the first draft is 90% of what we’re still using.
但我发现 Ruby 令人难以置信的是,到了 2025 年,Ruby 已经开发了 30 多年,基本上第一个草案是我们仍在使用的 90%。
1:00:38 There was almost a sense of divine inspiration possible in wherever Matz was writing that initial version of Ruby that transcended time to such a degree that no one has still even begun to reach it.
在 Matz 编写 Ruby 最初版本的任何地方,几乎都有一种神圣灵感的感觉,它超越了时间,达到了无人能及的程度。
This is the other thing I always find fascinating.
这是我一直觉得很有趣的另一件事。
I generally believe in the efficient market theory that if someone comes up with a better mousetrap or better idea, others, they’ll eventually copy them to such an extent that perhaps the original mousetrap is no longer even remembered.
我一般相信有效市场理论,如果有人想出一个更好的捕鼠器或更好的想法,其他人最终会复制它们,以至于最初的捕鼠器可能不再被记住。
No one has been able to copy that essence of Ruby.
没有人能够复制 Ruby 的本质。
They borrowed elements and that’s totally fine, but Ruby still stands taller than everyone else on these metrics, on this trust in humanity and programmers.
他们借用了元素,这完全没问题,但在这些指标上,在对人类和程序员的信任上,Ruby 仍然比其他所有人都高。
And we should also say maybe the perfect programming language is that metric, and then there’s the successful language and those are often different.
我们还应该说,也许完美的编程语言就是这个指标,然后是成功的语言,而这些语言通常是不同的。
1:01:21 There’s something wonderful about the Brendan Eich story of creating JavaScript.
Brendan Eich 创建 JavaScript 的故事有一些精彩的地方。
There’s something truly beautiful about the way JavaScript took over the world.
JavaScript 统治世界的方式确实很美妙。
I’ve recently got to visit the Amazon jungle and just one of my favorite things to do is just to watch the ants take over anything, everything.
我最近要去亚马逊丛林,我最喜欢做的事情之一就是观看蚂蚁接管一切。
And it’s just like it’s a nice distributed system.
这就像一个很好的分布式系统。
It’s a messy thing that doesn’t seem to be ordered, but it just works and the machinery of it.
这是一个凌乱的东西,似乎没有秩序,但它只是工作和它的机制。
Worse is Better.
越差越好。
1:01:58 I mean that’s actually the name of a pattern in software development and other ways of how is the pattern of Linux.
我的意思是,这实际上是软件开发中的一种模式的名称,以及 Linux 模式的其他方式。
Linux was quantifiably worse than I think it was Minix at the time, other ways of it that were more cathedral, less bizarre, and it’s still want.
Linux 在数量上比我当时认为的 Minix 更糟糕,它的其他方式更大教堂,不那么奇怪,而且它仍然需要。
That there’s something to it that the imperfections can help something go forward.
不完美之处可以帮助事情向前发展。
It’s actually a trick I’ve studied to the degree that I now incorporated in almost all open source that I do.
这实际上是我研究过的一个技巧,现在我已经将它融入到我所做的几乎所有开源项目中。
I make sure that when I release the first version of any new thing I work on, it’s a little broken.
我确保当我发布我正在开发的任何新事物的第一个版本时,它都会有点破损。
It’s a little busted in ways that invite people to come in and help me.
在邀请人们进来帮助我方面有点失败。
Because there’s no easier way to get the collaboration of other programmers than to put something out that they know how to fix and improve.
因为没有比发布他们知道如何修复和改进的东西更容易获得其他程序员协作的方法了。
Yeah, that’s awesome.
是的,那太棒了。
But Ruby is somehow or was at least a little bit different in that regard.
但 Ruby 在这方面有所不同,或者至少有一点不同。
1:02:49 Not in all regards.
并非所有方面。
Matz got the ethos of the language, the design of language just right.
Matz 恰到好处地理解了该语言的精神、语言的设计。
But the first versions of Ruby were terribly slow.
但 Ruby 的第一个版本非常慢。
It’s taken, I mean hundreds of man-years to get Ruby to be both this beautiful yet also highly efficient and really fast.
我的意思是,花了数百人年的时间才让 Ruby 变得如此美丽,同时又高效且快速。
We should say that the thing that made you fall in love with this particular programming language is Metaprogramming.
应该说,让你爱上这种特殊编程语言的是元编程。
Yes.
是的。
1:03:21 So that takes all of these elements we’ve just talked about and turned them up to 11.
这样就需要我们刚才讨论的所有这些元素,并将它们增加到 11 个。
I’ll explain Metaprogramming real simple.
我将非常简单地解释元编程。
Yeah, please.
是的,请。
Metaprogramming is essentially a version of the five .days.
元编程本质上是五天的一个版本。
1:03:29 You get to add keywords to the language.
您可以向该语言添加关键字。
Active record is the part of Rails that communicates with the database.
活动记录是 Rails 中与数据库通信的部分。
This is a system where every table in the database is represented by a class.
在这个系统中,数据库中的每个表都由一个类表示。
So if we take the user example, again, you do class, user descends from active record base, and then the first line you can write is this, I want my users to have many posts or have many comments.
因此,如果我们再次以用户为例,您进行类,用户从活动记录库下降,然后您可以编写的第一行是这样的,我希望我的用户有很多帖子或有很多评论。
Let’s do that.
让我们这样做吧。
We’re making some system where users can make comments.
我们正在制作一些用户可以发表评论的系统。
The very next line is, has underscore many space colon comments.
下一行是,强调了许多空格冒号注释。
1:04:15 Now you’ve set up a dependency between users and comments that will give you a whole host of access and factory methods for users to be able to own comments, to create comments, to update comments.
现在,您已经在用户和评论之间建立了依赖关系,这将为您提供一整套访问权限和工厂方法,以便用户能够拥有评论、创建评论和更新评论。
In that line alone ” has many” looks like a keyword.
仅在那一行中,“有很多”看起来就像一个关键字。
It looks like it’s part of the Ruby language.
看起来它是 Ruby 语言的一部分。
That’s metaprogramming.
这就是元编程。
When Rails is able to add these elements to how you define a class, and then that runs code that adds a bunch of methods to the use of class, that’s Metaprogramming.
当 Rails 能够将这些元素添加到定义类的方式中,然后运行代码,将一堆方法添加到类的使用中时,这就是元编程。
1:04:49 And when Metaprogramming is used in this way, we call it domain-specific languages.
当以这种方式使用元编程时,我们将其称为特定领域语言。
You take a generic language like Ruby and you tailor it to a certain domain like describing relationships in a database at a object level.
您采用 Ruby 这样的通用语言,并将其定制到特定领域,例如在对象级别描述数据库中的关系。
This is one of those early examples where you can do, user has many comments, belongs underscore two space colon account.
这是您可以执行的早期示例之一,用户有很多评论,属于下划线两个空格冒号帐户。
Now you’ve set up a one-to-one relationship before we had a one-to-many relationship.
现在,在我们建立一对多关系之前,您已经建立了一对一关系。
Rails is rife with all these kinds of domain-specific languages where at sometimes it doesn’t even look like Ruby.
Rails 充斥着所有这些特定于领域的语言,有时它甚至看起来不像 Ruby。
You can’t identify Ruby keywords.
您无法识别 Ruby 关键字。
You can just identify what looks like keywords in its own programming language.
您只需识别看起来像其自己的编程语言中的关键字的内容即可。
Now again, I know that Lisp and others also do this stuff.
现在,我再次知道 Lisp 和其他人也做这些事情。
They just do it with the maximum amount of line noise that can ever be crammed into a programming language and Ruby does it at a level where you cannot tell my metaprogramming from Matz’s keywords and with zero line noise.
他们只是用编程语言中可以塞入的最大量的线路噪声来实现这一点,而 Ruby 的实现水平是你无法从 Matz 的关键字和零线路噪声的情况下区分出我的元编程的。
Yeah, I should say that my first love was Lisp.
是的,我应该说我的初恋是 Lisp。
1:05:56 So there’s a slow tear that you can’t see.
所以有一个你看不到的缓慢的撕裂。
I’ve actually never written any real Lisp myself.
事实上,我自己从来没有写过任何真正的 Lisp。
Well, how can you judge it so harshly then?
那么,你怎么能这么严厉地评判呢?
Because I have two eyes and I can look at code and my aesthetic sensibilities forbid me to even go much further, which is the limitation, I know.
因为我有两只眼睛,我可以查看代码,但我的审美情感禁止我走得更远,我知道这是限制。
1:06:07 I should actually dive into Lisp because I’ve found that I’ve learned a lot just diving into, maybe I’m insulting Lisp again here, but the past of programming languages.
我实际上应该深入研究 Lisp,因为我发现我已经学到了很多东西,也许我在这里再次侮辱 Lisp,但只是深入研究编程语言的过去。
With Smalltalk, for example, I think Smalltalk is a incredible experiment that also worked but isn’t suitable for today’s programming environments.
以 Smalltalk 为例,我认为 Smalltalk 是一个令人难以置信的实验,它也有效,但不适合当今的编程环境。
I love that we’re talking about Ruby so much and what a beautiful code is and what a beautiful programming language is.
我喜欢我们如此多地谈论 Ruby,以及什么是美丽的代码以及什么是美丽的编程语言。
1:06:36 So one of the things that is I think implied maybe you made explicit in your descriptions there is that Ruby is dynamic typing versus strict typing.
因此,我认为您可能在描述中明确暗示的一件事是,Ruby 是动态类型而不是严格类型。
And you have been not just saying that it’s a nice thing, but that you will defend dynamic typing to the death.
您不仅说这是一件好事,而且您将誓死捍卫动态类型。
That freedom is a powerful freedom to preserve.
这种自由是一种需要维护的强大自由。
It’s the essence of what makes Ruby Ruby.
这是 Ruby 成为 Ruby 的精髓。
1:07:04 This is why I don’t fully understand when people call for Ruby to add static typing because to me it’s the bedrock of what this is.
这就是为什么我不完全理解人们要求 Ruby 添加静态类型的原因,因为对我来说,这是它的基石。
Why would you want to turn one of the most beautiful languages into something far uglier?
为什么你想把最美丽的语言之一变成更丑陋的语言?
This is one of my primary objections to static typing.
这是我对静态类型的主要反对意见之一。
It’s not just that it limits you in certain ways.
这不仅仅是因为它在某些方面限制了你。
It makes metaprogramming harder.
它使元编程变得更加困难。
I write a bunch of metaprogramming.
我写了一堆元编程。
I’ve seen what it takes to do metaprogramming in TypeScript.
我已经了解了如何在 TypeScript 中进行元编程。
That was actually one of the things that just really sent me on a tear of getting meta or getting TypeScript out of some of the projects that I’m involved with.
这实际上是让我为获取元数据或从我参与的一些项目中获取 TypeScript 而流泪的事情之一。
1:07:42 We pulled TypeScript out of Turbo, one of the front-end frameworks that we have because I tried to write to Metaprogramming in TypeScript and I was just infuriated.
我们从 Turbo(我们拥有的前端框架之一)中删除了 TypeScript,因为我试图用 TypeScript 编写元编程,但我被激怒了。
I don’t want that experience, but I also don’t want it from an aesthetic point of view.
我不想要那种经历,但从审美的角度来看我也不想要它。
I hate repetition.
我讨厌重复。
We’ve just talked about how much I love that Ruby boils all of these expressions.
我们刚刚谈到了我是多么喜欢 Ruby 煮沸所有这些表达式。
1:08:00 …
……
about how much I love that Ruby boils all of these expressions down to its essence.
我多么喜欢 Ruby 将所有这些表达方式归结为它的本质。
You can’t remove one dot.
你无法删除一个点。
You can’t remove one character without losing something.
你无法删除一个角色而不丢失一些东西。
This moment you go for static typing, that you declare at least …
这一刻你选择静态类型,你至少声明......
I know there are ways to do implied typing and so forth, but let’s just take the stereotypical case of an example, for example.
我知道有一些方法可以进行隐式打字等,但我们只举一个典型的例子。
Capital U user, I’m declaring the type of the variable.
大写U用户,我正在声明变量的类型。
Lowercase user.
小写用户。
I’m now naming my variable, equals uppercase user or new uppercase user.
我现在正在命名我的变量,等于大写用户或新大写用户。
I’ve repeated user three times.
我已经重复用户三遍了。
I don’t have time for this.
我没有时间做这个。
I don’t have sensibilities for this.
我对此没有感性。
I don’t want my Ruby polluted with this.
我不想让我的 Ruby 被这个污染。
Now, I understand all the arguments for why people like static typing.
现在,我理解了人们为什么喜欢静态类型的所有论点。
One of the primary arguments is that it makes tooling easier.
主要论点之一是它使工具变得更容易。
It makes it easier to do auto-complete in editors, for example.
例如,它可以更轻松地在编辑器中进行自动完成。
It makes it easier to find certain kinds of bugs, because maybe you’re calling methods that don’t exist on an object and the editor can actually catch that bug before you even run it.
它可以更轻松地找到某些类型的错误,因为也许您正在调用对象上不存在的方法,并且编辑器实际上可以在您运行该错误之前捕获该错误。
I don’t care.
我不在乎。
1:09:11 First of all, I don’t write code with tools, I write them with text editors.
首先,我不使用工具编写代码,而是使用文本编辑器编写代码。
I chisel them out of the screen with my bare hands.
我徒手将它们从屏幕上凿出来。
I don’t auto-complete.
我不会自动完成。
This is why I love Ruby so much, and this is why I continue to be in love with the text editor rather than the IDE.
这就是我如此热爱 Ruby 的原因,也是我继续热爱文本编辑器而不是 IDE 的原因。
I don’t want an IDE.
我不需要 IDE。
I want my fingers to have to individually type out every element of it, because it will force me to stay in the world where Ruby is beautiful.
我希望我的手指必须单独敲出其中的每个元素,因为这将迫使我留在 Ruby 美丽的世界中。
Because as soon as it gets easy to type a lot of boilerplate, well, guess what?
因为一旦输入大量样板变得很容易,那么,你猜怎么着?
You can have a lot of boilerplate.
你可以有很多样板。
Every single language basically that has great tooling support has a much higher tolerance for boilerplate because the thinking is, well, you’re not typing it anyway, you’re just auto- completing it.
基本上,每种具有强大工具支持的语言对样板文件都有更高的容忍度,因为我们的想法是,无论如何,你都不会输入它,你只是自动完成它。
I don’t want that at all.
我根本不想那样。
I want something where the fabric I’m working in is just a text file, there’s nothing else to it.
我想要的东西是我正在处理的织物只是一个文本文件,没有其他任何东西。
So these things play together.
所以这些东西一起发挥作用。
There’s the aesthetic part, there’s the tooling part, there’s the meta-programming part.
有美学部分,有工具部分,还有元编程部分。
1:10:16 There’s the fact that Ruby’s ethos of duck typing …
事实上,Ruby 的鸭子类型精神……
I don’t know if you’ve heard that term before.
我不知道你以前是否听说过这个词。
It’s essentially not about, can I call this method if an object is of a certain class?
它本质上不是关于,如果一个对象属于某个类,我可以调用这个方法吗?
Can I call this method if the method responds?
如果该方法有响应,我可以调用该方法吗?
It’s very out of small talk in that regard.
在这方面,这是非常闲聊的。
You don’t actually check whether that class has the method, which allows you to dynamically add methods at runtime and do all sorts of really interesting things that underpin all the beautiful meta-programming that we do in Ruby.
您实际上并不检查该类是否具有该方法,该方法允许您在运行时动态添加方法并执行各种真正有趣的事情,这些事情支撑着我们在 Ruby 中所做的所有美丽的元编程。
I don’t want to lose any of that and I don’t care for the benefits.
我不想失去任何这些,也不关心其中的好处。
One of the benefits I’ve seen touted over and over again is that it’s much easier to write correct software.
我一遍又一遍地看到的好处之一是编写正确的软件要容易得多。
You’re going to have fewer bugs.
你的错误将会更少。
You’re going to have less Null Pointer Exceptions, you’re going to have less of all of this stuff.
你将会有更少的空指针异常,你将会有更少的所有这些东西。
Yeah, I don’t have any of that.
是的,我什么都没有。
It’s just not something that occurs in my standard mode of operation.
这不是我的标准操作模式中会发生的事情。
I’m not saying I don’t have bugs, of course I do, but I catch those bugs with unit testing, with integration testing.
我并不是说我没有错误,当然有,但我通过单元测试和集成测试发现了这些错误。
1:11:19 Those are the kinds of precautions that will catch logical bugs, things that compile but are wrong, along with the uncompilable stuff.
这些预防措施可以捕获逻辑错误、可以编译但错误的内容以及无法编译的内容。
So I’ve never been drawn into this world, and part of it is because I work on a certain class of systems.
所以我从来没有被吸引到这个世界上,部分原因是我在某一类系统上工作。
I fully accept that.
我完全接受这一点。
If you’re writing systems that have five, 10, 50 million lines of code with hundreds, thousands or tens of thousands of programmers, I fully accept that you need different methods.
如果您正在编写包含 5、10、5000 万行代码、数百、数千或数万名程序员的系统,我完全同意您需要不同的方法。
What I object to is the idea that what’s right for a code base of 10 million lines of code, with 100,000 programmers working on it, is also the same thing I should be using in my bedroom to create Basecamp, because I’m just a single individual.
我反对的是这样一种想法:对于 1000 万行代码、100,000 名程序员工作的代码库来说,正确的做法也应该是我在卧室里创建 Basecamp 时应该使用的东西,因为我只是一个人。
That’s complete nonsense.
这完全是无稽之谈。
In the real world, we would know that that makes no sense at all.
在现实世界中,我们会知道这根本没有意义。
That you don’t, I don’t know, use your Pagani to go pick up groceries at Costco.
我不知道你不会开着你的帕加尼去 Costco 买杂货。
It’s a bad vehicle for that.
这是一个糟糕的工具。
It just doesn’t have the space, you don’t want to muddy the beautiful seats.
它只是没有空间,你不想弄脏漂亮的座位。
You don’t want to do any of those things.
你不想做任何这些事情。
1:12:21 We know that certain things that are very good in certain domains don’t apply to all.
我们知道,某些在某些领域非常好的东西并不适用于所有领域。
In programming languages, it seems like we forget that.
在编程语言中,我们似乎忘记了这一点。
Now, to be fair, I also had a little bit perhaps of a reputation of forgetting that.
现在,公平地说,我也有一点忘记这一点的名声。
When I first learned Ruby, I was so head over heels in love with this programming language that I almost found it unconceivable that anyone would choose any other programming language at all to write web applications.
当我第一次学习 Ruby 时,我非常喜欢这种编程语言,以至于我几乎无法想象有人会选择任何其他编程语言来编写 Web 应用程序。
I kind of engaged the evangelism of Ruby on Rails in that spirit as a crusade, as, I just need to teach you the gospel.
我本着这种精神参与 Ruby on Rails 的传播,就像一场十字军东征,因为我只需要教你福音。
I just need to show you this conditional code that we just talked about, and you will convert at the point of a sharp argument.
我只需要向你展示我们刚才谈到的这个条件代码,你就会在尖锐的争论点进行转换。
Now, I learned that’s not the way, and part of the reason it’s not the way is that programmers think differently.
现在,我了解到这不是正确的方式,而这不是正确的方式的部分原因是程序员的思维方式不同。
Our brains are configured differently.
我们的大脑配置不同。
My brain is configured perfectly for Ruby, perfectly for a dynamically duck-typed language that I can chisel code out of a text editor with.
我的大脑针对 Ruby 进行了完美的配置,非常适合动态鸭子类型的语言,我可以用它从文本编辑器中凿出代码。
1:13:22 Other people need the security of an IDE.
其他人需要 IDE 的安全性。
They want the security of classes that won’t compile unless you call the methods on it.
他们想要类的安全性,除非你调用类的方法,否则不会编译。
I have come to accept that, but most programmers don’t.
我已经接受了这一点,但大多数程序员不接受。
They’re still stuck in essentially, I like static typing.
他们本质上仍然停留在,我喜欢静态类型。
Therefore, static typing is the only way to create reliable, correct systems.
因此,静态类型是创建可靠、正确的系统的唯一方法。
Which is just such a mind-blowing, to be blunt, idiotic thing to say in the face of mountains of evidence to the contrary.
面对大量相反的证据,坦率地说,这是一件令人兴奋、愚蠢的事情。
This is one of the reasons I’m so in love with Shopify as the flagship application for Ruby on Rails.
这是我如此喜爱 Shopify 作为 Ruby on Rails 旗舰应用程序的原因之一。
Shopify exists at a scale that most programmers will never touch.
Shopify 的规模是大多数程序员永远无法触及的。
On Black Friday, I think Shopify did one million requests per second.
在黑色星期五,我认为 Shopify 每秒处理一百万个请求。
That’s not one million requests of images, that’s of dynamic requests that are funneling through the pipeline of commerce.
这不是一百万个图像请求,而是通过商业管道传递的动态请求。
I mean, Shopify runs something like 30% of all E-commerce stores on the damn Internet.
我的意思是,Shopify 经营着该死的互联网上大约 30% 的电子商务商店。
A huge portion of all commerce in total runs through Shopify and that runs on Ruby on Rails.
所有商务活动的很大一部分是通过 Shopify 运行的,并且在 Ruby on Rails 上运行。
So Ruby on Rails is able to scale up to that level without using static typing in all of what it does.
因此,Ruby on Rails 能够扩展到该级别,而无需在其所有功能中使用静态类型。
1:14:45 Now, I know they’ve done certain experiments in certain ways, because they are hitting some of the limits that you will hit with dynamic typing.
现在,我知道他们已经以某些方式做了某些实验,因为他们正在达到动态类型所遇到的一些限制。
Some of those limits you hit with dynamic typing are actually, by the way, just limits you hit when you write 5 million lines of code.
顺便说一下,动态类型所遇到的一些限制实际上只是在编写 500 万行代码时所遇到的限制。
I think the Shopify monolith is about 5 million lines of code.
我认为 Shopify 整体大约有 500 万行代码。
At that scale, everything breaks because you’re at the frontier of what humans are capable of doing with programming languages.
在这种规模下,一切都会崩溃,因为你处于人类使用编程语言能力的前沿。
The difference in part is that Ruby is such a succinct language that those 5 million, if they had been written in, let’s just say Go or Java, would have been 50 or 25.
部分区别在于,Ruby 是一种非常简洁的语言,如果用 Go 或 Java 编写的话,这 500 万个语言将是 50 或 25 个。
Now, that might have alleviated some of the problems that you have when you work on huge systems with many programmers, but it certainly would also have compounded them; try to understand 25 million lines of code.
现在,当您与许多程序员一起在大型系统上工作时,这可能会缓解您遇到的一些问题,但它肯定也会使问题变得更加复杂;尝试理解 2500 万行代码。
So the thing does scale.
所以事情确实规模化了。
1:15:33 That’s a persistent myth, that it doesn’t scale, Shopify, and others, but Shopify I think is a great example.
这是一个长期存在的神话,它无法扩展,Shopify 和其他公司,但我认为 Shopify 是一个很好的例子。
By the way, I love Shopify and I love Toby.
顺便说一句,我喜欢 Shopify,也喜欢 Toby。
You’ve got to have Toby on.
你必须让托比穿上。
1:15:45 I just talked to him this morning
我今天早上才和他谈过
For sure.
当然。
1:15:47 He’s a brilliant …
他是一位才华横溢的……
I got to hang out with him in the desert somewhere, I forget, in Utah.
我忘记了,我得和他一起去犹他州沙漠里的某个地方闲逛。
He’s just a brilliant human.
他只是一个才华横溢的人。
Shopify.com/luxe has been supporting this podcast for the longest time.
Shopify.com/luxe 对该播客的支持时间最长。
I don’t think actually Toby knows that they sponsor this podcast.
我认为托比实际上并不知道他们赞助了这个播客。
I mean, it’s a big company, right?
我的意思是,这是一家大公司,对吗?
It’s a huge company.
这是一家大公司。
1:16:05 I think just under 10,000 employees, market cap of $120 billion, GMV of a quarter of a trillion every quarter.
我认为员工人数不到 10,000 人,市值为 1200 亿美元,每个季度的 GMV 为 25 万亿美元。
He’s involved with the details though.
不过他参与了细节。
He is, very much so.
他确实是这样。
1:16:18 Funny story about Toby, Toby was on the Rails core team back in the mid-2000s.
关于 Toby 的有趣故事,Toby 在 2000 年代中期就在 Rails 核心团队中。
Toby himself-
托比本人——
Really?
真的吗?
…
……
1:16:28 wrote Active Merchant, which is one of the frameworks for creating shops.
Active Merchant 是创建商店的框架之一。
He wrote the Liquid templating language that Shopify still uses to this day.
他编写了 Liquid 模板语言,Shopify 至今仍在使用。
He has a huge list of contributions to the Rails ecosystem and he’s the CEO of the company.
他对 Rails 生态系统做出了很多贡献,并且是该公司的首席执行官。
I think it’s very inspiring to me, because it’s such at the opposite end of what I like to do.
我认为这对我来说非常鼓舞人心,因为它与我喜欢做的事情截然相反。
I like to chisel code with my own hands most of the day, he runs a company of almost 10,000 people.
我喜欢每天大部分时间亲手凿代码,他经营着一家近万人的公司。
That is literally, world commerce depends on it, a level of criticality I can’t even begin to understand.
从字面上看,世界贸易依赖于它,其重要性我什至无法理解。
Yet, we can see eye to eye on so many of these fundamental questions in computer science and program development.
然而,我们在计算机科学和程序开发中的许多基本问题上可以达成一致。
That is a dynamic range, to be able to encompass Rails, being a great tool for the one developer who’s just starting out with an idea …
这是一个动态范围,能够涵盖 Rails,对于刚刚开始有一个想法的开发人员来说是一个很好的工具……
who don’t even fully know everything, who is right at the level where PHP would have been a good fit in those late ’90s.
他们甚至不完全了解一切,他们的水平正好适合 90 年代后期的 PHP。
Because yeah, I can probably upload something to an FTP server and so on.
因为是的,我可能可以将一些东西上传到 FTP 服务器等等。
1:17:33 Rails does have more complexity than that, but it also has so much longer runway.
Rails 确实比这更复杂,但它也有更长的跑道。
The runway goes all the way to goddamn Shopify.
跑道一直延伸到该死的 Shopify。
That is about the most convincing argument I can make for dynamic range, that we can do a lot of it.
这是我对动态范围最有说服力的论据,我们可以做到很多。
And even having said that, Shopify is the outlier of course.
话虽如此,Shopify 当然是个例外。
I don’t think about Shopify as the primary target when I write Rails, I think of the single developer.
当我编写 Rails 时,我不认为 Shopify 是主要目标,我想到的是单一开发人员。
Actually, I do think about Shopify, but I don’t think about Shopify now.
事实上,我确实考虑过 Shopify,但我现在不考虑 Shopify。
I think of Shopify when Toby was writing Snow Devil, which was the first E-commerce store to sell snowboards that he created.
我想起了 Toby 编写 Snow Devil 时的 Shopify,这是他创建的第一家销售滑雪板的电子商务商店。
That was the pre-Shopify Shopify he created all by himself.
那是他自己创建的 Shopify 之前的 Shopify。
And that was possible because Ruby on Rails isn’t just about beautiful code, it’s just as much about productivity.
这是可能的,因为 Ruby on Rails 不仅仅关乎漂亮的代码,还关乎生产力。
It’s just as much about the impact that an individual programmer is able to have.
这同样关系到单个程序员能够产生的影响。
1:18:24 That they can build system where they can keep the whole thing in their head and be able to move it forward, such that you can go from one developer sitting and working on something …
他们可以构建一个系统,让他们可以将整个事情牢记在心,并能够向前推进,这样你就可以从一个开发人员坐着做某事......
and that something is Shopify, and it turns into what it is today.
这就是 Shopify,它变成了今天的样子。
When we talk about programming languages and we compare them, we often compare them at a very late stage.
当我们谈论编程语言并比较它们时,我们通常会在很晚的阶段对它们进行比较。
Like, what is the better programming language for, let’s say Twitter in 2009 when it’s already a huge success?
比如,什么是更好的编程语言,比如说 2009 年的 Twitter,当时它已经取得了巨大的成功?
Twitter was started on Ruby on Rails.
Twitter 是在 Ruby on Rails 上启动的。
They then hit some scaling problems, it was a big debacle at the time.
然后他们遇到了一些扩展问题,这在当时是一个很大的失败。
They end up then I think writing it in some other language, which by the way I think is the best advertisement ever for Ruby on Rails, because nothing fucking happened for 10 years after they switched over, essentially zero innovation.
然后他们最终用其他语言编写了它,我认为这是 Ruby on Rails 有史以来最好的广告,因为他们切换后的 10 年里没有发生任何事情,基本上是零创新。
Some of that was because they were doing a long conversion, and all of the early success in part came because they had the agility to quickly change and adopt and so forth.
其中一些是因为他们正在进行长期的转换,而所有早期的成功部分是因为他们具有快速改变和采用等的敏捷性。
That’s what startups need.
这就是初创公司所需要的。
That’s what Shopify needed, that’s what Twitter needed.
这就是 Shopify 需要的,这就是 Twitter 需要的。
1:19:24 That’s what everyone needs, and that’s the number one priority for Ruby on Rails, to make sure that we don’t lose that.
这是每个人都需要的,也是 Ruby on Rails 的首要任务,以确保我们不会失去这一点。
Because what happens so often when development tools and programming language are driven by huge companies, is that they mirror their org chart, React and everything else needed to use that, is in some ways a reflection of how Meta builds Facebook.
因为当开发工具和编程语言由大公司驱动时,经常发生的情况是,它们反映了他们的组织结构图、React 以及使用它所需的其他一切,在某种程度上反映了 Meta 构建 Facebook 的方式。
Because of course it is, because of course it’s an distraction of that.
因为当然是这样,因为这当然会分散注意力。
I’m not saying React isn’t a great tool and that can’t used by smaller teams, of course it can, but it’s born in a very different context than something like Ruby on Rails.
我并不是说 React 不是一个伟大的工具,不能被较小的团队使用,当然可以,但它诞生的背景与 Ruby on Rails 等工具截然不同。
Let me say as a small aside …
让我顺便说一句……
1:20:00 because I think we might return to Shopify and celebrate it often, just a personal note.
因为我认为我们可能会回到 Shopify 并经常庆祝它,只是个人笔记。
This particular podcast has way more sponsors, and sponsors that want to be sponsors, than I could possibly ever have.
这个特殊的播客拥有比我可能拥有的更多的赞助商和想要成为赞助商的赞助商。
It’s really, really important for me to not give a shit and to be able to celebrate people.
对我来说,不在乎并能够为人们庆祝真的非常非常重要。
I celebrate people, I celebrate companies, and I don’t care that they’re sponsoring.
我庆祝人们,我庆祝公司,我不在乎他们是否赞助。
I really don’t care.
我真的不在乎。
I just want to make that very explicit, because we’re going to continue saying positive things about Shopify.
我只是想非常明确地表达这一点,因为我们将继续谈论 Shopify 的积极一面。
I don’t care, stop sponsoring, it doesn’t really matter to me.
我不在乎,停止赞助,这对我来说并不重要。
Yeah, I just want to make that explicit.
是的,我只是想明确说明这一点。
But to linger on the scaling thing with the Twitter and the Shopify, can you just explain to me what Shopify is doing with the JIT?
但是,如果我们继续讨论 Twitter 和 Shopify 的扩展问题,您能向我解释一下 Shopify 正在利用 JIT 做什么吗?
What did they have to try to do to scale this thing, because that’s kind of an incredible story, right?
他们必须尝试做什么才能扩大规模,因为这是一个令人难以置信的故事,对吗?
Yeah.
是的。
1:20:59 One of the great contributions that Shopify has made to the entire Ruby ecosystem …
Shopify 对整个 Ruby 生态系统做出的伟大贡献之一……
not just Rails, but in particular Rails, is YJIT.
YJIT 不仅是 Rails,而且特别是 Rails。
YJIT is their compiler for Ruby that just makes everything a lot more efficient.
YJIT 是他们的 Ruby 编译器,它使一切变得更加高效。
At Shopify scale, eking out even a five, 10% improvement in Ruby’s overhead and execution time is a huge deal.
在 Shopify 规模下,Ruby 的开销和执行时间哪怕提高 5%、10% 也是一件了不起的事情。
Now, Shopify didn’t need YJIT.
现在,Shopify 不需要 YJIT。
Shopify was already running on the initial version of Ruby that was I think 10 times slower than what we have today, if you look back upon the Ruby 186 that Toby probably started on, just as I started on.
Shopify 已经在 Ruby 的初始版本上运行,我认为它比我们今天的版本慢 10 倍,如果你回顾一下 Toby 可能开始使用的 Ruby 186,就像我开始使用的那样。
That was enough to propel Shopify to the scale that it has today.
这足以推动 Shopify 发展到今天的规模。
A lot of the scaling conversation is lost in a failure to distinguish two things.
由于无法区分两件事,很多有关扩展的讨论都丢失了。
Scale is one package we talk about when there are really multiple packages inside of it.
规模是我们谈论的一个包,但实际上它里面有多个包。
One is runtime performance, latency, how fast can you execute a single request?
一是运行时性能、延迟,执行单个请求的速度有多快?
Can it happen fast enough that the user will not notice?
它发生得足够快以至于用户不会注意到吗?
If your Rails request takes a second and a half to execute, the user’s going to notice.
如果您的 Rails 请求需要一秒半的时间才能执行,用户就会注意到。
Your app is going to feel slow and sluggish.
您的应用程序会感觉缓慢且迟缓。
1:22:16 You have to get that response time down below, let’s say at least 300 milliseconds.
您必须将响应时间控制在低于 300 毫秒的水平。
I like to target a 100 milliseconds as my latency.
我喜欢将延迟时间设定为 100 毫秒。
That kind of performance, how much performance of that kind of latency can you squeeze out of a single CPU core?
这样的性能,这样的延迟,你能从单个CPU核心中挤出多少性能?
That tells you something about what the price of a single request will be.
这告诉您有关单个请求的价格的信息。
But then whether you can deal with one million requests a second, like Shopify is doing right now, if you have one box that can do 1,000 requests a second, you just need X boxes to get up to a million.
但是你是否可以每秒处理一百万个请求,就像 Shopify 现在所做的那样,如果你有一个盒子可以每秒处理 1,000 个请求,那么你只需要 X 个盒子就可以达到一百万个请求。
What you’ll actually find is that when it comes to programming languages, they’re all the same in this way.
你实际上会发现,当谈到编程语言时,它们在这方面都是一样的。
They all scale, largely, beautifully horizontally, you just add more boxes.
它们都在很大程度上、漂亮地水平缩放,你只需添加更多盒子即可。
The hard parts of scaling a Shopify is typically not the programming language, it’s the database.
扩展 Shopify 的困难部分通常不是编程语言,而是数据库。
That’s actually one of the challenges that Shopify has now is, how do you deal with MySQL at the scale that they’re operating at?
这实际上是 Shopify 现在面临的挑战之一,即如何在其运营规模下处理 MySQL?
When do you need to move to other databases to get worldwide performance?
您何时需要迁移到其他数据库以获得全球性能?
All of these things.
所有这些事情。
The questions about scaling Ruby are economic questions.
有关扩展 Ruby 的问题是经济问题。
1:23:28 If we’re spending so-and- so much on application servers, if we can get just 5% more performance out of Ruby, well, we could save 5% of those servers and that could filter down into the budget.
如果我们在应用程序服务器上花费如此多的钱,如果我们能够从 Ruby 中获得 5% 的性能提升,那么我们就可以节省 5% 的服务器,而这可以降低到预算中。
Now, that analysis concludes into basically one thing, Ruby is a luxury language.
现在,该分析基本上得出一件事:Ruby 是一种奢侈语言。
It’s a luxury, the highest luxury, in my opinion.
在我看来,这是一种奢侈,最高的奢侈。
It is the Coco Chanel of programming languages, something that not everyone can afford, and I mean this in the best possible way.
它是编程语言中的可可·香奈儿 (Coco Chanel),不是每个人都能负担得起的,我的意思是尽可能最好的方式。
There are some applications on the Internet where each request has so little value, you can’t afford to use a luxurious language like Ruby to program in it.
互联网上有一些应用程序,其中每个请求的价值都很小,您无法使用像 Ruby 这样的豪华语言在其中进行编程。
You simply have to slum it with a C or a Go or some other low-level language, or a Rust, talk about line noise there.
你只需要用 C 或 Go 或其他一些低级语言或 Rust 来解决它,谈论那里的线路噪音。
That’s like the thrift store of languages.
这就像语言的旧货店。
Exactly.
确切地。
1:24:19 What you need, you need a very low level to do it.
你需要什么,你需要很低的水平才能做到。
You can’t afford to use a luxury language to build it with.
您无法使用奢侈的语言来构建它。
That’s not true of Shopify.
Shopify 的情况并非如此。
It wasn’t true of Basecamp even back in 2004.
即使在 2004 年,Basecamp 也并非如此。
It’s not been true of 99% of all web applications ever created because the main cost component of 99% of web applications, it’s not CPU cores.
所创建的 99% 的 Web 应用程序并非如此,因为 99% 的 Web 应用程序的主要成本组成部分不是 CPU 内核。
It’s web cores, it’s human cores.
这是网络核心,也是人类核心。
It’s human capacity to understand and involve systems.
这是人类理解和参与系统的能力。
It’s their personal productivity.
这是他们的个人生产力。
I did a calculation once when someone had for the 400th time said, “Oh, if you switch from Ruby to some faster language, you could save a bunch of money.” I calculated it out that at the time …
我曾经计算过一次,当时有人第 400 次说:“哦,如果你从 Ruby 切换到某种更快的语言,你可以节省一大笔钱。”我当时算了一下……
and I think the last time I did this calculation was almost a decade ago, we were spending about 15% of our operating budget on Ruby application servers.
我认为上次进行此计算是在大约十年前,当时我们将大约 15% 的运营预算花费在 Ruby 应用程序服务器上。
So for me, to improve my cost profile of the business by seven percentage points, I’d have to pick something twice as fast.
因此,对我来说,为了将业务成本状况提高七个百分点,我必须以两倍的速度进行选择。
That’s quite hard.
那是相当困难的。
1:25:27 Versus, if Ruby and Ruby on Rails was even 10% more productive than something else, I would move the needle far more, because making individual programmers more productive actually matters a lot more.
相反,如果 Ruby 和 Ruby on Rails 的生产力比其他东西高出 10%,我会更进一步,因为提高单个程序员的生产力实际上更重要。
This is why people are so excited about AI.
这就是人们对人工智能如此兴奋的原因。
This is why they’re freaking out over the fact that a single programmer in Silicon Valley, who makes $300,000 a year, can now do the work of three or five, at least in theory.
这就是为什么他们对硅谷一个年薪 30 万美元的程序员现在可以完成三五个人的工作(至少在理论上)这一事实感到惊慌。
I haven’t actually seen that fully in practice.
我实际上还没有在实践中完全看到这一点。
But let’s just assume the theory is correct, if not now, then in six months, that’s a huge deal.
但我们假设这个理论是正确的,如果现在不是,那么六个月后,这就是一件大事了。
That matters so much more than whether you can squeeze a few more cycles out of the CPU when it comes to these kinds of business applications.
当涉及到此类业务应用程序时,这比您是否可以从 CPU 中挤出更多周期更重要。
If you’re making Unreal Engine rendering stuff, like Tim Sweeney you had on, yeah, he needs to really sweat all those details.
如果你正在制作虚幻引擎渲染的东西,就像你所使用的 Tim Sweeney 一样,是的,他需要真正关注所有这些细节。
The Nanite engine can’t run on Ruby.
Nanite 引擎无法在 Ruby 上运行。
It’s never going to, it was not meant for that, fine.
它永远不会,它不是故意的,好吧。
These kinds of business applications absolutely can.
这些类型的业务应用程序绝对可以。
1:26:25 And everything people are excited about AI for right now, that extra capacity to just do more, that was why we were excited about Ruby back in the early 2000s.
人们现在对人工智能感到兴奋的一切,即做更多事情的额外能力,这就是我们在 2000 年代初期对 Ruby 感到兴奋的原因。
It was because I saw that if we could even squeeze out a 10% improvement of the human programmer, we’d be able to do so much more for so much less.
这是因为我发现,如果我们能够比人类程序员提高 10%,我们就能以更少的成本做更多的事情。
We probably argue about this, but I really like working together with AI, collaborating with AI.
我们可能会争论这一点,但我真的很喜欢与人工智能一起工作,与人工智能合作。
1:26:47 I would argue that the kind of code you want AI to generate is human-readable, human interpretable.
我认为你希望人工智能生成的代码是人类可读、人类可解释的。
If it’s generating pro golf code, it’s not a collaboration.
如果它生成职业高尔夫代码,那么它就不是合作。
So it has to be speaking the human …
所以它一定是在说人类……
it’s not just, you’re writing the prompts in English, you also want to read the responses in the human-interpretable language at Ruby, right?
您不仅要用英语编写提示,还想在 Ruby 上阅读人类可解释语言的响应,对吧?
So that actually is beneficial for AI too.
所以这实际上对人工智能也有好处。
Because you’ve said that for you the sculptor, the elitist Coco Chanel sculptor, you want on your fancy keyboard to type every single letter yourself with your own fingers.
因为你说过,对于你来说,作为雕塑家,精英主义的可可·香奈儿雕塑家,你希望在你精美的键盘上用自己的手指自己输入每一个字母。
But it’s also, the benefit of Ruby also applies once that is written by AI and you’re actually doing with your own fingers the editing part, because you can interact with it because it’s human interpretable.
但同样,Ruby 的好处也适用于 AI 编写的内容,并且您实际上用自己的手指进行编辑部分,因为您可以与它交互,因为它是人类可解释的。
The paradigm I really love with this was something Elon actually said on one of your shows when you guys were talking about Neuralink, that Neuralink allows the bandwidth between you and the machine to increase.
我真正喜欢的范式是埃隆在你们的一个节目中所说的,当你们谈论 Neuralink 时,Neuralink 允许你和机器之间的带宽增加。
1:27:47 That language, either spoken or written, is very low bandwidth.
这种语言,无论是口语还是书面语,带宽都非常低。
If you are to calculate just how many bits we can exchange as we’re sitting here, it’s very slow.
如果你要计算我们坐在这里可以交换多少位,那就非常慢了。
Ruby has a much higher bandwidth of communication, revealed, conveys so much more concept per character than most other programming languages do.
据透露,Ruby 的通信带宽要高得多,与大多数其他编程语言相比,每个字符可以传达更多的概念。
So when you are collaborating with AI, you want really high bandwidth.
因此,当您与人工智能协作时,您需要非常高的带宽。
You want it to be able to produce programs with you, whether you’re letting it write the code or not, that both of you can actually understand really quickly.
你希望它能够与你一起生成程序,无论你是否让它编写代码,你们俩都可以真正快速地理解。
And that you could compress a grand concept, a grand system into far fewer parts that both of you can understand.
你可以将一个宏大的概念、一个宏大的系统压缩成你们都能理解的更少的部分。
Now, I actually love collaborating with AI too.
现在,我实际上也喜欢与人工智能合作。
I love chiseling my code, and the way I use AI is in a separate window.
我喜欢精雕细琢我的代码,我使用人工智能的方式是在一个单独的窗口中。
I don’t let it drive my code.
我不会让它驱动我的代码。
I’ve tried that.
我已经尝试过了。
I’ve tried the Cursors and the Windsurfs and I don’t enjoy that way of writing.
我尝试过光标和风帆,但我不喜欢这种写作方式。
1:29:03 One of the reasons I don’t enjoy that way of writing is, I can literally feel competence draining out of my fingers.
我不喜欢这种写作方式的原因之一是,我确实能感觉到能力从我的手指中流失。
That level of immediacy with the material disappears.
这种与材料的直接性消失了。
Where I felt this the most was, I did this remix of Ubuntu called Omakub when I switched to Linux.
我感受最深的是,当我切换到 Linux 时,我做了一个名为 Omakub 的 Ubuntu 混搭版。
It’s all written in Bash.
全部都是用 Bash 编写的。
I’d never written any serious amount of code in Bash before, so I was using AI to collaborate, to write a bunch of Bash with me, because I needed all this.
我以前从未在 Bash 中编写过大量代码,所以我使用 AI 进行协作,与我一起编写一堆 Bash,因为我需要这一切。
I knew what I wanted, I could express it in Ruby, but I thought it was an interesting challenge to filter it through Bash.
我知道我想要什么,我可以用 Ruby 表达它,但我认为通过 Bash 过滤它是一个有趣的挑战。
Because what I was doing was setting up a Linux machine, that’s basically what Bash was designed for.
因为我正在做的是设置一台 Linux 机器,这基本上就是 Bash 的设计目的。
It’s a great constraint.
这是一个很大的限制。
But what I found myself doing was asking AI for the same way of expressing a conditional, for example, in Bash over and over again.
但我发现自己正在做的是一遍又一遍地要求人工智能以相同的方式表达条件,例如在 Bash 中。
That by not typing it, I wasn’t learning it.
如果不打字,我就没有学到它。
I was using it, I was getting the expression I wanted, but I wasn’t learning it.
我正在使用它,我得到了我想要的表达方式,但我没有学习它。
I got a little scared.
我有点害怕。
1:30:08 I got a little scared, is this the end of learning?
我有点害怕,学习就这样结束了吗?
Am I no longer learning if I’m not typing?
如果我不打字,我就不再学习了吗?
The way I, for me, recast that was, I don’t want to give up on the AI.
对我来说,重铸的方式是,我不想放弃人工智能。
It’s such a better experience as a programmer to look up APIs, to get a second opinion on something, to do a draft, but I have to do the typing myself because you learn with your fingers.
作为一名程序员,查找 API、获得对某事的第二意见、做草稿是一种更好的体验,但我必须自己打字,因为你是用手指学习的。
If you’re learning how to play the guitar, you can watch as many YouTube videos as you want, you’re not going to learn the guitar.
如果你正在学习如何弹吉他,你可以随意观看 YouTube 视频,但你不会学会吉他。
You have to put your fingers on the strings to actually learn the motions.
您必须将手指放在琴弦上才能真正学习动作。
I think there is a parallel here to programming, where programming has to be learned in part by the actual typing.
我认为这与编程有相似之处,编程必须部分地通过实际打字来学习。
I’m just really, this is fascinating.
我真的,这太有趣了。
1:30:50 Listen, part of my brain agrees with you 100%, part doesn’t.
听着,我大脑的一部分 100% 同意你的观点,另一部分则不然。
I think AI should be in the loop of learning.
我认为人工智能应该处于学习的循环中。
Now, current systems don’t do that, but I think it’s very possible for Cursor to say, to basically force you to type certain things.
现在,当前的系统并没有这样做,但我认为 Cursor 很可能会说,基本上强迫你输入某些内容。
So if you set the mode of learning …
所以如果你设定学习模式……
I don’t want to be this, give up on AI.
我不想成为这样,放弃人工智能。
I think vibe coding is a skill, so for an experienced programmer it’s too easy to dismiss vibe coding as a thing.
我认为振动编码是一种技能,因此对于经验丰富的程序员来说,很容易将振动编码视为一种东西。
I agree, I wouldn’t dismiss it.
我同意,我不会拒绝它。
But I think you need to start building that skill and start to figure out, how do you prevent the competency from slipping away from your fingers and brain?
但我认为你需要开始培养这种技能,并开始弄清楚,如何防止这种能力从你的手指和大脑中溜走?
1:31:32 How do you develop that skill in parallel to the other skill?
您如何与其他技能并行地发展该技能?
I don’t know.
我不知道。
I think it’s a fascinating puzzle though.
我认为这是一个令人着迷的谜题。
I know too many really strong programmers that just avoid AI, because it’s currently a little too dumb.
我知道有太多非常强大的程序员只是回避人工智能,因为它目前有点太愚蠢了。
Yes.
是的。
1:31:57 It’s a little too slow, is actually my main problem.
有点太慢了,这实际上是我的主要问题。
It’s a little too dumb in some ways, but it’s a little too slow in other ways.
它在某些方面有点太愚蠢,但在其他方面又有点太慢了。
When I use Claude’s Code, the terminal version of Claude …
当我使用克劳德的代码时,克劳德的终端版本......
which is actually my preferred way of using it, I get too impatient.
这实际上是我最喜欢的使用方式,我太不耐烦了。
It feels like I’m going back to a time where code had to compile and I had to go do something else, boil some tea while the code is compiling.
感觉就像我回到了代码必须编译的时代,我必须去做其他事情,在代码编译的时候煮点茶。
Well, I’ve been working in Ruby for 20 years, I don’t have compile wait in me anymore, so there’s that aspect of it.
好吧,我已经使用 Ruby 工作了 20 年,我不再需要编译等待,所以就有了这个方面。
But I think the more crucial aspect for me is, I really care about the competence.
但我认为对我来说更重要的是,我真的很关心能力。
I’ve seen what happens to even great programmers the moment they put away the keyboard, because even before AI, this would happen as soon as people would get promoted.
我见过即使是伟大的程序员在收起键盘的那一刻会发生什么,因为即使在人工智能出现之前,一旦人们升职,这种情况就会发生。
Most great programmers who work in large businesses, stop writing code on a daily basis because they simply have too many meetings to attend to, they have too many other things to do, and invariably they lose touch with programming.
大多数在大型企业工作的优秀程序员都会停止每天编写代码,因为他们有太多的会议要参加,有太多的其他事情要做,并且总是与编程失去联系。
1:32:57 That doesn’t mean they forget everything but if you don’t have your fingers in the sauce, the source, you are going to lose touch with it.
这并不意味着他们会忘记一切,但如果你不把手指放在酱汁、源头上,你就会失去它的联系。
There’s just no other way.
没有其他办法了。
I don’t want that because I enjoy it too much.
我不想那样,因为我太喜欢它了。
This is not just about outcomes.
这不仅仅是结果的问题。
This is what’s crucial to understand, programming for programmers who like to code is not just about the programs they get out of it.
理解这一点至关重要,对于喜欢编码的程序员来说,编程不仅仅是他们从中得到的程序。
That may be the economic value.
这可能就是经济价值。
It’s not the only human value.
这不是唯一的人类价值。
The human value is just as much in the expression.
人的价值同样体现在表达上。
When someone who sits down on a guitar and plays Stairways to Heaven, there’s a perfect recording of that, that will last in eternity.
当有人坐在吉他上弹奏《天堂的阶梯》时,就会有一段完美的录音,将永远流传下去。
You can just put it on Spotify, you don’t actually need to do it.
你可以把它放在 Spotify 上,实际上并不需要这样做。
The joy is to command the guitar yourself.
乐趣在于亲自指挥吉他。
The joy of a programmer, of me as a programmer, is to type the code myself.
程序员的乐趣,对于我作为程序员来说,就是自己敲代码。
If I elevate, if I promote myself out of programming, I turn myself into a project manager, a project manager of a murder of AI crows, as I wrote the other day.
如果我提升自己,如果我把自己从编程中提升出来,我就会把自己变成一个项目经理,一个谋杀人工智能乌鸦的项目经理,就像我前几天写的那样。
I could have become a project manager my whole career.
我本可以成为我整个职业生涯的项目经理。
1:34:05 I could have become a project manager 20 years ago if I didn’t care to write code myself and I just wanted outcomes.
如果 20 年前我不关心自己编写代码而只想要结果,我本可以成为一名项目经理。
That’s how I got started in programming, I just wanted outcomes.
这就是我开始编程的方式,我只想要结果。
Then I fell in love with programming, and now I’d rather retire than giving it up.
然后我爱上了编程,现在我宁愿退休也不愿放弃。
Now, that doesn’t mean you can’t have your cake and eat it too.
现在,这并不意味着你不能鱼与熊掌兼得。
I’ve done some vibe coding where I didn’t care that I wasn’t playing myself.
我已经完成了一些氛围编码,我不在乎我自己没有在玩。
I just wanted to see something that was an idea in my head.
我只是想看看我脑海中的想法。
I wanted to see something, that’s fine.
我想看点东西,那很好。
I also use AI all day long.
我也整天用AI。
In fact, I’m already at the point where if you took it away from me, I’d be like, oh my God, how do we even look things up on the Internet anymore?
事实上,我已经到了这样的地步:如果你把它从我身边拿走,我会想,天哪,我们还怎么在互联网上查找东西呢?
Is Stack Overflow still around, is forum still a thing?
Stack Overflow 还存在吗?论坛还存在吗?
How do I even find answers to some of these questions I have all day long?
我怎样才能找到我整天思考的一些问题的答案呢?
I don’t want to give up AI.
我不想放弃人工智能。
In fact, I’d say the way I like to use AI, I’m getting smarter every day because of AI because I’m using AI to have it explain things to me.
事实上,我想说的是,我喜欢使用人工智能的方式,因为人工智能,我每天都变得更聪明,因为我使用人工智能来让它向我解释事情。
1:35:02 Even the stupid questions I would be a little embarrassed to even enter into Google, AI is perfectly willing to give me the ELI5 explanation of some Unix command I should have known already but I don’t.
即使是那些我会有点尴尬地进入 Google 的愚蠢问题,AI 也完全愿意为我提供一些我应该已经知道但我不知道的 Unix 命令的 ELI5 解释。
I’m sorry, can you just explain it to me?
抱歉,您能向我解释一下吗?
Now I know the thing.
现在我知道了。
So at the end of the day, of me working with AI all day long, I’m a little bit smarter, like 5%.
所以归根结底,当我整天与人工智能打交道时,我变得更聪明了一点,大约是 5%。
Sorry, not 5%, half a percent maybe, that compounds over time.
抱歉,不是 5%,也许是 0.5%,随着时间的推移,这个比例会增加。
But what I’ve also seen when I worked on the Omakub project and I tried to let AI drive for me, I felt I was maybe half a percent dumber at the end of the day.
但当我参与 Omakub 项目并尝试让人工智能为我驾驶时,我也看到了,我觉得最终我可能傻了半个百分点。
Okay, you’ve said a lot of interesting things.
好吧,你说了很多有趣的话。
1:35:41 First of all, let’s just start at the very fact that asking dumb questions, if you go to Stack Overflow and ask a dumb question or read somebody else’s dumb question and the answer to it, there’s a lot of judgment there.
首先,让我们从一个事实开始:问愚蠢的问题,如果你去 Stack Overflow 提出一个愚蠢的问题,或者阅读别人的愚蠢问题及其答案,就会有很多判断。
AI, sometimes to an excessive degree, has no judgment.
人工智能有时甚至过度地没有判断力。
It usually says, oh, that’s a great question.
它通常会说,哦,这是一个很好的问题。
To a fault.
错了。
Yeah.
是的。
1:36:02 Oh, that’s wonderful.
哦,那太好了。
Yeah.
是的。
I mean, it’s so conducive to learning.
我的意思是,这对学习非常有帮助。
It’s such a wonderful tool for learning and I too would miss it.
这是一个非常棒的学习工具,我也会想念它的。
It’s a great basically search engine into all kinds of nuances of a particular programming language, especially if you don’t know it that well.
它是一个很棒的基本搜索引擎,可以搜索特定编程语言的各种细微差别,特别是如果您不太了解它的话。
Or APIs you can load in documentation, it’s just so great for learning.
或者您可以在文档中加载 API,这非常适合学习。
For me personally, I mean, on the happiness scale, it makes me more excited to program.
对我个人来说,我的意思是,从幸福的角度来看,它让我对编程更加兴奋。
I don’t know what that is exactly.
我不知道那到底是什么。
Part of that is the …
其中一部分是……
I’m really sorry, Stack Overflow is an incredible website but there is a negativity there.
我真的很抱歉,Stack Overflow 是一个令人难以置信的网站,但那里也存在负面影响。
There’s a judgment there.
那里有一个判断。
It’s just exciting to be with a hype man next to me just saying, yeah, that’s a great idea.
和我旁边的一个炒作人一起说,是的,这是个好主意,真是令人兴奋。
I’ll say, no, that’s wrong, I’ll correct the AI.
我会说,不,这是错误的,我会纠正人工智能。
The AI will say, you’re absolutely right, how did I not think about that?
人工智能会说,你完全正确,我怎么没有想到这一点?
You’re ready to go.
你准备好了。
I’m like, holy shit, I’m having, it’s like a buddy that’s really being positive and is very smart and is challenging me to think.
我想,天哪,我就像一个朋友,他非常积极,非常聪明,并且挑战我的思考。
1:37:12 And even if I never use the code it generates, I’m already a better programmer.
即使我从不使用它生成的代码,我也已经是一个更好的程序员了。
But actually the deeper thing is, for some reason I’m having more fun.
但实际上更深层次的事情是,出于某种原因我玩得更开心。
That’s a really, really important thing.
这是一件非常非常重要的事情。
I like to think of it as a pair programmer for exactly that reason.
正是出于这个原因,我喜欢将其视为结对程序员。
1:37:23 Pair programming came vogue in the 2000s, where you’d have two programmers in front of one machine and you’d push the keyboard between you.
结对编程在 2000 年代流行,两名程序员坐在一台机器前,然后在你们之间按下键盘。
One programmer would be driving, they’d be typing in.
一名程序员会开车,他们会打字。
The other programmer would essentially sit and watch the code, suggest improvements, look something up.
其他程序员基本上会坐下来观看代码,提出改进建议,查找一些东西。
That was a really interesting dynamic.
这是一个非常有趣的动态。
Now unfortunately, I’m an introvert, so I can do that for about five minutes before I want to jump off a bridge.
不幸的是,我是一个内向的人,所以我可以这样做大约五分钟,然后我想跳下桥。
So it doesn’t work for me as a full-time occupation, but AI allows me to have all the best of that experience all the time.
所以它对我来说并不适合作为全职职业,但人工智能让我能够一直拥有最好的体验。
Now, I think what’s really interesting what we said about, it makes it more fun.
现在,我认为我们所说的真正有趣的是,它让它变得更有趣。
I hadn’t actually thought about that, but what it’s made more fun to me is to be a beginner again.
我实际上并没有考虑过这一点,但对我来说更有趣的是再次成为一名初学者。
It made it more fun to learn Bash successfully for the first time.
这让第一次成功学习 Bash 变得更加有趣。
1:38:14 Now, I had to do the detour where I let it write all the code for me, and I realized I wasn’t learning nearly as much as I hoped I would.
现在,我不得不绕道让它为我编写所有代码,并且我意识到我并没有学到我希望的那么多。
That I started doing once I typed it out myself.
我自己打字后就开始这样做。
But it gave me the confidence that, you know what?
但这给了我信心,你知道吗?
If I need to do some iOS programming myself …
如果我需要自己做一些 iOS 编程……
I haven’t done that in, probably six years was the last time I dabbled in it.
我已经没有这样做了,可能是六年前我最后一次涉足它。
I never really built anything for real.
我从来没有真正建造过任何东西。
I feel highly confident now that I could sit down with AI and I could have something in the app store by the end of the week.
我现在非常有信心,我可以坐下来研究人工智能,并且在本周末之前我可以在应用程序商店中找到一些东西。
I would not have that confidence unless I had a pair programming body like AI.
除非我有像人工智能这样的结对编程体,否则我不会有这样的信心。
I don’t actually use it very much for Ruby code.
实际上,我在 Ruby 代码中并不经常使用它。
I’m occasionally impressed whenever I try it, like, oh, it got this one thing right, that is truly remarkable and it’s actually pretty good.
每当我尝试它时,我偶尔都会印象深刻,就像,哦,它做对了这一件事,这真的很了不起,而且实际上非常好。
And then I’ll ask two more questions and I go like, oh yeah, okay, if you were my junior programmer I’d start tapping my fingers and going like, you’ve got to shape up.
然后我会再问两个问题,然后我会说,哦,是的,好吧,如果你是我的初级程序员,我会开始敲击手指,然后说,你必须调整好状态。
1:39:05 Now, the great thing of course is, we can just wait five minutes.
现在,最棒的当然是我们只需等待五分钟。
The Anthropic CEO seems to think that 90% of all code by the end of the year is going to be written by AI.
Anthropic 首席执行官似乎认为,到今年年底,90% 的代码将由人工智能编写。
I’m more than a little bit skeptical about that, but I’m open-minded about the prospect that programming potentially will turn into a horse when done manually.
我对此持怀疑态度,但我对手动完成编程可能会变成一匹马的前景持开放态度。
Something we do recreationally is no longer a mode of transportation to get around LA.
我们的休闲活动不再是游览洛杉矶的一种交通方式。
You’re not going to saddle up and go to the grocery store and pick up stuff from Whole Foods in your saddlebags.
你不会骑上马鞍去杂货店,在你的马鞍包里从全食超市买东西。
That’s just not a thing anymore.
那已经不再是问题了。
That could be the future for programming, for manual programming, entirely possible.
这可能是编程、手动编程的未来,完全有可能。
I also don’t care.
我也不在乎。
Even though we have great renditions of all the best songs, as I said, there are millions of people who love to play the guitar.
正如我所说,尽管我们对所有最好的歌曲都有出色的演绎,但仍有数百万人喜欢弹吉他。
It may no longer have as much economic value as it once did.
它可能不再像以前那样具有那么大的经济价值。
I think that I’m quite convinced is true, that we perhaps have seen the peak.
我认为我非常确信这是真的,我们也许已经看到了顶峰。
1:40:01 Now, I understand the paradox, when the price of something goes down, actually the overall usage goes up, and total spend on that activity goes up.
现在,我理解了这个悖论,当某物的价格下降时,实际上总体使用量上升,并且该活动的总支出上升。
That could also happen maybe.
也许这也可能发生。
But what we’re seeing right now is that a lot of the big shops, a lot of the big companies, are not hiring like they were five years ago.
但我们现在看到的是,很多大商店、很多大公司不再像五年前那样招聘员工。
They’re not anticipating they’re going to need tons more programmers.
他们没有预料到他们会需要更多的程序员。
Controversially, Toby actually put out a memo inside of Shopify asking everyone who’s considering hiring someone to ask the question, could this be done by AI?
颇具争议的是,Toby 实际上在 Shopify 内部发布了一份备忘录,询问所有考虑雇用某人来提问的人,这可以通过人工智能来完成吗?
Now, he’s further ahead on this question than I am.
现在,他在这个问题上比我走得更远。
I look at some of the code and [trenches 01:40:37] and I go like, I’d love to use AI more, and I see how it’s making us more productive.
我查看了一些代码和 [trenches 01:40:37],我想,我很想更多地使用人工智能,并且我看到它如何提高我们的生产力。
But it’s not yet at the level where I just go like, oh, we have this project, let me just give it to the AI agent and it’s going to go off and do it.
但它还没有达到我所说的水平,哦,我们有这个项目,让我把它交给人工智能代理,它就会开始做。
But let’s just be honest, you’re like a Clint Eastwood type character cowboy on a horse seeing cars going around.
但说实话,你就像克林特·伊斯特伍德类型的牛仔骑在马上看到汽车四处行驶。
1:40:47 You’re like, well-
你就像,嗯-
That’s part of it.
这是其中的一部分。
1:40:56 I think it is important to have that humility, that what you are good at may no longer be what society values.
我认为保持谦逊很重要,因为你擅长的事情可能不再是社会所看重的事情。
This has happened a million times in history …
这在历史上已经发生过一百万次了……
that you could have been exceptionally good at saddle making, for example.
例如,你可能非常擅长制作马鞍。
That’s something that a lot of people used to care about because everyone rode a horse.
这是很多人过去关心的事情,因为每个人都骑着马。
And then suddenly riding a horse became this niche hobby, that there’s some people care about it, but not nearly as many.
然后突然间,骑马就成了一种小众爱好,有人关心它,但没有那么多人关心它。
That’s okay.
没关系。
Now, the other thing of this is, I’ve had the good fortune to have been a programmer for nearly 30 years.
现在,另一件事是,我有幸成为一名程序员近 30 年。
That’s a great run.
这是一次很棒的跑步。
I try to look at life in this way, that I’ve already been blessed with decades of economically viable, highly valuable ways of translating what I like best in the working world, to write Ruby code.
我尝试以这样的方式看待生活,几十年来,我已经很幸运地拥有了经济上可行的、非常有价值的方法,可以将我在工作世界中最喜欢的东西转化为编写 Ruby 代码。
That that was so valuable that I could make millions and millions of dollars doing it, and if that’s over tomorrow, I shouldn’t look at that with regret.
那是非常有价值的,我可以通过它赚到数百万美元,如果明天就结束了,我不应该遗憾地看待它。
I should look at it with gratitude.
我应该用感恩的心来看待它。
But you’re also a highly experienced, brilliant and opinionated human …
但你也是一个经验丰富、才华横溢、固执己见的人……
1:42:00 Brilliant and opinionated human being.
才华横溢且固执己见的人。
So it’s really interesting to get your opinion on the future of the horse because there’s a lot of young people listening to this who love programming or who are excited by the possibility of building stuff with software, with Ruby on Rails, that kind of language and now the possibility.
因此,了解您对这匹马的未来的看法真的很有趣,因为有很多年轻人喜欢编程,或者对用软件构建东西的可能性感到兴奋,用 Ruby on Rails,这种语言,现在的可能性。
But is it a career?
但这是一份职业吗?
Is it a career and how if indeed a single person can build more and more and more with the help of AI, how do they learn that skill?
这是一个职业吗?如果一个人确实可以在人工智能的帮助下建造越来越多的东西,他们如何学习这项技能?
1:42:25 Is this a good skill to learn?
这是一个值得学习的好技能吗?
I mean, that to me is the real mystery here because I think it’s still absolutely true that you have to learn how to program from scratch currently, but how do you balance those two skills?
我的意思是,这对我来说是真正的谜团,因为我认为目前你必须学习如何从头开始编程仍然是绝对正确的,但是你如何平衡这两种技能呢?
Because I too, as I’m thinking now, there is a scary slipping away of skill that happens in a matter of really minutes on a particular piece of code.
因为我也一样,正如我现在所想的,在一段特定的代码上,几分钟之内就会发生可怕的技能流失。
It’s scary the way driving when you have a car drive for you doesn’t quite slip away that fast.
当你有一辆汽车为你驾驶时,驾驶方式并不会那么快溜走,这真是太可怕了。
So that really scares me.
所以这真的让我害怕。
When somebody comes up to me and asks me how do I learn to program?
当有人走过来问我如何学习编程时?
I don’t know what the advice is because I think it’s not enough to just use Cursor or Copilot to generate code.
我不知道建议是什么,因为我认为仅使用 Cursor 或 Copilot 生成代码是不够的。
It’s absolutely not enough.
这绝对不够。
1:43:28 Not if you want to learn, none of you want to become better at it.
如果你想学习就不行,你们都不想变得更好。
If you just become a tap monkey, maybe you’re productive in a second, but then you have to realize, well, can anyone just tap if that’s all we’re doing is just sitting around all day long tapping?
如果你只是成为一只敲击猴子,也许你会在一秒钟内变得富有成效,但随后你必须意识到,好吧,如果我们所做的只是整天坐着敲击,那么任何人都可以敲击吗?
Yes, yes, yes, yes, yes.
是的,是的,是的,是的,是的。
That’s not a marketable skill.
这不是一个有市场的技能。
Now, I always preface this both to myself and when I speak to others about it, is rule number note one, nobody fucking knows anything.
现在,我总是向自己和其他人谈论这件事时,这是第一条规则,没有人他妈的知道任何事情。
No one can predict even six months ahead.
没有人能够预测未来六个月的情况。
1:43:58 Right now, we’re probably at peak AI future hype because we see all the promise, because so much of it is real and so many people have experienced it themselves.
现在,我们可能正处于人工智能未来炒作的顶峰,因为我们看到了所有的希望,因为其中很多都是真实的,而且很多人都亲身经历过。
This mind-boggling thing that the silicon is thinking in some way that feels eerily reminiscent of humans.
硅正在以某种令人难以置信的方式思考这一令人难以置信的事情,让人想起人类。
I’d actually say the big thing for me wasn’t even ChatGPT, it wasn’t even Claude.
事实上,我想说对我来说最重要的不是 ChatGPT,也不是 Claude。
It was DeepSeek.
这是 DeepSeek。
Running DeepSeek locally and seeing the think box where it converses with itself about how to formulate the response.
在本地运行 DeepSeek 并查看它与自身对话如何制定响应的思考框。
I almost wanted to think, is this a gimmick?
我差点就想,这是不是一个噱头?
Is it doing this as a performance for my benefit?
这样做是为了我的利益吗?
But that’s not actually how it thinks.
但事实并非如此。
If this is how it actually thinks.
如果它真的这么想的话。
Okay, I’m a little scared.
好吧,我有点害怕。
This is incredibly human how it thinks in this way, but where does that go?
这是非常人性化的思考方式,但是那会去哪里呢?
So in ’95, one of my favorite movies, one of my favorite B movies came out, The Lawnmower Man.
所以在 95 年,我最喜欢的电影之一、我最喜欢的 B 级电影之一《割草机人》问世了。
Great movie,
很棒的电影,
Incredible movie about virtual reality.
关于虚拟现实的令人难以置信的电影。
1:44:57 Being an avatar and living in VR, the story was a mess, but the aesthetics, the world that build up was incredible and I thought, we’re five years away.
作为一个化身并生活在 VR 中,故事很混乱,但美学和所构建的世界令人难以置信,我想,我们还有五年的时间。
I’m going to be living in VR now.
我现在将生活在 VR 中。
I’m just going to be floating around.
我只是随波逐流。
I’m going to be an avatar.
我要成为一个头像。
This is where most humans can spend most of the day.
这是大多数人可以度过一天大部分时间的地方。
That didn’t happen.
但那并没有发生。
We’re 30 years later, VR is still not here.
30 年过去了,VR 仍然没有出现。
It’s here for gaming.
来这里是为了玩游戏。
It’s here for some specialized applications.
它适用于一些特殊的应用程序。
My oldest loves playing Gorilla Tag.
我最大的孩子喜欢玩大猩猩标签游戏。
I don’t know if you’ve tried that.
我不知道你是否尝试过。
That’s basically the hottest VR game.
这基本上是最热门的 VR 游戏。
Wonderful.
精彩的。
It’s great.
这很棒。
It’s really hard to predict the future because we just don’t know.
预测未来真的很难,因为我们不知道。
And then when you factor into AI and you have even the smartest people go like, “I don’t think we fully understand how this works.”
然后,当你考虑人工智能时,即使是最聪明的人也会说,“我认为我们并没有完全理解它是如何工作的。”
But then on the flip side, you have Moore’s law that seems to work for many, many, many years in decreasing the size of transistor, for example.
但另一方面,摩尔定律似乎在缩小晶体管尺寸方面适用了很多很多很多年。
1:45:49 Flash didn’t take over the internet, but Moore’s law worked, so we don’t know which one AI is.
Flash 并没有接管互联网,但摩尔定律发挥了作用,所以我们不知道哪一个 AI 是这样的。
It is what it is.
就是这样。
1:46:07 And this is what I find so fascinating to, I forget who did this presentation, but someone in the web community, this great presentation on the history of the airplane.
这就是我觉得如此令人着迷的地方,我忘记了是谁做的这个演示,而是网络社区中的某个人,这个关于飞机历史的精彩演示。
So you go from the Wright brothers flying in, what was 1903 or something like that, and 40 years later you have a jet flight, just an unbelievable amount of progress in four decades.
莱特兄弟在 1903 年或类似的时候飞来了,40 年后你有了喷气式飞机,这四十年里取得了令人难以置信的进步。
Then in ’56, I think it was, the whole design for the Boeing 747 century precursor was designed and basically nothing has happened since.
然后,我认为是在 56 年,波音 747 世纪前身的整个设计完成了,此后基本上没有发生任何事情。
Just minor tweaks and improvements on the flying experience since the ’50s.
自 50 年代以来,仅对飞行体验进行了细微的调整和改进。
Somehow, if you were to predict where flying was going to go and you were sitting in ’42 and you’d seen, you’d remember the Wright brothers flying in oh three and you were seeing that jet engines coming, you’re like, “We’re going to fly to the stars in another two decades.”
不知何故,如果你要预测飞行将走向何方,而你坐在 42 年,你会记得莱特兄弟在 3 世纪飞行,当你看到喷气发动机即将出现时,你会想,“我们将在另外二十年里飞向星星。”
1:47:04 We’re going to invent super mega hypersonic flights that’s going to traverse the earth in two hours, and then that didn’t happen.
我们打算发明超大型高超音速飞行器,在两小时内穿越地球,但这并没有发生。
It tapped out.
它敲出来了。
This is what’s so hard about predicting the future.
这就是预测未来的困难所在。
We can be so excited in the moment because we’re drawing a line through early dots on a chart, and it looks like those early dots is just going up into the right and sometimes it’s just flattened out.
我们此刻会非常兴奋,因为我们正在图表上的早期点上画一条线,看起来这些早期点刚刚上升到右侧,有时它只是变平了。
This is also one of those things where we have so much critical infrastructure, for example, that still runs on COBOL, that about five humans around the world really understand truly, deeply that it’s possible for society to lose a competence it still needs because it’s chasing the future.
这也是我们拥有如此多的关键基础设施的原因之一,例如,仍然在 COBOL 上运行,世界上大约有五个人真正深刻地理解,社会有可能失去它仍然需要的能力,因为它正在追逐未来。
1:47:44 COBOL is still with us.
COBOL 仍然与我们同在。
This is one of the things I think about with programming.
这是我在编程时思考的事情之一。
Ruby on Rails is at such a level now that in 50 years from now, it’s exceedingly likely that there’s still a ton of Ruby on Rails systems running around now, very hard to predict what that exact world is going to be like, but yesterday’s weather tells us that if there’s still COBOL code from the ’70s operating social security today, and we haven’t figured out a clean way to convert that, let alone understand it, we should certainly be humble about predicting the future.
Ruby on Rails 现在已经达到了这样的水平,50 年后,很可能仍然有大量的 Ruby on Rails 系统在运行,很难预测确切的世界会是什么样子,但昨天的天气告诉我们,如果今天仍然有 70 年代的 COBOL 代码在操作社会保障,而我们还没有找到一种干净的方法来转换它,更不用说理解它了,我们当然应该谦虚地预测未来的情况。未来。
1:48:16 I don’t think any of the programmers who wrote that COBOL code back in the ’70s had any idea that in 2025 checks were still being cut off the business logic that they had encoded back then.
我认为 70 年代编写 COBOL 代码的程序员都不知道,到 2025 年,检查仍然会被切断他们当时编码的业务逻辑。
But that just brings me to the conclusion on the question for what should a young programmer do?
但这只是让我得出一个问题的结论:年轻的程序员应该做什么?
You’re not going to be able to predict the future.
你将无法预测未来。
No one’s going to be able to predict the future.
没有人能够预测未来。
If you like programming, you should learn programming.
如果你喜欢编程,你就应该学习编程。
Now, is that going to be a career forever?
现在,这会成为永远的职业吗?
I don’t know, but what’s going to be a career forever?
我不知道,但是什么才是永远的职业呢?
Who knows?
谁知道?
A second ago we thought that it was the blue-collar labor that was going to be abstracted.
不久前我们还以为蓝领劳动力将被抽象。
First, it was the robots that were going to take over.
首先,机器人将接管一切。
Then Gen AI comes out, and then all the artists suddenly look like, “Holy shit, is this going to do all animation now?
然后Gen AI出来了,然后所有的艺术家突然看起来,“天啊,现在所有的动画都要这样了吗?
Is going to do all music now?”
现在要负责所有音乐吗?”
1:48:59 They get real scared, and now I see the latest Tesla robot going like, “Oh, maybe we’re back now to blue-collar being in trouble because if it can dance like that, it can probably fix a toilet.” So no one knows anything, and you have to then position yourself for the future in such a way that it doesn’t matter that you pick a profession or path where if it turns out that you have to retool and re-skill, you’re not going to regret the path you took.
他们真的很害怕,现在我看到最新的特斯拉机器人会说,“哦,也许我们现在又回到了蓝领的麻烦之中,因为如果它能像那样跳舞,它可能可以修理厕所。”所以没有人知道任何事情,然后你必须以这样一种方式为自己的未来定位,无论你选择一个职业或道路都无关紧要,如果事实证明你必须重新装备和重新技能,你就不会后悔你所选择的道路。
That’s a general life principle.
这是一般的生活原则。
For me, how I look at all endeavors I involved myself in is I want to be content with all outcomes.
对我来说,我如何看待自己参与的所有努力,我希望对所有结果感到满意。
1:49:39 When we start working on a new product at 37 Signals, I set up my mental model for success and I go, “Do you know what?
当我们开始在 37 Signals 开发新产品时,我建立了成功的心理模型,然后我说:“你知道吗?
If no one wants this, I will have had another opportunity to write beautiful Ruby code to explore greenfield domain, to learn something new, to build a system I want, even if no one else wants it.” What a blessing, what a privilege.
如果没有人想要这个,我将有另一次机会编写漂亮的 Ruby 代码来探索新领域、学习新东西、构建一个我想要的系统,即使没有其他人想要它。”这是何等的祝福,何等的特权。
If a bunch of people want it, that’s great.
如果有一群人想要它,那就太好了。
We can pay some salaries, we can keep the business running, and if it’s a blowaway success, wonderful.
我们可以支付一些工资,我们可以保持业务运转,如果取得巨大成功,那就太好了。
I get to impact a bunch of people.
我可以影响很多人。
I think one of the big open questions to me is how far you can get with vibe coding, whether an approach for a young developer to invest most of the time into vibe coding or into writing code from scratch.
我认为对我来说最大的悬而未决的问题之一是,你可以使用 Vivi 编码走多远,无论是年轻开发人员将大部分时间投入到 Vivi 编码还是从头开始编写代码的方法。
1:50:13 So vibe coding, meaning I’m leaning into the meme a little bit, but the vibe coding, meaning you generate code, you have this idea of a thing you want to create, you generate the code and then you fix it with both natural language to the prompts and manually.
所以,振动编码,意味着我有点倾向于模因,但是振动编码,意味着你生成代码,你有你想要创建的东西的想法,你生成代码,然后用自然语言提示和手动修复它。
You learn enough to manually fix it.
您学到的知识足以手动修复它。
So that’s the learning process.
这就是学习过程。
How you fix code that’s generated or you write code from scratch and have the LMS kind of tab, tab, tab, tab, add extra code, like which part do you lean on?
如何修复生成的代码,或者从头开始编写代码,并使用 LMS 类型的选项卡、选项卡、选项卡、选项卡,添加额外的代码,比如您依赖哪一部分?
I think to be safe, you should find the beauty and the artistry and skill in both, right?
我认为为了安全起见,你应该发现两者的美感、艺术性和技巧,对吗?
From scratch, so there should be some percent of your time just writing from scratch and some percent vibe coding.
从头开始,所以你应该有一定比例的时间从头开始编写和一定比例的氛围编码。
There should be more of the time writing from scratch if you are interested in learning how to program.
如果您有兴趣学习如何编程,应该有更多的时间从头开始编写。
1:51:16 Unfortunately, you’re not going to get fit by watching fitness videos.
不幸的是,你无法通过观看健身视频来保持健康。
You’re not going to learn how to play the guitar by watching YouTube guitar videos.
您不会通过观看 YouTube 吉他视频来学习如何弹吉他。
You have to actually play yourself.
你必须真正发挥自己。
You have to do the sit-ups.
你必须做仰卧起坐。
Programming, understanding, learning almost anything requires you to do.
编程、理解、学习几乎任何事情都需要你去做。
Humans are not built to absorb information in a way that transforms into skills by just watching others from afar.
人类生来就不会通过仅仅从远处观察他人来吸收信息并将其转化为技能。
Now, ironically, it seems AI is actually quite good at that, but humans are not.
具有讽刺意味的是,现在看来人工智能实际上在这方面相当擅长,但人类却不然。
If you want to learn how to become a competent programmer, you have to program.
如果你想学习如何成为一名称职的程序员,你就必须编程。
It’s really not that difficult to understand.
这确实不难理解。
Now, I understand the temptation and the temptation is there because vibe coding can produce things perhaps in this moment, especially in new domain, you’re not familiar with tools you don’t know perfectly well that’s better than what you could do or that you would take much longer to get at, but you’re not going to learn anything.
现在,我理解诱惑,诱惑的存在,因为氛围编码可能在此时此刻产生一些东西,尤其是在新领域,你不熟悉你不太了解的工具,这比你能做的更好,或者你需要花更长的时间才能获得,但你不会学到任何东西。
1:52:15 You’re going to learn in this superficial way that feels like learning but is completely empty calories, and secondly, if you can just vibe code it, you’re not a programmer.
你将以这种肤浅的方式学习,感觉就像在学习,但完全是空卡路里,其次,如果你只能通过振动编码,那么你就不是程序员。
Then anyone could do it, which may be wonderful.
那么任何人都可以做到,这可能很棒。
That’s essentially what happened with the Access database.
这基本上就是 Access 数据库所发生的情况。
That’s what happened with Excel.
Excel 就是这样。
It took the capacity of accountants to become software developers because the tools became so accessible to them that they could build a model for how the business was going to do next week that required a programmer prior to Excel.
会计师需要具备成为软件开发人员的能力,因为这些工具对他们来说非常容易使用,以至于他们可以为下周的业务运作建立一个模型,而这需要在 Excel 之前的程序员。
Now, it didn’t because they could do it themselves by coding enables non-programmers to explore their ideas in a way that I find absolutely wonderful, but it doesn’t make you a programmer.
现在,它并没有因为他们可以通过编码自己完成而使非程序员能够以我觉得绝对美妙的方式探索他们的想法,但这并不能让你成为一名程序员。
I agree with you, but I want to allow for room for both of us be wrong.
我同意你的观点,但我想允许我们双方都有犯错的空间。
1:53:02 For example, there could be vibe coding could actually be a skill that if you train it and by vibe coding, let’s include the step of correction, the iterative correction, it’s possible if you get really good at that, that you’re outperforming the people that write from scratch that you can come up with truly innovative things, especially at this moment in history while the LLMs are a little bit too dumb to create super novel things and a complete product, but they’re starting to creep close to that, so if you are investing time now into becoming a really good vibe coder, maybe this is the right thing to do.
例如,振动编码实际上可能是一种技能,如果你训练它,通过振动编码,让我们包括校正步骤,迭代校正,如果你真的很擅长这一点,那么你可能会超越那些从头开始编写的人,你可以想出真正创新的东西,特别是在历史的这个时刻,虽然法学硕士有点太愚蠢了,无法创造超级新奇的东西和完整的产品,但他们已经开始接近这一点,所以如果你投入时间现在成为一名真正优秀的编码员,也许这是正确的做法。
If it’s indeed a skill, we kind of meme about vibe coding, like sitting back and it’s in the name, but if you treat it seriously, a competitive vibe coder and get good at riding the wave of AI and get good at the skill of editing code versus writing code from scratch, it’s possible that you can actually get farther in the long term.
如果这确实是一种技能,我们有点像氛围编码,就像坐下来一样,它就在名字中,但如果你认真对待它,一个有竞争力的氛围编码员,善于驾驭人工智能的浪潮,擅长编辑代码而不是从头开始编写代码的技能,从长远来看,你实际上可能会走得更远。
1:54:12 Maybe editing is a fundamentally different task than writing from scratch if you take that seriously as a skill that you develop.
如果你认真对待编辑作为你培养的一项技能,也许编辑是一项与从头开始写作完全不同的任务。
I see.
我懂了。
To me, that’s an open question.
对我来说,这是一个悬而未决的问题。
I just think I personally, now you’re on another level, but just personally, I’m not as good at editing the code that I didn’t write.
我只是认为就我个人而言,现在你处于另一个水平,但就我个人而言,我不太擅长编辑我没有写的代码。
That’s a different-
这是一个不同的——
No one is.
没有人是。
No one is of this generation, but maybe that’s a skill.
没有人属于这一代人,但这也许是一种技能。
1:54:38 Maybe if you get on the same page as the AI, because there’s a consistency to the AI.
也许如果你与人工智能达成共识,因为人工智能具有一致性。
It’s like it really is a pair of programmers with a consistent style and structure and so on.
就好像真的是一对风格、结构等都一致的程序员。
Plus, with your own prompting, you can control the kind of code you write.
另外,通过您自己的提示,您可以控制您编写的代码类型。
I mean, it could legitimately be a skill.
我的意思是,这可以合法地成为一种技能。
That’s the dream of the prompt engineer.
这就是即时工程师的梦想。
1:54:59 I think it’s complete pipe dream.
我认为这完全是白日梦。
I don’t think editors exist that aren’t good at writing.
我不认为存在不擅长写作的编辑。
I’ve written a number of books.
我写了很多书。
I’ve had a number of professional editors.
我有很多专业编辑。
Not all of them wrote their own great books, but all of them were great writers in some regard.
并非所有人都写了自己的伟大著作,但他们在某些方面都是伟大的作家。
You cannot give someone pointers if you don’t know how to do it.
如果你不知道该怎么做,你就无法给别人指点。
It’s very difficult for an editor to be able to spot what’s wrong with a problem if the data couldn’t make the solution themselves.
如果数据本身无法解决问题,编辑人员就很难发现问题出在哪里。
The capacity to be a good editor is the reward you get from being a good doer.
成为一名优秀编辑的能力是你作为一名优秀实干者所获得的回报。
You have to be a doer first.
你首先必须是一个实干家。
Now, that’s not the same as saying that vibe coding, prompt engineering won’t be able to produce fully formed amazing systems even shortly.
现在,这并不意味着振动编码、即时工程即使在短期内也无法生产出完全成型的令人惊叹的系统。
I think that’s entirely possible, but then there’s no skill left, which maybe is the greatest payoff at all.
我认为这是完全可能的,但是这样就没有任何技能了,这也许是最大的回报。
1:55:57 Wasn’t that the whole promise of AI anyway, that it was just all natural language that even my clumsy way of formulating a question could result in a beautiful succinct answer?
无论如何,这难道不是人工智能的全部承诺吗?它只是自然语言,即使我提出问题的笨拙方式也能得到一个漂亮简洁的答案?
That actually to me is a much more appealing vision that there’s going to be these special prompt engineering wizards who know how to tickle the AI just right to produce what they want.
实际上,对我来说,这是一个更有吸引力的愿景,即将会有这些特殊的即时工程奇才,他们知道如何恰到好处地刺激人工智能来生产他们想要的东西。
The beauty of AI is to think that someone who doesn’t know the first thing about how AI actually works is able to formulate their idea and their aspirations for what they want, and the AI could somehow take that messy clump of ideas and produce something that someone wants.
人工智能的美妙之处在于,那些不了解人工智能实际工作原理的人能够表达他们的想法和对他们想要的东西的渴望,而人工智能可以以某种方式接受那些混乱的想法并产生人们想要的东西。
1:56:35 That’s actually what programming has always been.
这实际上就是编程一直以来的样子。
There’s very often been people who didn’t know how to program, who wanted programs, who then hired programmers, who gave them messy descriptions of what they wanted, and then when the programmers delivered that back said, “Oh, no, actually that’s not what I meant.
经常有一些人不知道如何编程,他们想要程序,然后雇佣了程序员,他们给了他们关于他们想要什么的混乱描述,然后当程序员回复时说:“哦,不,实际上这不是我的意思。
I want else.” AI may be able to provide that cycle if that happens to the fullest extent of it, yeah, there’s not going to be as many programmers around, but hopefully presumably someone still, at least for the foreseeable future, have to understand whether what the AI is producing actually works or not.
我想要别的。”如果这种情况充分发生的话,人工智能也许能够提供这个循环,是的,周围不会有那么多程序员,但希望至少在可预见的未来,仍然有人必须了解人工智能所产生的东西是否真正有效。
As an interesting case study, maybe a thought experiment, if I wanted to vibe code Basecamp or hey, some of the products you’ve built, what would be the bottlenecks?
作为一个有趣的案例研究,也许是一个思想实验,如果我想对 Basecamp 进行编码,或者嘿,你构建的一些产品,瓶颈是什么?
1:57:11 Where would I fail along the way?
一路上我会在哪里失败?
What I’ve seen when I’ve been trying to do this, trying to use vibe coding to build something real is you actually fail really early.
当我尝试这样做时,我看到的是,尝试使用振动编码来构建真实的东西,你实际上很早就失败了。
1:57:30 The vibe coding is able to build a veneer at the current present moment of something that looks like it works, but it’s flawed in all sorts of ways.
氛围编码能够在当前时刻构建一个看起来可行的东西,但它在各个方面都存在缺陷。
There are the obvious ways, the meme ways that it’s leaking all your API keys, it’s storing your password in plain text.
有一些明显的方式,模因方式,它会泄露你的所有 API 密钥,它会以纯文本形式存储你的密码。
I think that’s ultimately solvable.
我认为这最终是可以解决的。
It’s going to figure that out, or at least it’s going to get better at that, but its capacity to get lost in its own Labyrinth is very great right now.
它会解决这个问题,或者至少会在这方面做得更好,但它现在迷失在自己的迷宫中的能力非常强大。
You let it code something and then you want to change something and it becomes a game of Whack-A-Mole real quick.
你让它编码一些东西,然后你想要改变一些东西,它很快就变成了打地鼠游戏。
1:58:09 Pieter Levels who’ve been doing this wonderful flight simulator was talking to that where at a certain scale the thing just keeps biting its own tail.
彼得·莱尔斯(Pieter Levels)一直在做这个精彩的飞行模拟器,他谈到了在一定规模下,这个东西只会不断地咬自己的尾巴。
You want to fix something and it breaks five other things, which I think is actually uniquely human because that’s how most bad programmers are at a certain level of complexity with the domain.
你想要修复一些东西,但它破坏了另外五件事,我认为这实际上是人类独有的,因为这就是大多数糟糕的程序员在领域中处于一定复杂程度的方式。
They can’t fix one thing without breaking three other things, so in that way I’m actually in some way it’s almost a positive signal for that.
他们无法在不破坏其他三件事的情况下解决一件事,所以从某种程度上来说,我实际上这几乎是一个积极的信号。
The AI is going to figure this out because it’s done an extremely human trajectory right now.
人工智能将会解决这个问题,因为它现在已经完成了极其人类化的轨迹。
The kind of mistakes it’s making are the kind of mistakes that junior programmers make all the time.
它所犯的错误是初级程序员经常犯的错误。
Yeah.
是的。
1:58:43 Can we zoom out and look at the vision, the manifesto, the doctrine of Rails?
我们能否缩小范围来审视 Rails 的愿景、宣言和原则?
What are some of the things that make a programming language a framework?
哪些因素使编程语言成为框架?
Great, especially for web development, so we talked about happiness.
太棒了,特别是对于网络开发来说,所以我们谈论了幸福。
Yes.
是的。
The underlying objective of Ruby.
Ruby 的根本目标。
1:59:00 What else?
还有什么?
So you’re looking at the nine points I wrote out in I think 2012 and first, before we dive into them, I want to say the reason I wrote it down is that if you want a community to endure, you have to record its values and you have to record its practices.
所以你正在看我在《我想 2012》中写下的九点,首先,在我们深入探讨它们之前,我想说我写下它的原因是,如果你想让一个社区持久,你必须记录它的价值观,你必须记录它的实践。
1:59:04 If you don’t, eventually you’re going to get enough new people come in who have their own ideas of where this thing should go, and if we don’t have a guiding light helping us to make decisions, we’re going to start flailing.
如果你不这样做,最终你会吸引足够多的新人加入,他们对这件事应该走向何方有自己的想法,如果我们没有指导灯帮助我们做出决定,我们就会开始陷入困境。
We’re going to start actually falling apart.
我们将开始真正崩溃。
I think this is one of the key reasons that institutions of all kinds start falling apart.
我认为这是各种机构开始分崩离析的关键原因之一。
We forget why Chesterton’s fence is there.
我们忘记了为什么切斯特顿的栅栏在那里。
We just go like, why is that fence there?
我们只是想,为什么栅栏在那里?
Let’s yank it out.
让我们把它拉出来。
Oh, it was to keep the wolves out.
哦,原来是为了赶狼啊。
Now we’re all dead.
现在我们都死了。
1:59:49 Oops.
哎呀。
So I wanted to write these things down and if we just take them quick one by one, you talked about optimizing for programmer happiness.
所以我想把这些事情写下来,如果我们把它们一一快速地记下来,你谈到了为了程序员的幸福而优化。
I put that at number one in homage of Matz, and that’s a lot about accepting that there is occasionally a trade-off between writing beautiful code and other things we want out of systems.
我把这一点放在第一位是为了向 Matz 致敬,这很大程度上是因为我们要接受这样一个事实:在编写漂亮的代码和我们想要从系统中得到的其他东西之间偶尔需要进行权衡。
There could be a runtime trade-off.
可能存在运行时间权衡。
There can be a performance trade-off, but we’re going to do it nonetheless.
可能会有性能权衡,但我们仍然会这样做。
We’re also going to allow ambiguity in a way that many programmers by default are uncomfortable with.
我们还将以一种默认情况下许多程序员感到不舒服的方式允许歧义。
I give the example actually here of in the interactive Ruby Shell where you can play with the language or even interact with your domain model.
我在这里给出了交互式 Ruby Shell 中的实际示例,您可以在其中使用该语言,甚至可以与域模型进行交互。
You can quit it in two ways, at least that I found.
你可以通过两种方式退出它,至少我发现是这样。
You can write exit.
可以写退出。
Boom, you’re out of the program.
繁荣,你已经退出计划了。
You can write quit.
你可以写退出。
Boom, you’re out of the program.
繁荣,你已经退出计划了。
2:00:38 They do the same thing.
他们做同样的事情。
We just wrote both exit or the people who built that wrote both exit and quit because they knew humans were likely to pick one or the other.
我们只是写了 exit 或同时写了 exit 和 quit 的人,因为他们知道人类可能会选择其中之一。
Python is the perfect contrast to this.
Python 与此形成了完美的对比。
In the Python interactive protocol, if you write exit, it won’t exit.
Python交互协议中,如果写exit,则不会退出。
It’ll give you a fucking lesson.
它会给你一个他妈的教训。
It’ll basically tell you to read the fucking manual.
它基本上会告诉你阅读该死的手册。
It says, “Use exit() or Ctrl+D i.e. end of file to exit.” I’m like one is very human and another is very engineer, and I mean that both of them in the best possible way.
它说,“使用 exit() 或 Ctrl+D,即文件末尾退出。”我觉得一个人非常人性化,另一个人非常工程师,我的意思是他们都以最好的方式。
Python is pedantic.
Python 是迂腐的。
Python’s the value from the start stated is that there should be preferably one and only one way to do a certain thing.
Python 从一开始就声明的价值是,最好应该有一种且只有一种方法来完成某件事。
Ruby is the complete opposite.
Ruby 则完全相反。
No, we want the full expression that fits different human brains such that it seems like the language is guessing just what they want.
不,我们想要适合不同人类大脑的完整表达,这样语言就好像在猜测他们想要什么。
And part of that is also you described the principle of the least surprise, which is a difficult thing to engineer a language because it’s a subjective thing.
其中一部分也是你描述的最小惊喜原则,这是设计一种语言的一件困难的事情,因为它是一个主观的事情。
Which is why you can’t do it in one way, which is why I used the example of both exit and quit.
这就是为什么你不能以一种方式做到这一点,这就是为什么我使用退出和退出的例子。
2:01:47 The principle of least surprise for some people would be like, “Oh, exit.
对于某些人来说,最不意外的原则是:“哦,退出。
That’s how I get out of the prompt.
这就是我摆脱提示的方法。
For other people, it would be quit.” Why don’t we just do both?
对于其他人来说,就会放弃。”我们为什么不两者都做呢?
Okay, so what’s the convention over configuration?
好的,那么配置约定是什么?
2:02:01 That’s a big one.
那是一件大事。
That’s a big one.
那是一件大事。
2:02:05 That’s a huge one.
这是一个巨大的。
And it was born out of a frustration I had in the early days with especially Java frameworks where when you were setting up a web application framework for Java back in the day, it was not uncommon to literally write right hundreds if not thousands of lines of XML configuration files.
它的诞生源于我早期对 Java 框架的挫败感,当时,当您为 Java 设置 Web 应用程序框架时,从字面上编写数百行甚至数千行 XML 配置文件并不罕见。
Oh, I need this.
哦,我需要这个。
I want the database to use the foreign keys as post underscore ID.
我希望数据库使用外键作为后下划线 ID。
No, no, no.
不,不,不。
I want it as post capital ID.
我想要它作为邮政资本 ID。
Oh, no, no, no.
哦,不,不,不。
You have to do a capital PID.
你必须做一个大写的PID。
There are all these ways where you can configure how foreign relation keys should work in a database and none of them matter.
您可以通过所有这些方法来配置外关系键在数据库中的工作方式,但它们都不重要。
We just need to pick one and then that’s fine, and if pick one and we can depend on it, it becomes a convention.
我们只需要选择一个就可以了,如果选择一个我们可以依赖它,它就成为一种惯例。
If it’s a convention, we don’t have to configure it if we don’t have to configure it, you can get started with you actually care about much quicker.
如果是约定的话,我们不用配置的话,你可以更快地开始你真正关心的事情。
2:02:57 Convention of a configuration is essentially to take that idea that the system should come pre-assembled.
配置约定本质上是采用系统应该预先组装的想法。
I’m not just handing you a box of fucking Legos and asking you to build the Millennium Falcon.
我不只是递给你一盒该死的乐高积木并要求你建造千年隼。
I’m giving you a finished toy.
我给你一个成品玩具。
You can edit, you can change it.
你可以编辑,你可以改变它。
It’s still build out a Legos.
它仍然在建造乐高积木。
You can still take some pieces off and put in some other pieces, but I’m giving you the final product and this cuts against the grain of what most programmers love.
你仍然可以取下一些部分并放入其他一些部分,但我给你的是最终产品,这违背了大多数程序员喜欢的东西。
They love a box of Legos.
他们喜欢一盒乐高积木。
They love to put everything together from scratch.
他们喜欢从头开始将所有东西组合在一起。
They love to make all these detailed little decisions that just don’t matter at all, and I want to elevate that up such that, hey, I’m not trying to take the decisions away from you.
他们喜欢做出所有这些根本不重要的细节小决定,而我想提升这一点,这样,嘿,我并不想剥夺你的决定权。
I just want you to focus on decisions that actually matter that you truly care about.
我只是希望您专注于您真正关心的真正重要的决定。
No one cares about whether it’s post underscore ID or post ID or PID.
没有人关心它是后下划线ID还是后ID或PID。
Yeah, great defaults.
是的,很棒的默认设置。
Yes.
是的。
It’s just a wonderful thing.
这真是一件美妙的事情。
2:03:44 You have all these aspirations, they’re going to do some kind of custom, most beautiful Legos castle that nobody’s ever built from these pieces, but in reality to be productive in most situations, you just need to build the basic thing and then on top of that is where your creativity comes.
你有所有这些愿望,他们会做一些定制的、最美丽的乐高城堡,没有人用这些积木建造过,但实际上,要在大多数情况下保持高效,你只需要建造基本的东西,然后在此之上就是你的创造力的来源。
Absolutely, and I think this is one of those, part of the doctrine that a lot of programmers who get to use Ruby on Rails begrudgingly will acknowledge it’s a nice thing.
当然,我认为这是其中之一,许多不情愿地使用 Ruby on Rails 的程序员都会承认这是一件好事。
2:04:03 Even if they don’t really like it’s hard to beat the attraction to building with Legos from scratch out of programmers.
即使他们并不真正喜欢,也很难击败程序员从头开始用乐高积木进行建造的吸引力。
That’s just what we like.
这正是我们喜欢的。
This is why we’re programmers in the first place because we’d like to put these little pieces together, but we can direct that instinct towards a more productive end of the stack.
这就是我们首先成为程序员的原因,因为我们希望将这些小片段组合在一起,但我们可以将这种本能引导到堆栈的更高效的一端。
Okay.
好的。
2:04:33 What are some of the other ones?
还有哪些其他的?
The menu is omakase.
菜单是 omakase。
2:04:35 It actually comes out of the same principle that great defaults really matter.
它实际上源于同样的原则,即伟大的违约确实很重要。
If you look at everything that’s wrong with the JavaScript ecosystem right now, for example, it is that no one is in charge of the menu.
例如,如果你看看现在 JavaScript 生态系统的所有问题,就会发现没有人负责菜单。
There are a billion different dishes and you can configure just your tailored specific configuration of it, but no one done the work to make sure it all fits together, so you have all these unique problems in the JavaScript ecosystem, for example, there’s probably 25 major ways of just doing the controller layer and then as many of how to talk to the database, so you get this permutation of N times N times N of no one is using the same thing.
有十亿种不同的菜肴,你可以只配置你定制的具体配置,但没有人完成工作来确保它们全部配合在一起,所以你在 JavaScript 生态系统中遇到了所有这些独特的问题,例如,可能有 25 种主要方法来处理控制器层,然后有同样多的方法与数据库通信,所以你得到了 N 乘 N 乘 N 的排列,没有人使用相同的东西。
2:05:17 And if they are using the same thing, they’re only using the same thing for about five minutes, so we have no retained wisdom.
如果他们使用相同的东西,他们只会使用相同的东西大约五分钟,所以我们没有保留的智慧。
We build up no durable skills.
我们没有培养持久的技能。
Rails goes the complete opposite way of saying do you know what?
Rails 的说法完全相反,你知道吗?
Rails is not just a web framework.
Rails 不仅仅是一个 Web 框架。
It is a complete attempt at solving the web problem.
这是解决网络问题的一次完整尝试。
It’s complete attempt at solving everything you need to build a great web application, and every piece of that puzzle should ideally be in the box pre-configured, pre-assembled.
它完全尝试解决构建出色的 Web 应用程序所需的所有问题,并且理想情况下,该难题的每一部分都应该在预配置、预组装的盒子中。
2:05:48 If you want to change some of those pieces later, that’s wonderful, but on day one you’ll get a full menu designed by a chef who really cared about every piece of the ingredient and you’re going to enjoy it, and that’s again one of those things where many programmers think like I know better and they do in some hyperlocal sense of it.
如果你想稍后改变其中的一些部分,那太好了,但在第一天,你会得到一份由真正关心每一种食材的厨师设计的完整菜单,你会喜欢它,这又是许多程序员认为我更了解的事情之一,他们以某种超本地化的方式去做。
Every programmer knows better.
每个程序员都更清楚。
This is what Ruby is built on, that every programmer knows better in their specific situation.
这就是 Ruby 的构建基础,每个程序员都更了解自己的具体情况。
Maybe they can do something dangerous, maybe they think they know better and then they blow their foot off and then they truly will know better because they’ve blown their foot off once and won’t do it again.
也许他们可以做一些危险的事情,也许他们认为自己知道得更清楚,然后他们把脚打断,然后他们真的会知道得更清楚,因为他们已经把脚打断了一次,不会再这样做了。
But the menu on omakase is that.
但 omakase 的菜单就是这样的。
So you in general see the value in the monolith?
那么您总体上看到了单体应用的价值吗?
Yes.
是的。
2:06:32 The integrated system.
集成系统。
Integrated-
综合-
That someone thought of the whole problem.
有人想到了整个问题。
2:06:35 This is one of the reasons why I’ve been on a crusade against microservices since the term was coined.
这就是自从微服务这个术语被创造以来我一直致力于反对微服务的原因之一。
Microservices was born out of essentially a good idea.
微服务的诞生本质上是一个好主意。
What do you do at Netflix scale when you have thousands of engineers working on millions of lines of code?
当你有数千名工程师处理数百万行代码时,在 Netflix 规模上你会做什么?
No one can keep that entire system in their head at one time.
没有人能够一次性将整个系统牢记在心。
You have to break it down.
你必须把它分解。
Microservices can be a reasonable way to do that when you’re at Netflix scale.
当您达到 Netflix 规模时,微服务可能是一种合理的方法。
When you apply that pattern to a team of 20 programmers working on a code base of half a million lines of code, you’re an idiot.
当你将这种模式应用到一个由 20 名程序员组成的团队,负责处理 50 万行代码的代码库时,你就是个白痴。
You just don’t need to turn method invocations into network calls.
您只是不需要将方法调用转换为网络调用。
It is the first rule of distributed programming.
这是分布式编程的第一条规则。
Do not distribute your programming.
请勿分发您的程序。
It makes everything harder.
这让一切变得更加困难。
All the failure conditions you have to consider as a programmer just becomes infinitely harder when there’s a network cable involved, so I hate the idea of premature decomposition and microservices is exactly that.
当涉及到网络电缆时,作为程序员必须考虑的所有故障条件都会变得无限困难,所以我讨厌过早分解的想法,而微服务正是如此。
2:07:35 The monolith says let’s try to focus on building a whole system that a single human can actually understand and push that paradigm as far as possible by compressing all the concepts such that more of it will fit into memory of a single operating human, and then we can have a system where I can actually understand all of Basecamp.
这个巨石说,让我们尝试专注于构建一个单个人可以真正理解的整个系统,并通过压缩所有概念来尽可能地推动该范式,以便更多的内容适合单个操作人员的记忆,然后我们可以拥有一个我可以真正理解整个 Basecamp 的系统。
I can actually understand all of HEY.
我其实可以理解所有的嘿。
Both of those systems are just over a hundred thousand lines of code.
这两个系统都只有十万多行代码。
I’ve seen people do this that maybe twice, maybe three times that scale and then it starts breaking down.
我见过有人这样做,规模可能是两倍、三倍,然后就开始崩溃。
Once you get north of certainly half a million lines of code, no individual human can do it, and that’s when you get into maybe some degree of microservices can make sense.
一旦你的代码超过了 50 万行,没有人可以做到,这时你进入某种程度的微服务可能就有意义了。
Basecamp and HEY are both a hundred thousand?
Basecamp和HEY都是十万?
A hundred thousand lines of code.
十万行代码。
Wow.
哇。
2:08:15 It’s small.
它很小。
It’s considering the fact that Basecamp I think has something like 420 screens, different ways and configurations.
考虑到 Basecamp 我认为有 420 个屏幕、不同的方式和配置。
Do you include the front end in that?
你包括前端吗?
No, that’s the Ruby code.
不,那是 Ruby 代码。
2:08:25 Well, it’s front end in the sense that some of that Ruby code is beneficial to the front end, but it’s not JavaScript for example.
好吧,从某种意义上说,它是前端,因为某些 Ruby 代码对前端有益,但它不是 JavaScript。
Now, the other thing we might talk about later is we write very little JavaScript actually for all of our applications.
现在,我们稍后可能会讨论的另一件事是,我们实际上为所有应用程序编写了很少的 JavaScript。
HEY, which is a Gmail competitor.
嘿,这是 Gmail 的竞争对手。
Gmail ships I think 28 of uncompressed JavaScript.
Gmail 附带了 28 个未压缩的 JavaScript。
If you compress it, I think it’s about six megabytes, 28 megabytes.
如果压缩的话,我想大概是六兆、28兆。
Think about how many lines of code that is.
想想有多少行代码。
2:08:48 When HEY launched, we shipped 40 kilobytes.
当 HEY 推出时,我们发货了 40 KB。
It’s trying to solve the same problem.
它正在尝试解决同样的问题。
You can solve the email client problem with either 28 megabytes of uncompressed JavaScript or with 40 kilobytes if you do things differently, but that comes to the same problem essentially.
您可以使用 28 MB 未压缩的 JavaScript 解决电子邮件客户端问题,如果您采取不同的方式,则可以使用 40 KB 来解决电子邮件客户端问题,但这本质上会带来相同的问题。
This is why I have fiercely fought splitting front end and back end.
这就是我激烈对抗前后端分离的原因。
Apart that in my opinion, this was one of the great crimes against web development that we are still atoning for that we separated and divided what was and should be a unified problem solving mechanism.
除此之外,在我看来,这是对网络开发的重大罪行之一,我们仍在赎罪,因为我们分离和划分了曾经和应该是统一的问题解决机制。
When you are working both on front end and back end, you understand the whole system and you’re not going to get into these camps that decompose and eventually you end up with shit like GraphQL.
当你同时从事前端和后端工作时,你了解整个系统,你不会陷入这些分解的阵营,最终你会得到像 GraphQL 这样的狗屎。
Okay.
好的。
2:09:36 Let’s fly through the rest of the doctrine.
让我们快速浏览一下该学说的其余部分。
No one paradigm.
没有一个范例。
No one paradigm goes to the fact that Ruby is a fiercely object-oriented programming language at its core, but it’s also a functional programming language.
没有任何范式表明 Ruby 的核心是一种极其面向对象的编程语言,但它也是一种函数式编程语言。
2:09:44 This five times I told you about, you can essentially do these anonymous function calls and you can chain them together very much in the spirit of how true functional programming languages work, Ruby has even moved closer towards the functional programming and of the scale by making strings immutable.
我已经告诉过你五次了,你基本上可以执行这些匿名函数调用,并且可以本着真正的函数式编程语言的工作原理将它们链接在一起,Ruby 甚至通过使字符串不可变而更接近函数式编程和规模。
There are ideas from all different disciplines of an all different paradigms of software development that can fit together.
来自不同学科、不同软件开发范式的想法可以组合在一起。
Smalltalk, for example, was only object-oriented and that was just it.
例如,Smalltalk 只是面向对象的,仅此而已。
Ruby tries to be mainly object-oriented, but borrow a little bit of functional programming, a little bit of imperative programming, be able to do all of that.
Ruby 试图主要面向对象,但借用一点函数式编程、一点命令式编程,就能做到所有这些。
Rails tries to do the same thing.
Rails 试图做同样的事情。
We’re not just going to pick one paradigm and run it through everything.
我们不会只是选择一种范式并将其应用于所有事情。
2:10:35 Object orientation is at the center of it, but it’s okay to invite all these other disciplines in.
面向对象是它的核心,但邀请所有其他学科也没关系。
It’s okay to be inspired.
受到启发是可以的。
It’s okay to remix it.
重新混合一下就可以了。
I actually think one of the main benefits of Rails is that it’s a remix.
事实上,我认为 Rails 的主要好处之一是它是一种混音。
I didn’t invent all these ideas.
所有这些想法都不是我发明的。
I didn’t come up with ActiveRecord.
我没有想出 ActiveRecord。
I didn’t come up with the MVC way of dividing an application.
我没有想出 MVC 的方式来划分应用程序。
I took all the great ideas that I had learned and picked up from every different camp and I put it together.
我把从每个不同的阵营中学到和学到的所有伟大想法整合在一起。
Not because there was going to be just one single overarching theory of everything, but I was going to have a cohesive unit that incorporated the best from everywhere.
并不是因为一切都只有一个总体理论,而是因为我将拥有一个有凝聚力的单位,融合了世界各地最好的理论。
Is that idea a bit at tension with the beauty of the monolith system?
这个想法是否与整体系统的美丽有点冲突?
I think the monolith can be thought of as quite roomy, quite as a big tent that the monolith needs actually to borrow a little bit of functional programming for the kinds of problems that that excels, that discipline excels its solving and that paradigm excels its solving.
我认为单体可以被认为是非常宽敞的,就像一个大帐篷,单体实际上需要借用一点函数式编程来解决那些擅长的问题,该学科擅长其解决,该范式擅长其解决。
2:11:15 If you also want object orientation at its core, I actually think when I’ve looked at functional programming languages, there’s a lot to love and then I see some of the crazy contortions they have to go through when part of the problem they’re solving calls for mutating something and you go like, “Holy shit, this is a great paradigm from 90% of the problem, and then you’re twisting yourself completely out of shape when you try to solve the last 10.”
如果你也想以面向对象为核心,我实际上认为,当我研究函数式编程语言时,有很多值得喜欢的地方,然后我看到当他们正在解决的问题的一部分需要改变某些东西时,他们必须经历一些疯狂的扭曲,你会说,“天哪,这是 90% 问题的一个伟大范例,然后当你试图解决最后 10 个问题时,你就完全扭曲了自己。”
Ooh, Exalt beautiful code is the next one.
哦,下一篇是赞美美丽的代码。
We’ve talked about that at length and here’s a great example that really summarizes the main specific language quality of Ruby on Rails that you can make code actually pleasant to write and read, which is really funny to me because as we talked about when I started learning programming, it wasn’t even a consideration.
我们已经详细讨论过这个问题,这里有一个很好的例子,它真正总结了 Ruby on Rails 的主要特定语言质量,您可以使代码真正令人愉快地编写和阅读,这对我来说真的很有趣,因为正如我们在我开始学习编程时讨论的那样,它甚至没有被考虑在内。
2:12:03 I didn’t even know that that could be part of the premise, that that could be part of the solution that writing code could feel as good as writing a poem.
我什至不知道这可能是前提的一部分,这可能是解决方案的一部分,即编写代码感觉就像写一首诗一样好。
Class project, application record belongs to account has many participants, class name person, validates presence of name.
类项目,申请记录所属帐户有多个参与者,类名人员,验证姓名是否存在。
See, you could read it out.
你看,你可以读出来。
2:12:41 You didn’t even change anything.
你甚至没有改变任何东西。
Like a haiku or something.
比如俳句之类的。
Right.
正确的。
2:12:45 Isn’t that beautiful?
那不是很漂亮吗?
Yeah, it’s nice.
是的,这很好。
2:12:47 It’s really nice.
真的很好。
There’s an intuitive nature to it.
它有一种直观的本质。
Okay, so I have specific questions there.
好的,我有具体的问题。
I mean ActiveRecord, just to take that tangent, that has to be your favorite feature.
我的意思是 ActiveRecord,只是为了切题,这必须是您最喜欢的功能。
It’s the crown jewel of Rails.
它是 Rails 皇冠上的宝石。
2:13:00 It really is.
确实如此。
It’s the defining characteristic of how to work with Ruby on Rails.
这是如何使用 Ruby on Rails 的定义特征。
And it’s born in an interesting level of controversy because it actually uses a pattern that had been described by Martin Fowler in the patterns of enterprise application architecture.
它诞生于一个有趣的争议之中,因为它实际上使用了 Martin Fowler 在企业应用程序架构模式中描述的模式。
One of the greatest books for anyone working on business systems and if you had not read it, you must pick it up immediately.
对于任何从事业务系统的人来说,这是最伟大的书籍之一,如果您还没有读过它,您必须立即拿起它。
Patterns of enterprise application architecture, I think it was published in 2001.
企业应用程序架构模式,我认为它是在 2001 年发布的。
It is one of the very few programming books that I have read many times over.
这是我读了很多遍的极少数编程书籍之一。
It’s incredible in it.
这其中令人难以置信。
Martin describes a bunch of different patterns of how to build business systems essentially.
Martin 描述了如何从本质上构建业务系统的一系列不同模式。
An ActiveRecord is a little bit of a footnote in there.
ActiveRecord 是其中的一个脚注。
The pattern is literally called ActiveRecord.
该模式字面上称为 ActiveRecord。
You can look it up.
你可以查一下。
It’s called ActiveRecord.
它称为 ActiveRecord。
I wouldn’t even creative enough to come up a name of my own, but it allows the creation, the marriage of database and object orientation in a way that a lot of programmers find a little off-putting.
我什至没有足够的创造力来想出自己的名字,但它允许数据库和面向对象的创建、结合,这种方式让很多程序员觉得有点令人反感。
2:14:04 They don’t actually want to pollute the beautiful object-oriented nature of that kind of programming with SQL.
他们实际上并不想破坏这种使用 SQL 进行编程的美丽的面向对象的本质。
There was a rant by Uncle Bob the other day about how SQL is the worst thing ever.
有一天,Bob 叔叔咆哮道 SQL 是有史以来最糟糕的东西。
Okay, fine, whatever.
好吧,好吧,无论如何。
I don’t care.
我不在乎。
This is practical.
这很实用。
We are making crud applications.
我们正在制作 CRUD 应用程序。
You’re taking things out of an HTML form and you’re sticking them into a database.
您从 HTML 表单中取出内容并将它们粘贴到数据库中。
It’s not more complicated than that.
没有比这更复杂的了。
The more abstractions you put in between those two ends of the spectrum, the more you’re just fooling yourself.
你在光谱的两端之间投入的抽象越多,你就越是在欺骗自己。
This is what we’re doing.
这就是我们正在做的事情。
We’re talking to SQL databases.
我们正在谈论 SQL 数据库。
2:14:39 By the way, quick aside, SQL was one of those things that have endured the onslaught of NoSQL databases structured list data for a better part of a decade and still reign supreme.
顺便说一句,SQL 是在过去十年的大部分时间里经受住了 NoSQL 数据库结构化列表数据的冲击并且仍然占据主导地位的事物之一。
SQL was a good thing to invest your time in learning.
SQL 是投入时间学习的好东西。
Every program I’m working with the web should know SQL to a fair degree, even if they’re working with an ORM, an object relational mapper as ActiveRecord, you still need to understand SQL.
我使用的每个网络程序都应该在相当程度上了解 SQL,即使它们使用 ORM、ActiveRecord 等对象关系映射器,您仍然需要了解 SQL。
What ActiveRecord does is not so much try to abstract the SQL away behind a different kind of paradigm.
ActiveRecord 所做的并不是尝试将 SQL 抽象到不同类型的范例后面。
It’s just making it less cumbersome to write, making it more amenable to build domain models on top of other domain models in a way, since you don’t have to write every SQL statement by hand.
它只是让编写变得不那么麻烦,让在其他域模型之上构建域模型变得更容易,因为您不必手动编写每个 SQL 语句。
Let’s just say that ActiveRecord is an ORM, which is a layer that makes it intuitive and human interpretable to communicate with a database.
可以说 ActiveRecord 是一个 ORM,它是一个使与数据库通信变得直观且易于人类解释的层。
Even simpler than that.
甚至比那更简单。
2:15:33 It turns tables into classes and rows into objects.
它将表转换为类,将行转换为对象。
I actually think SQL is very easy to understand most of it.
我实际上认为 SQL 的大部分内容都很容易理解。
You can write some SQL golf too, that’s very hard to understand, but SQL at its base and much of the criticism against SQL was it was written for human consumption.
你也可以写一些 SQL 高尔夫球,这很难理解,但 SQL 的基础以及对 SQL 的许多批评是它是为人类消费而编写的。
It’s actually quite verbose, especially if you’re doing things like inserts over and over again.
它实际上非常冗长,尤其是当您一遍又一遍地执行插入之类的操作时。
It’s quite verbose.
这是相当冗长的。
Insert into table, parentheses, enumerate every column you want to insert, values, parentheses.
插入表、括号、枚举要插入的每一列、值、括号。
2:16:00 In every column you want to insert values, parentheses, every value that fits with that column, it gets tedious to write SQL by hand, but it’s actually very humanly readable.
在您想要插入值、括号以及适合该列的每个值的每一列中,手动编写 SQL 会很乏味,但实际上非常容易阅读。
ActiveRecord just takes that tediousness away, it makes it possible to combine things in a way that a humanly describable language just doesn’t.
ActiveRecord 消除了这种乏味,它使得以人类可描述的语言无法做到的方式组合事物成为可能。
It composes things into methods and you can combine these methods and you can build structures around them.
它将事物组合成方法,您可以组合这些方法,并可以围绕它们构建结构。
I don’t dislike SQL, I just like a lot of things in programming, I try to get rid of them.
我并不是不喜欢SQL,我只是喜欢编程中的很多东西,我试图摆脱它们。
SQL wasn’t really one of them, it was just a sense of, “I don’t want to write the same thing over and over again.” It was a, “Can we be a little more succinct?
SQL 并不是真正的其中之一,它只是一种“我不想一遍又一遍地写同样的东西”的感觉。这是一个,“我们可以更简洁一点吗?
Can we match it just slightly better to the object orientation without trying to hide away the fact that we’re persisting these objects into a database?”
我们能否将其与面向对象更好地匹配,而不试图隐藏我们将这些对象持久保存到数据库中的事实?”
2:16:47 That’s where I think a lot of ORMs went wrong.
我认为这就是很多 ORM 出错的地方。
They tried to live in the pure world of objects, never to consider that those objects had to be consistent into a SQL database, and then they came up with convoluted way of translating back and forth.
他们试图生活在纯粹的对象世界中,从不考虑这些对象必须与 SQL 数据库保持一致,然后他们想出了复杂的来回转换方式。
ActiveRecord says, “You know what?
ActiveRecord 说:“你知道吗?
Just accept it.” This record, this object is not going to get saved into some no-SQL database, it’s going to be saved into SQL database, so just structure the whole thing around that.
就接受吧。”这个记录,这个对象不会被保存到一些非 SQL 数据库中,它会被保存到 SQL 数据库中,所以只需围绕它构建整个事情。
It’s going to have attributes, those attributes are going to respond to columns in the database.
它将具有属性,这些属性将响应数据库中的列。
It’s not more complicated than that stuff making it so.
它并不比造成这种情况的东西更复杂。
Yeah, but I should say, I personally love SQL, because I’m an algorithms person, so I love optimization, I love to know how the databases actually work, so I can match the SQL queries and the design of the tables such that there is optimal…
是的,但我应该说,我个人喜欢 SQL,因为我是一个算法人员,所以我喜欢优化,我喜欢知道数据库实际上是如何工作的,所以我可以匹配 SQL 查询和表的设计,以便有最佳的......
2:17:22 Squeeze the optimal performance out of the table.
从表中挤出最佳性能。
Okay.
好的。
Based on the actual way that that table is used.
基于该表的实际使用方式。
I think that pushes to the point that there is value in understanding SQL.
我认为这表明理解 SQL 是有价值的。
I wonder, because I started looking at ActiveRecord and it looks really awesome.
我想知道,因为我开始研究 ActiveRecord,它看起来真的很棒。
Does that make you lazy?
这会让你变得懒惰吗?
Not you, but a person that rolls in and starts using Rails, you can probably get away with never really learning SQL, right?
不是你,而是一个开始使用 Rails 的人,你可能永远不会真正学习 SQL,对吗?
As long as you want to stay at the entry level of competence.
只要您想停留在入门级能力即可。
2:18:10 This is actually my overarching mission with Rails, is to lower the barrier of entry so far down that someone can start seeing stuff on their browser without basically understanding anything.
这实际上是我对 Rails 的首要任务,就是降低进入门槛,让人们无需基本理解任何内容就可以开始在浏览器上看到内容。
They can run Rails, new blog, run a couple of generators.
他们可以运行 Rails、新博客、运行几个生成器。
They have a whole system…
他们有一整套系统……
They don’t understand anything, but it’s an invitation to learn more.
他们什么都不懂,但这是一个了解更多的邀请。
Where I get fired up, and this ties back to the AI discussion, is when that’s turned into this meme that programmers no longer have to be competent.
我感到兴奋的地方,这又与人工智能的讨论联系在一起,那就是当它变成这样的模因时,程序员不再需要有能力。
“The AI is going to figure it out, the generators is going to figure it out.
“人工智能会解决这个问题,发电机也会解决这个问题。
I don’t need to know SQL, ActiveRecord is going to abstract it away from me.” No, no, no.
我不需要了解 SQL,ActiveRecord 会将其从我手中抽象出来。”不,不,不。
Dude, hold up.
伙计,坚持住。
The path here is competence.
这里的路径是能力。
I’m trying to teach you things.
我正在尝试教你一些东西。
2:18:58 I understand I can’t teach you everything in five minutes.
我知道我无法在五分钟内教你所有内容。
No one who’s ever become good at anything worthwhile could be taught everything in five minutes.
没有人能够在五分钟内学会所有有价值的事情。
If you want to be a fully well-rounded application developer, that takes years, but you can actually become somewhat productive in a few days, you can have fun in a few days.
如果您想成为一名全面发展的应用程序开发人员,这需要数年时间,但实际上您可以在几天内变得有些生产力,您可以在几天内享受乐趣。
For sure, you’re going to have fun in a few minutes, in a few hours, and over time, I can teach you a little more.
当然,几分钟、几个小时后你就会享受到乐趣,随着时间的推移,我可以教你更多东西。
ActiveRecord says like, “Yeah, yeah.
ActiveRecord 说:“是的,是的。
All right, start here and then, next week, we’ll do a class on SQL.”
好吧,从这里开始,然后,下周,我们将开设有关 SQL 的课程。”
Actually, you have this beautiful expression that I love.
事实上,你有我喜欢的美丽表情。
2:19:30 That a great programming language, like Ruby, has a soft ramp, but the ramp goes to infinity.
优秀的编程语言,比如 Ruby,有一个软斜坡,但斜坡会达到无穷大。
That’s exactly right.
完全正确。
Yeah.
是的。
2:19:40 It’s super accessible, super easy to get started-
它超级容易上手,超级容易上手 -
And it never stops.
而且它永远不会停止。
Yeah.
是的。
There’s always more to learn.
总是有更多东西需要学习。
2:19:45 This is one of the reasons I’m still having fun programming, that I’m still learning new things, I can still incorporate new things.
这是我仍然享受编程乐趣的原因之一,我仍然在学习新事物,我仍然可以融入新事物。
The web is deep enough as a domain, you never going to learn all of it.
网络作为一个领域已经足够深入,你永远无法了解所有内容。
Provide sharp knives.
提供锋利的刀具。
This is a good one, because another way of saying this…
这是一个很好的,因为另一种说法......
2:19:58 The opposite way of saying this, the Java way of saying is, “Do not provide foot guns,” right?
相反,Java 的说法是“不要提供脚枪”,对吗?
Yeah.
是的。
I don’t want to give you a sharp knife.
我不想给你一把锋利的刀。
2:20:06 You’re a child, you can’t handle a sharp knife.
你还是个孩子,你拿不了一把锋利的刀。
Here’s a dull butter knife, cut your damn steak, right?
这是一把钝黄油刀,切你那该死的牛排,对吧?
That’s a very frustrating experience.
这是一次非常令人沮丧的经历。
You want a sharp knife, even though you might be able to cut yourself.
你需要一把锋利的刀,即使你可能会割伤自己。
I trust humans in the same way that maths trust humans.
我信任人类就像数学信任人类一样。
Maybe you cut off a finger.
也许你砍掉了一根手指。
All right, you’re not going to do that again.
好吧,你不会再这样做了。
Thankfully, if it was a virtual finger, it’s going to grow back out.
值得庆幸的是,如果它是虚拟手指,它会重新长出来。
Your competence is going to grow, it’s more fun to work with sharp tools.
你的能力将会增长,使用锋利的工具工作会更有趣。
That actually contributes to the ramp that goes to infinity.
这实际上有助于达到无穷大的斜坡。
Yes, to the learning.
是的,为了学习。
Value-integrated systems.
价值集成系统。
We hit on that one.
我们找到了那个。
2:20:42 Rails is trying to solve the whole problem of the web, not just one little component.
Rails 试图解决网络的整个问题,而不仅仅是一个小组件。
It’s not leaving you a bunch of pieces you have to put together yourself.
它不会给你留下一堆必须你自己组装的碎片。
Progress over stability.
进步胜过稳定。
You know what?
你知道吗?
2:20:52 If there’s one that’s dated, it’s probably that one.
如果有一个已过时的,很可能就是那个。
At this stage, Rails has been incredibly stable over many, many generations.
在这个阶段,Rails 在很多很多代中都非常稳定。
The last major release, Rails 8, was basically a no-op upgrade for anyone running Rails 7.
最后一个主要版本 Rails 8 对于运行 Rails 7 的任何人来说基本上都是无操作升级。
Rails 7 was almost a no-op upgrade for anyone running Rails 6.
对于任何运行 Rails 6 的人来说,Rails 7 几乎都是无操作升级。
I used to think it required more churn to get progress, to stay on the leading edge of new stuff, and I wrote this before I experienced the indignity of the 2010s in the JavaScript community, where it seemed like stability was not just unvalued, it was actually despised.
我曾经认为需要更多的改动才能取得进步,才能保持在新事物的领先地位,而我在经历 2010 年代 JavaScript 社区的侮辱之前写了这篇文章,在那里,稳定性似乎不仅不受重视,而且实际上受到鄙视。
The churn in and of itself was a value we should be pursuing.
流失本身就是我们应该追求的价值。
If you were still working with the same framework three months later, you were an idiot, and I saw that and I actually recoiled.
如果三个月后你还在使用同一个框架,那你就是个白痴,我看到了这一点,我真的退缩了。
If I was going to write the doctrine today, I’d write that differently.
如果我今天要写这个教义,我会用不同的方式写。
I wouldn’t say, “Progress over stability.”
我不会说“进步高于稳定”。
Maybe it’d be a function of the age of the programming language also.
也许这也是编程语言时代的一个功能。
Maybe or a deeper understanding of the problem.
也许还是对问题有更深入的认识。
2:21:55 I think part of what’s so fascinating about technology is that we have this perception that everything constantly moves so fast.
我认为技术如此令人着迷的部分原因在于我们有这样一种观念,即一切都在不断地快速变化。
No, it doesn’t.
不,事实并非如此。
Everything moves at a glacial pace.
一切都进展缓慢。
There is occasionally a paradigm shift, like what’s happening with AI right now, like what happened with the introduction of the iPhone in 2007, like what happened with the internet in ’95.
偶尔会出现范式转变,就像现在的人工智能所发生的事情,就像 2007 年 iPhone 的推出所发生的事情,就像 95 年互联网所发生的事情一样。
That’s basically the total sum of my career, three things changed.
这基本上就是我职业生涯的总和,三件事发生了变化。
Everything else in between was incremental small improvements.
其间的其他一切都是渐进的小改进。
You can recognize a Rails application written in 2003.
您可以认出 2003 年编写的 Rails 应用程序。
I know, because the Basecamp I wrote back then is still operating, making millions of dollars in ARR, servicing customers on the initial version that was launched back then, and it looks like the Rails code, if I squint a little, that I would write today.
我知道,因为我当时写的 Basecamp 仍在运行,在 ARR 中赚取了数百万美元,为当时推出的初始版本的客户提供服务,而且如果我仔细观察一下,它看起来就像我今天会写的 Rails 代码。
Most things don’t change, even in computing, and that’s actually a good thing.
大多数事情都不会改变,即使在计算领域也是如此,这实际上是一件好事。
We saw with the JavaScript ecosystem, what happens when everyone gets just mad about constant churn.
我们在 JavaScript 生态系统中看到,当每个人都对持续的流失感到愤怒时会发生什么。
Things don’t change that often.
事情不会经常改变。
By the way, on that small tangent, you just visibly verbally changed your mind with the you of 15 years ago?
顺便说一下,在那个小切线上,你只是在口头上明显改变了对15年前的你的看法?
Yes.
是的。
That’s interesting.
那很有意思。
2:23:10 Have you noticed yourself changing your mind quite a bit over the years?
您是否注意到这些年来自己的想法发生了很大的变化?
I would say, “Oh, yes,” and then also, “Oh, no,” in the sense that there are absolutely fundamental things both about human nature, about institutions, about programming, about business that I’ve changed my mind on, and then I’ve also had experiences that are almost even more interesting, where I thought I had changed my mind and I tried it a new way, realized why I had the original opinion in the first place, and then gone back to it.
我会说,“哦,是的”,然后也会说“哦,不”,因为关于人性、关于制度、关于编程、关于商业的绝对基本的事情我改变了主意,然后我也有过几乎更有趣的经历,我以为我已经改变了主意,我尝试了一种新的方式,意识到为什么我一开始有原来的观点,然后又回到了原来的观点。
2:23:17 It happens both ways.
它是双向发生的。
An example of the later part, for example, was managers at 37 Signals.
例如,后一部分的一个例子是 37 Signals 的经理。
For the longest time, I would rail against engineering managers as an unnecessary burden on a small or even medium-sized company, and at one point, I actually started doubting myself a little bit.
在很长一段时间里,我都会抱怨工程经理是小型甚至中型公司不必要的负担,有一次,我实际上开始有点怀疑自己。
I started thinking like, “Do you know what?
我开始这样想:“你知道吗?
Maybe all programmers do need a one-on-one therapy session every week with their engineering manager to be a whole individual.”
也许所有程序员都需要每周与他们的工程经理进行一对一的治疗,才能成为一个完整的人。”
2:24:11 We tried that for a couple of years where we hired some very good engineering managers who did engineering management the way you’re supposed to do it, the way it’s done all over the place, and after that, I thought, “No.
我们尝试了几年,聘请了一些非常优秀的工程经理,他们按照你应该做的方式进行工程管理,到处都是这样做的方式,在那之后,我想,“不。
No, I was right.
不,我是对的。
This was correct, we should not have had managers.” Not every programmer needs a therapy session with an engineering manager every week, we don’t need these endlessly scheduled huddles, we don’t need all these meetings.
这是正确的,我们不应该有经理。”并不是每个程序员都需要每周与工程经理进行一次治疗,我们不需要这些无休止的会议,我们不需要所有这些会议。
We just need to leave people the hell alone to work on problems that they enjoy for long stretches of uninterrupted time.
我们只需让人们独自去解决他们喜欢长时间不受干扰的问题即可。
That is where happiness is found, that’s where productivity is found, and if you can get away with it, you absolutely should.
这就是幸福的所在,也是生产力的所在,如果你能侥幸逃脱,那你绝对应该这么做。
Engineering management is a necessary evil when that breaks down.
当这种情况发生时,工程管理是一种不可避免的罪恶。
What’s the case for managers then?
那么管理者的情况又如何呢?
The case for managers is that, if you do have a lot of people, there’s a bunch of work that just crops up.
对于管理者来说,如果你确实有很多人,那么就会有大量的工作突然出现。
2:24:57 The one-on-one is one example, that programmers need someone to check in with, there’s another idealized version that someone needs to guide the career of juniors, for example, to give them redirecting feedback, and all this other stuff.
一对一是一个例子,程序员需要有人来检查,还有另一个理想化的版本,需要有人指导初级员工的职业生涯,例如,给他们重定向反馈,以及所有其他东西。
It’s not that, in the abstract, I don’t agree with some of those things, but in practice, I’ve found that they often create more problems that they solve.
并不是说,从抽象的角度来说,我不同意其中的一些事情,但在实践中,我发现它们往往会带来更多的问题,而它们解决的问题却更多。
A good example here is, can you get feedback from someone who’s not better at your job than you are?
一个很好的例子是,你能从不比你更擅长你工作的人那里得到反馈吗?
You can get some feedback, you can get feedback on how you show up at work.
你可以获得一些反馈,你可以获得关于你在工作中表现如何的反馈。
Are you being courteous to others?
你对别人有礼貌吗?
Are you being a good communicator?
你是一个善于沟通的人吗?
Okay, yes, but you can’t get feedback on your work, and that’s more important.
好吧,是的,但是你无法获得关于你的工作的反馈,这更重要。
2:25:44 It’s more important that you work under and with someone who’s better at your job than you are if you wish to progress in your career, and every single programmer I’ve ever worked with was far more interested in progressing in their career on that metric, getting better at their craft, than they were in picking up pointers that a middle manager could teach them.
如果你希望在职业生涯中取得进步,更重要的是,你应该在比你更擅长你的工作的人手下工作,并且与比你更擅长的人一起工作,而我曾经共事过的每一位程序员都更感兴趣的是在这个指标上取得职业进步,提高自己的技能,而不是接受中层经理可以教给他们的指导。
That’s not saying that there isn’t value in it, it’s not saying there isn’t value in being a better person or a better communicator.
这并不是说它没有价值,也不是说成为一个更好的人或更好的沟通者没有价值。
Of course, there is all those things, but if I have to choose one or the other, I value competence higher.
当然,有所有这些东西,但如果我必须选择其中之一,我更看重能力。
Again, I cavit this a million times, because I know what people sometimes hear, they hear the genius asshole is just fine, and that’s great and you should excuse all sorts of malicious behavior if someone’s just really good at what they do.
再说一次,我重复了一百万次,因为我知道人们有时会听到什么,他们听到天才混蛋很好,这很好,如果有人真的很擅长他们所做的事情,你应该原谅各种恶意行为。
2:26:30 I’m not saying that at all.
我根本不是这么说的。
What I am saying is that the history of competence is a history of learning from people who are better than you, and that relationship should take precedence over all else.
我想说的是,能力的历史就是向比你优秀的人学习的历史,这种关系应该优先于其他一切。
That relationship gets put aside a bit when engineering manager’s introduced.
当工程经理介绍时,这种关系就被搁置了一点。
Now, the funny thing is this conversation ties back to the earlier things we were talking about.
现在,有趣的是,这次谈话与我们之前讨论的事情联系在一起。
Most engineering managers are actually former programmers.
大多数工程经理实际上都是前程序员。
They at least know program to some extent, but what I’ve seen time and again is that they lose their touch, their feel with it very, very quickly and turn into pointy-haired bosses very, very quickly who are really good at checking for updates, “Just seeing where we are on project A here if you need anything,” or, “We’re really to deliver?” Okay, yes.
他们至少在某种程度上了解程序,但我一次又一次看到的是,他们很快就失去了联系和感觉,很快就变成了头发尖的老板,他们非常擅长检查更新,“如果你需要什么,就看看我们在项目 A 上的进展如何,”或者,“我们真的要交付吗?”好吧,是的。
Also, no.
另外,不。
Shut up, leave me the hell alone.
闭嘴,让我一个人静一静。
Let me program and then I’ll come up for air.
让我编程,然后我就出来呼吸空气。
2:27:22 I’ll talk with other programmers who I can spar with, that we can learn something with, where I can turn the problems over with and we can move forward.
我会和其他程序员交谈,我可以和他们一起讨论,我们可以一起学习一些东西,我可以和他们一起解决问题,然后我们可以继续前进。
If you look back on the history of computer industry, all the great innovation that’s happened, it’s all been done by tiny teams with no engineering managers.
如果你回顾计算机行业的历史,所有发生的伟大创新,都是由没有工程经理的小团队完成的。
Just full of highly-skilled individuals.
充满了高技能的个人。
You’ve had John Carmack on here.
约翰·卡马克也来了。
I used to look up to its software so much, not just because I love Quake, not just because I loved what they were doing, but because he shared a bit about how the company worked.
我曾经非常仰慕它的软件,不仅仅是因为我喜欢 Quake,不仅仅是因为我喜欢他们所做的事情,还因为他分享了一些关于公司如何运作的信息。
There were no managers or maybe they had one business guy doing some business stuff, but that was just to get paid.
没有经理,或者他们可能有一个业务人员做一些业务工作,但这只是为了获得报酬。
Everything else was basically just designers and programmers, and there were about eight of them and they created goddamn Quake 2.
其他人基本上都是设计师和程序员,其中大约有八个人,他们创造了该死的《雷神之锤 2》。
Why do you need all these people again?
为什么你又需要这么多人?
2:28:09 Why do you need all these managers again?
为什么你又需要所有这些经理?
I think, again, at a certain scale, it does break down.
我再次认为,在一定规模上,它确实会崩溃。
It’s hard to just have 100,000 programmers running around wild without any product mommies or daddies telling them what to do.
很难让 100,000 名程序员在没有任何产品妈妈或爸爸告诉他们该怎么做的情况下到处乱跑。
I understand that.
我明白这一点。
Then even as I say that, I also don’t understand it, because if you look at something like Gmail for example, that was like a side project done by Buchheit at Google at the time.
即使我这么说,我也不明白,因为如果你看看 Gmail 之类的东西,那就像 Buchheit 当时在 Google 做的一个副项目。
So much of the enduring long-term value of even all these huge companies were created by people who didn’t have a god damn manager, and that’s not an accident.
即使是所有这些大公司,其持久的长期价值也有很大一部分是由那些没有该死的经理的人创造的,这并非偶然。
That’s a direct cause and effect.
这是直接的因果关系。
I’ve turned in some way even more militant over the years against this notion of management, at least for myself and knowing who I am and how I want to work, because the other part of this is I don’t want to be a manager, and maybe this is just me projecting the fact that I’m an introvert who don’t like to talk to people on one-on-one calls every week, but it also encapsulates how I was able to progress my career.
多年来,我在某种程度上变得更加激进地反对这种管理概念,至少对我自己来说,知道我是谁以及我想如何工作,因为另一部分是我不想成为一名经理,也许这只是我投射这样一个事实:我是一个内向的人,不喜欢每周与人进行一对一的通话,但这也概括了我如何能够发展我的职业生涯。
2:29:06 I did not really go to the next level with Ruby or otherwise until I had a door I could close and no one could bother me for six hours straight.
我并没有真正进入 Ruby 或其他方面的下一个阶段,直到我有一扇可以关上的门,并且连续六个小时没有人可以打扰我。
In companies probably one of the reasons is it’s very easy to hire managers, and managers also delegate responsibility from you, so if you just have a bunch of programmers running around, your response…
在公司中,原因之一可能是很容易雇用经理,而经理也会将责任委派给你,所以如果你只有一群程序员到处跑,你的反应......
2:29:15 It’s work, it’s intellectual work to have to deal with the first principles of every problem that’s going on.
这是工作,是智力工作,必须处理正在发生的每个问题的首要原则。
Yep.
是的。
Manager’s like, “You can relax, all will be taken care of,” but they then hire their own managers, and it just multiplies and multiplies and multiplies.
经理会说,“你可以放松,一切都会被照顾好”,但他们随后会聘请自己的经理,事情只会成倍增加、倍增、倍增。
2:29:39 I would love it if some of the great companies we have in the United States, if there was an extra side branch that we could always run…
如果我们在美国拥有一些伟大的公司,如果有一个我们可以随时运营的额外分支,我会很高兴......
Maybe physicists can come up how to split the simulation to where it just all the managers are removed.
也许物理学家可以想出如何将模拟拆分为仅删除所有管理器的位置。
Just in that branch, just the PR and the comms people also, and even the lawyers.
就在那个分支机构,只有公关人员和通讯人员,甚至还有律师。
Just the engineers and let’s just see, and then we merge it back.
只有工程师,让我们看看,然后我们将其合并回来。
I have a sense you run that branch at 37 singles for 20 years.
我有一种感觉,你以 37 岁的单身人士经营这家分店 20 年了。
2:30:16 I’ve experimented with forking back on the other side, I’ve experimented with having a full-time lawyer on staff, I’ve experimented with having engineering managers, and I can tell you life is much better at 50, 60 people when none of those individuals or none of those roles…
我尝试过在另一边分叉,我尝试过在员工中配备一名全职律师,我尝试过配备工程经理,我可以告诉你,当没有这些人或没有这些角色时,50、60 人的生活要好得多……
It’s never about the individuals, it’s about the roles.
这从来不是关于个人,而是关于角色。
None of those roles are in your organization full-time.
这些角色都不是您组织中的全职角色。
Occasionally, you need a manager.
有时,您需要一位经理。
Occasionally, you need a lawyer.
有时,您需要律师。
I can play the role of manager occasionally, fine, and then I can set it back down to zero.
我偶尔可以扮演经理的角色,很好,然后我可以将其设置为零。
It’s almost like a cloud surface.
它几乎就像云的表面。
I want a manager service I can call on for seven hours this week and then I want to take it down to zero for the next three months.
我想要一个本周可以打电话七个小时的经理服务,然后我想在接下来的三个月内将其减少到零。
Yeah, I read, I don’t know if this is still the case, that Basecamp is an LLC and doesn’t have a CFO, like a full-time accountant.
是的,我读到,我不知道情况是否仍然如此,Basecamp 是一家有限责任公司,没有像全职会计师那样的首席财务官。
2:31:01 Is that [inaudible 02:31:10].
是这样吗[听不清 02:31:10]。
These days, we do have a head of finance.
如今,我们确实有一位财务主管。
2:31:10 We did not for the first 19 years of life, I think.
我想,我们在生命的前 19 年里并没有这样做。
We got away with basically just having an accountant do our books in the same way you would do a small ice cream shop, except we would, over time, have done hundreds of millions of dollars in revenue.
我们基本上只是让一名会计师像做一家小冰淇淋店一样做我们的账簿,但随着时间的推移,我们将获得数亿美元的收入。
The scale seemed quirky and, at some point, you can also fall in love with your own quirkiness to a degree that isn’t actually healthy, and I’ve certainly done that over time, and we should have had count the beans a little more diligently, a little earlier.
秤看起来很古怪,在某些时候,你也可能会爱上自己的古怪,达到一种实际上并不健康的程度,随着时间的推移,我确实这样做了,我们应该更努力地、早一点地数豆子。
This was part of a blessing of just being wildly profitable and selling software that can have infinite margins, basically, that you can get away with a bunch of stuff that you perhaps shouldn’t.
这是获得巨大利润并销售可以拥有无限利润的软件的祝福的一部分,基本上,你可以摆脱一堆你可能不应该做的东西。
What partially taught me this lesson was when we realized we had not been collecting sales tax in different US states where we had Nexus, and it took us about two years and $5 million in settlements and cleanups to get out of that mess.
我学到的部分教训是,当我们意识到我们没有在拥有 Nexus 的美国不同州征收销售税时,我们花了大约两年的时间和 500 万美元的和解和清理工作才摆脱了这一困境。
After that, I went like, “Okay, fine, we can hire a finance person.”
之后,我说:“好吧,好吧,我们可以聘请一名财务人员。”
Okay.
好的。
We now have a wonderful finance person, Ron, who actually ended up replacing something else we used to have.
我们现在有一位出色的财务人员,罗恩,他实际上最终取代了我们以前拥有的其他东西。
2:32:11 We used to have a full-time data analytics person who would do all sorts of insight mining for, “Why are people signing up for this thing?” We ran that for 10 years and realized, “You know what?
我们曾经有一个全职数据分析人员,他会进行各种洞察挖掘,“为什么人们要注册这个东西?”我们运行了 10 年并意识到:“你知道吗?
If I can have either a data analytics person or an accountant, I’m picking the accountant.”
如果我可以聘请数据分析人员或会计师,我就会选择会计师。”
I love this so much on so many levels.
我在很多层面上都非常喜欢这个。
2:32:30 Can we just linger on that advice that you’ve given, that small teams are better?
我们能否继续坚持您提出的“小团队更好”的建议?
I think that’s really less…
我觉得确实少了……
Less is more.
少即是多。
What did you say before?
你之前说什么?
“Worse is better”?
“越差越好”?
Okay, I’m sorry.
好吧,对不起。
Worse is better on adoption with technology a lot of times.
很多时候,更糟糕的是采用技术更好。
Yeah.
是的。
I think it actually comes out of the same thing.
我认为这实际上是出于同一件事。
2:32:51 It comes out of the fact that many of the great breakthroughs are created by not even just tiny teams, but individuals, individuals writing something.
这是因为,许多伟大的突破不仅是由小团队创造的,而且是由个人、个人写的东西创造的。
An individual writing something on some parameter, what they do is worse.
一个人在某些参数上写一些东西,他们所做的事情更糟糕。
Of course, it’s worse when one person has to make something that a huge company have hundreds if not thousands of developers that they can have work on that problem, but in so many other parameters, that worstness is the value, that less is the value.
当然,当一个人必须做出某种东西时,情况会更糟,而一家大公司拥有数百甚至数千名开发人员,他们可以解决这个问题,但在许多其他参数中,最糟糕的就是价值,更少的就是价值。
In Getting Real, which we wrote back in 2006, we talk about this notion of less software.
在我们 2006 年写的《Getting Real》中,我们讨论了“更少软件”的概念。
When we first got started with Basecamp back in 2004, people would ask us all the time, “Aren’t you petrified of Microsoft?
当我们 2004 年第一次开始使用 Basecamp 时,人们总是会问我们:“你不是被微软吓呆了吗?
They have so many more resources, they have so many more programmers.
他们拥有更多的资源,他们有更多的程序员。
What if they take a liking to your little niche here and they show up and they just throw a thousand programmers at the problem?”
如果他们喜欢你这里的小利基并且出现并且他们只是让一千个程序员来解决这个问题怎么办?”
2:33:46 My answer, perhaps partly because I was like 24 was, first of all, “No, no care in the world,” but the real answer was they’re not going to produce the same thing.
我的回答,也许部分是因为我当时才 24 岁,首先是,“不,世界上没有什么关心,”但真正的答案是他们不会生产同样的东西。
You cannot produce the software that Basecamp is with a team of a 1,000 people.
你不可能用 1000 人的团队来制作 Basecamp 那样的软件。
You will build the software that 1,000 people build, and that’s not the same thing at all.
你将构建 1,000 个人构建的软件,这根本不是一回事。
So much of the main breakthrough in both end-user systems but also in open-source systems and fundamental systems, they’re done by individuals or very small teams.
最终用户系统以及开源系统和基础系统中的许多主要突破都是由个人或非常小的团队完成的。
Even all these classical histories of Apple has always been like, well, there’s a big organization, but then you had the team that was actually working on the breakthrough.
即使苹果公司的所有这些经典历史一直都是这样的,嗯,有一个大的组织,但你有一个真正致力于突破的团队。
It was four people, it was eight people, it was never 200.
有四个人,有八个人,从来没有 200 人。
The large team seems to slow things down.
庞大的团队似乎会减慢速度。
Yes.
是的。
It’s so fascinating, part of it’s the manager thing.
这太令人着迷了,部分原因在于经理的事情。
Because humans don’t scale, communication between humans certainly don’t scale.
因为人类无法扩展,所以人与人之间的交流当然也无法扩展。
2:34:40 You basically get the network-cost effect.
您基本上得到了网络成本效应。
Every time you add a new node, it goes up exponentially.
每次添加新节点时,它都会呈指数级增长。
This is perhaps the key thing of why I get to be so fond of having no managers at Basecamp, because our default team size is two.
这也许是我如此喜欢 Basecamp 没有经理的关键原因,因为我们默认的团队规模是两人。
One programmer, one designer, one feature.
一名程序员,一名设计师,一项功能。
When you’re operating at that level of scale, you don’t need sophistication, you don’t need advanced methodologies, you don’t need multiple layers of management, because you can just do.
当您以这种规模运营时,您不需要复杂的技术,不需要先进的方法,不需要多层管理,因为您可以做到。
The magic of small teams is that they just do.
小团队的神奇之处在于他们就是这么做。
They don’t have to argue, because we don’t have to set direction, we won’t have to worry about the road map.
他们不必争论,因为我们不必设定方向,我们不必担心路线图。
We can just sit down and make something, and then see if it’s good.
我们可以坐下来做一些东西,然后看看它是否好。
When you can get away with just making things, you don’t have to plan, and if you can get out of planning, you can follow the truth that emerges from the code, from the product, from the thing you’re working on in the moment.
当你可以只做东西时,你就不必计划,如果你可以摆脱计划,你就可以遵循代码、产品、你当下正在做的事情中出现的真相。
2:35:43 You know far more about what the great next step is when you’re one step behind, rather than if you try 18 months in advance to map out all the steps.
当你落后一步时,你会比提前 18 个月尝试制定所有步骤更清楚地知道下一步是什么。
“How do we get from here to very far away?” You know what?
“我们怎样才能从这里到很远的地方呢?”你知道吗?
That’s difficult to imagine in advance, because humans are very poor at that.
这很难提前想象,因为人类在这方面非常贫乏。
Maybe AI one day will be much better than us, but humans can put one foot in front of each other.
也许人工智能有一天会比我们好得多,但人类可以把一只脚放在彼此前面。
That’s not that hard, and that allows you to get away with all that sophistication.
这并不难,而且可以让你摆脱所有的复杂性。
The process has become much simpler, you need far fewer people, it compounds, you need much less process, you need to waste less time in meetings.
这个过程变得更加简单,你需要的人少得多,它很复杂,你需要的过程少得多,你需要在会议上浪费更少的时间。
You can just spend these long glorious days and weeks of uninterrupted time solving real problems you care about and that are valuable, and you’re going to find that that’s what the market actually wants.
你可以花这些漫长而光荣的日子和几周不间断的时间来解决你关心的、有价值的真正问题,你会发现这就是市场真正想要的。
2:36:33 No one is buying something because there’s a huge company behind it, most of the time.
大多数时候,没有人购买某样东西是因为它背后有一家大公司。
They’re buying something because it’s good, and the way you get something good is you don’t sit around and have a meeting about it, you try stuff, you build stuff.
他们买东西是因为它很好,而你得到好东西的方式是你不坐下来开会讨论它,你尝试一些东西,你建造一些东西。
It really is incredible what one person, honestly one person can do in 100 hours of deep work, of focused work.
一个人,老实说,一个人在 100 小时的深度工作、专注工作中能做出什么事情,这确实令人难以置信。
2:36:48 Even less.
甚至更少。
I’ll tell you this, I tracked exactly the number of hours I spent on the first version of Basecamp.
我告诉你,我准确地记录了我在 Basecamp 第一个版本上花费的小时数。
2:36:58 I was doing this, because at the time, I was working on a contract basis for Jason.
我这样做是因为当时我是在合同基础上为杰森工作。
He was paying me…
他付钱给我……
I was going to say $15 an hour, that’s what I got paid when we first got started.
我想说的是每小时 15 美元,这是我们刚开始时我得到的报酬。
I think he had bumped my pay to a glorious $25, but I was billing him, and I know that the invoice for the first version of Basecamp was 400 hours.
我想他已经把我的工资提高到了 25 美元,但我向他开账单,而且我知道 Basecamp 第一个版本的发票是 400 小时。
That’s what it took for one sole individual in 2004 to create an entire system that has then gone on to gross hundreds of millions of dollars and continues to do extremely well.
2004 年,一个人就这样创建了一个完整的系统,该系统的总收入已达数亿美元,并且继续表现出色。
One person, just me setting up everything.
一个人,只有我一个人安排一切。
Part of that story is Ruby, part of that story’s Rails, but a lot of it is also just me plus Jason plus Ryan plus Matt.
这个故事的一部分是 Ruby,这个故事的一部分是 Rails,但其中很多也只是我加上 Jason、Ryan 和 Matt。
2:37:46 That was the entire company at the time, and we could create something of sheer sustaining value with such a tiny team, because we were a tiny team.
这就是当时的整个公司,我们可以用这么小的团队创造一些具有纯粹持续价值的东西,因为我们是一个小团队。
Not despite off.
尽管关闭了也没有。
Small is not a stepping stone.
小不是垫脚石。
This is the other thing that people get into their head, this is one of the big topics about a rework, that it gave entrepreneurs the permission to embrace being a small team not as a waypoint, not as, “I’m trying to become 1,000 people.” No, I actually like being a small team.
这是人们脑海中浮现的另一件事,这是关于返工的重要话题之一,它让企业家能够接受成为一个小团队,而不是作为一个路标,而不是“我正在努力成为 1000 人”。不,我实际上喜欢成为一个小团队。
Small teams are more fun.
小团队更有趣。
If you ask almost anyone, I’m sure Toby would say this too, even at his scale, the sheer enjoyment of building something is in the enjoyment of building it with a tiny team.
如果你问几乎任何人,我相信托比也会这么说,即使以他的规模,构建某些东西的纯粹乐趣在于与一个小团队一起构建它的乐趣。
Now, you can have impact at a different scale when you have a huge company, I fully recognize that and I see the appeal of it, but in the actual building of things, it’s always small teams.
现在,当你拥有一家大公司时,你可以产生不同规模的影响,我完全认识到这一点,并且我看到了它的吸引力,但在实际的建设中,它总是小团队。
Always.
总是。
How do you protect the small team?
如何保护小团队?
2:38:39 Basecamp has successfully stayed small.
Basecamp 成功地保持了小型化。
What’s been the dragon you had to fight off?
你必须对抗的龙是什么?
Basically, you make a lot of money, there’s a temptation to grow, so how do you not grow?
基本上,你赚了很多钱,有成长的诱惑,那你怎么不成长呢?
Don’t take venture capital.
不要接受风险投资。
Okay, that that’s step one.
好的,这是第一步。
That is point number one.
这是第一点。
First of all-
首先——
Number two is-
第二个是——
…
……
2:39:01 everybody takes venture capital, so you already went.
每个人都接受风险投资,所以你已经去了。
That’s been the answer for the longest time, because the problem isn’t just venture capital, it’s other people’s money.
这是长期以来的答案,因为问题不仅在于风险投资,还在于其他人的钱。
2:39:05 Once you take other people’s money, completely understandably, they want a return, and they would prefer to have the largest return possible, because it’s not them sitting in the code, it’s not them getting the daily satisfaction out of building something, chiseling beautiful code poems out of the editor, right?
一旦你拿了别人的钱,完全可以理解,他们想要回报,他们更愿意获得尽可能大的回报,因为他们不是坐在代码中,不是他们从构建东西中获得日常满足感,从编辑器中凿出美丽的代码诗,对吧?
They don’t get that satisfaction.
他们得不到那种满足。
They get the satisfaction maybe of seeing something nice put into the world, that’s fair, but they certainly also get a satisfaction of a higher return.
他们可能会因为看到世界上有一些美好的东西而感到满足,这是公平的,但他们当然也会因为更高的回报而感到满足。
There is this sense, certainly in venture capital, stated in venture capital, that the whole point of you taking the money is to get to $1 billion or more.
有一种感觉,当然在风险投资中,在风险投资中,你拿钱的全部目的是达到 10 亿美元或更多。
2:39:44 Now, the path to that usually does go through running established playbooks, and then when it comes to software, the enterprise sales playbook is that playbook.
现在,实现这一目标的途径通常是通过运行既定的剧本,然后当涉及到软件时,企业销售剧本就是那个剧本。
If you’re doing B2B, software SaaS, you will try to find product market fit, and the second you have it, you will abandon your small and medium-sized accounts to chase the big whales with a huge sales force and, by then, you’re 1,000 people and life sucks.
如果你做B2B、软件SaaS,你会试图找到适合市场的产品,一旦找到了,你就会放弃你的中小型账户,去追逐拥有庞大销售队伍的大鲸鱼,到那时,你已经是1000人了,生活很糟糕。
That said, people are just curious about this.
也就是说,人们只是对此感到好奇。
2:40:10 Have gotten a chance to get to know Jeff Bezos.
有机会认识杰夫·贝佐斯。
He invested in Basecamp, not controlling…
他投资了 Basecamp,而不是控制……
He bought secondaries.
他买了二级。
2:40:22 This was the funny thing, is that when…
有趣的是,当……
Investing have these two dual meanings.
投资有这两个双重含义。
Normally, when people think about investing, they think you’re putting in growth capital, because you want the business to hire more people, to do more R&D, so they can grow bigger.
通常,当人们考虑投资时,他们认为你正在投入增长资本,因为你希望企业雇佣更多的人,进行更多的研发,这样他们就能发展得更大。
Bezos didn’t do that, actually.
事实上,贝佐斯并没有这样做。
He bought an ownership stake directly from Jason and I, and 100% of the proceeds of that purchase went into my and Jason’s bank account.
他直接从杰森和我那里购买了所有权股份,购买所得的 100% 都进入了我和杰森的银行账户。
Personal bank accounts.
个人银行账户。
Not a single cent went into the account of the company, because we didn’t need the money to grow.
一分钱都没有进入公司账户,因为我们不需要钱来发展。
What we needed or what we certainly enjoyed was, to some extent, maybe the vote of confidence, but more so the security of taking a little bit off the tables is that we dared turn down the big bucks from venture capitals.
在某种程度上,我们需要的或者我们当然喜欢的可能是信任票,但更重要的是,我们敢于拒绝来自风险投资的巨额资金,从而获得一点好处。
2:41:14 It was essentially a vaccine against wanting to take a larger check from people who then wanted to take the company to something enormous that we didn’t want to go with it.
它本质上是一种疫苗,可以防止那些想从那些想要将公司带到我们不想参与的巨大事业的人那里拿走更多支票。
Jeff gave Jason and I just enough money that we were comfortable turning all these people down in a way where, if it had turned belly up six months later, we wouldn’t have been kicking ourselves and gone, “We had something here that was worth millions, and now we have nothing and I have to worry about rent and groceries again.”
杰夫给了杰森和我足够的钱,让我们可以放心地拒绝所有这些人,如果六个月后它破产了,我们也不会自责而走,“我们这里有一些价值数百万美元的东西,但现在我们什么都没有了,我不得不再次担心租金和杂货。”
It is a vote of confidence.
这是一次信任投票。
2:41:44 I’d love to hear Jeff’s side of this story of why, because he doesn’t need the money.
我很想听听杰夫对这个故事的看法,因为他不需要钱。
I think it probably is just believing in people and wanting to have cool stuff be created in the world and make money off of it, but not like-
我认为这可能只是相信人们并希望在世界上创造出很酷的东西并从中赚钱,但不是像-
100% the motivation for Jeff wasn’t a return, because he actually has a team, his private office, that runs these investments, who did the calculus on the investment pitch we gave him, which was so ridiculous that Jason and I were laughing our asses off when we were writing down our metrics.
杰夫的动机 100% 不是回报,因为他实际上有一个团队,他的私人办公室,负责管理这些投资,他们在我们给他的投资宣传上进行计算,这太荒谬了,以至于杰森和我在写下我们的指标时笑得前仰后合。
2:42:05 I was like, “No one’s going to pay this.
我当时想,“没有人会付这个钱。
No one is going to give us this multiple of this amount of revenue, and that’s fine.” I mean, we took the call essentially out of an awe that Jeff Bezos even wanted to look at us.
没有人会给我们这么多倍的收入,这很好。”我的意思是,我们接电话基本上是出于对杰夫·贝索斯甚至想看我们一眼的敬畏。
“Do you know what?
“你知道什么吗?
We don’t want venture capital, we don’t need other people’s money, but let’s just give him a bullshit number that no sane person would actually say yes to, and then we can each go our own way.”
我们不需要风险投资,我们不需要别人的钱,但我们就给他一个没有理智的人会真正答应的狗屎数字,然后我们就可以各走自己的路了。”
2:42:48 His investment team said like, “Jeff, no way.
他的投资团队说:“杰夫,不可能。
This makes no economic sense at all, they’re asking for way too much money with way too little revenue,” and Jeff just went like, “I don’t care, I want to invest in this guy,” because to him, at the time, it was chump change.
这根本没有经济意义,他们要的钱太多,收入却太少。”杰夫只是说,“我不在乎,我想投资这个人”,因为当时对他来说,这只是一笔小钱。
Jason and I each got a few million dollars, whatever the currency swing between the yen and the dollar that day probably moved 10X for his net worth than our investment did.
杰森和我每人都得到了几百万美元,无论那天日元和美元之间的货币波动如何,他的净资产可能比我们的投资高出 10 倍。
Jeff seemed genuinely interested in being around interesting people, interesting companies, helping someone go to distance.
杰夫似乎真正感兴趣的是与有趣的人、有趣的公司在一起,帮助某人走向远方。
I actually look back on that relationship with some degree of regret, because I took that vote of confidence for granted in ways that I’m a little bit ashamed of.
事实上,当我回顾这段关系时,我感到有些遗憾,因为我以一种让我有点羞愧的方式将信任票视为理所当然。
Over the years, I’ve been more critical about some of the things that Amazon had done that I feel now is justified.
多年来,我对亚马逊所做的一些我现在认为是合理的事情更加持批评态度。
2:43:41 That’s just part of that processing of it, but on the economic sense, he gave us that confidence.
这只是处理过程的一部分,但从经济意义上来说,他给了我们信心。
He gave us the economic confidence, but then he also gave us the confidence of a CEO running, perhaps at the time the most important internet business in the US, showing up to our calls, which we would have with him once a year, and basically, just going like, “Yeah, you guys are doing awesome stuff.
他给了我们经济上的信心,但他也给了我们作为首席执行官的信心,这可能是当时美国最重要的互联网企业,他会参加我们的电话会议,我们每年都会和他打一次电话,基本上就是说,“是的,你们正在做一些很棒的事情。
You should just keep doing awesome stuff.
你应该继续做一些很棒的事情。
I read your book, it’s awesome.
我读了你的书,非常棒。
You launched this thing, it’s awesome.
你推出了这个东西,太棒了。
You should just do more of that.
你应该多做一些这样的事情。
I don’t actually know how to run your business, you guys know.”
我实际上不知道如何经营你们的生意,你们知道的。”
The book was out.
这本书已经出版了。
2:44:13 From a fan perspective, I’m curious about how Jeff Bezos is able to see…
从粉丝的角度来看,我很好奇杰夫·贝索斯如何能够看到……
Because to me, you and Jason are special humans in the space of tech, and the fact that Jeff was able to see that, right?
因为对我来说,你和杰森是科技领域的特殊人物,事实上杰夫能够看到这一点,对吗?
How hard is it to see that?
看到这一点有多难?
He certainly saw it very early, and I think this is something that Jeff does better than almost anyone else.
他当然很早就看到了这一点,我认为杰夫在这方面做得比几乎任何人都好。
2:44:29 He spots that opportunity so far in advance of anyone else even opened their eyes to it, or certainly is willing to bet on it far early and far harder than anyone else is, and he’s just right time and again.
他远远领先于其他人甚至睁开眼睛看到这个机会,或者肯定愿意比其他人更早、更努力地押注它,而且他一次又一次地都是对的。
We were not the only investment that he made and, certainly, Amazon had an extremely long-term vision, far longer than I have ever had the gumption to keep…
我们并不是他唯一的投资,当然,亚马逊有着极其长远的愿景,比我有勇气坚持下去的时间要长得多……
I think of myself as a long-term thinker, I’m playing a child’s game compared to the game that Jeff is playing.
我认为自己是一个长期思考者,与杰夫正在玩的游戏相比,我正在玩一个孩子的游戏。
When I looked at Amazon’s economics around the dot-com boom and bust, they looked ridiculous.
当我观察互联网繁荣和萧条期间亚马逊的经济状况时,它们看起来很荒谬。
They were losing so much money, they were so hated by the market.
他们损失了太多的钱,他们被市场所憎恨。
No one believed that it was going to turn into what it is, but Jeff did in a way that, that level of conviction, I really aspire to.
没有人相信它会变成现在这样,但杰夫以一种我真正渴望的方式做到了,那种程度的信念。
2:45:23 I think that’s one of the main things I’ve taken away from that relationship is that you can just believe in yourself.
我认为我从这段关系中学到的最重要的一点就是你可以相信自己。
To that degree against those odds?
到了那种程度?
That’s ridiculous.
这太荒谬了。
He did that so many times at our level that it’s pathetic if I’m doubting myself.
在我们的水平上,他已经这样做了很多次,如果我怀疑自己,那就太可悲了。
Yeah.
是的。
2:45:42 I think Amazon is one of those companies.
我认为亚马逊就是其中之一。
It’s come under a bunch of criticism over the years.
多年来它受到了很多批评。
This is something about humans that I don’t appreciate so much, that we take for granted the positive that a thing brings real quick, and then we just start criticizing the thing.
这是关于人类的一些事情,我不太欣赏,我们理所当然地认为某件事很快就会带来积极的影响,然后我们就开始批评这件事。
It’s the Wi-Fi and the airplanes.
这是 Wi-Fi 和飞机。
That’s exactly it.
就是这样。
I think Amazon, there could be a case made that Amazon is one of the greatest companies in the last 100 years.
我认为亚马逊,可以说亚马逊是过去 100 年来最伟大的公司之一。
For sure, I think it’s an easy case to make.
当然,我认为这是一个很容易做的例子。
2:46:15 What I also think is that the price you pay to be one of the greatest companies in the last 100 years is a lot of detractors, a lot of pushback, a lot of criticism.
我还认为,要成为过去 100 年来最伟大的公司之一,你所付出的代价就是很多批评者、很多阻力、很多批评。
That this is actually order restored in the universe.
这实际上是宇宙中恢复的秩序。
One of my favorite teachers in all the time I’ve been on the internet is Kathy Sierra.
我上网以来最喜欢的老师之一是凯西·塞拉(Kathy Sierra)。
I don’t know if you know her work, but she was active for only a few short years before the cruel internet ran her off, but she wrote a blog called Creating Passionate Users, and she carved into my brain this notion of balance in the universe.
我不知道你是否了解她的工作,但她只活跃了几年,就被残酷的互联网赶走了,但她写了一个名为“创造热情的用户”的博客,并将宇宙平衡的概念刻进了我的大脑。
If you’re creating something of value that a lot of people love, you must create an equal and opposite force of haters.
如果你正在创造很多人喜欢的有价值的东西,你就必须创造出一股平等且相反的仇恨力量。
You cannot have people who love what you do without also having people who hate what you do.
你不可能拥有热爱你所做的事情的人,同时也拥有讨厌你所做的事情的人。
2:47:05 The only escape from that is mediocrity.
唯一的出路就是平庸。
If you are so boring and so uninteresting that no one gives a damn whether you exist or not, yeah, you don’t get the haters, but you also don’t get the impact of people who really enjoy your work.
如果你太无聊、太无趣,以至于没有人在乎你是否存在,是的,你不会受到讨厌的人的影响,但你也不会受到真正喜欢你工作的人的影响。
I think Amazon is that just at the massive scale, right?
我认为亚马逊就是这么大规模,对吗?
They’ve brought so much value and change to technology, to commerce that they must simply have a black hole size of haters.
他们给技术和商业带来了如此多的价值和变化,以至于他们一定有黑洞大小的仇恨者。
Otherwise, the universe is simply going to tip over.
否则,宇宙就会翻倒。
Let me ask you about small teams.
我想问一下关于小团队的问题。
2:47:34 You mentioned Jason a bunch of times, Jason Fried.
你多次提到杰森,杰森·弗里德。
You have been partners for a long, long time.
你们已经是合作伙伴很长时间了。
Perhaps it’s fair to say he’s more on the the design, business side and you’re the tech, the engineering wizard.
也许可以公平地说,他更多地从事设计、业务方面,而你是技术、工程奇才。
How have you guys over all these years, creating so many amazing products, not murder each other?
这些年来,你们如何创造了这么多令人惊叹的产品,却没有互相残杀?
It’s a great story of partnership.
这是一个精彩的合作故事。
What can you say about collaboration?
关于合作您有什么想说的?
What can you say about Jason that you love, that you’ve learned from?
关于杰森,你能说一下你所爱的、你从他身上学到的哪些东西吗?
Why does this work?
为什么这有效?
First, I’ll say we have tried to murder each other several times over the years, but far less, I think in the last decade.
首先,我要说的是,这些年来我们曾多次试图谋杀对方,但我认为在过去的十年里,次数要少得多。
2:48:07 In the early days, our product discussions were so fierce that, when we were having them in the office and there were other employees around, some of them were legitimately worried that the company was about to fall apart, because the volume coming out of the room would be so high and sound so acrimonious that they were legitimately worried the whole thing was going to fall apart.
早期,我们的产品讨论非常激烈,以至于当我们让他们在办公室里,周围还有其他员工时,他们中的一些人有理由担心公司即将崩溃,因为从房间里传出来的音量是如此之大,听起来如此尖刻,以至于他们有理由担心整个事情会崩溃。
You know what’s funny?
你知道什么有趣吗?
Is that it never felt like that in the moment.
是不是那一刻从未有过这样的感觉。
It always felt like just a peak vigorous search for something better, and that we were able to stomach that level of adversity on the merits of an idea, because it was about the idea.
总感觉就像是对更好的东西的强烈追求,而且我们能够根据一个想法的优点忍受这种程度的逆境,因为这是关于这个想法的。
It wasn’t about the person and it never really got personal.
这与人无关,也从未真正变得个人化。
Not even never, really, it didn’t get personal.
甚至从来没有,真的,它没有变得个人化。
It wasn’t like, “Jason, you’re an asshole.” It was like, “Jason, you’re an idiot, and you’re an idiot because you’re looking at this problem the wrong way, and let me tell you the right way to do it.”
这不像是,“杰森,你是个混蛋。”就像,“杰森,你是个白痴,你是个白痴,因为你以错误的方式看待这个问题,让我告诉你正确的方法。”
As a small tangent, let me say that some people have said, we’ll probably return to this, that you sometimes can have flights of temper on the internet and so on.
顺便说一句,有些人说过,我们可能会回到这个话题,有时你可能会在互联网上发脾气等等。
2:49:21 I never take it that way, because it is the same kind of ilk.
我从来不这么认为,因为这是同一种类型。
Maybe I haven’t seen the right traces of temper, but usually, it’s about the idea, and it’s just excited, passionate human.
也许我没有看到正确的脾气痕迹,但通常,这是关于想法的,而且是兴奋、充满激情的人类。
That’s exactly what I like to think of it as.
这正是我喜欢的想法。
2:49:46 It doesn’t always come across as that and I can see why spectators in particular sometimes would see something that looks like I’m going after the man rather than the ball.
情况并不总是如此,我可以理解为什么观众有时会看到一些看起来像是我在追人而不是球的东西。
I do think I’ve tried to get better at that, but in my relationship with-
我确实认为我已经尝试在这方面做得更好,但在我与-
2:50:00 I do think I’ve tried to get better at that, but in my relationship with Jason, I think it’s worked so well because we have our own distinct areas of competence, where we fully trust each other.
我确实认为我已经努力在这方面做得更好,但在我与杰森的关系中,我认为效果很好,因为我们有自己独特的能力领域,我们完全信任彼此。
Jason trusts me to make the correct technical decisions.
Jason 相信我能够做出正确的技术决策。
I trust him to make the correct design and product direction decisions, and then we can overlap and share on the business, on marketing, on writing, on other aspects of it.
我相信他能够做出正确的设计和产品方向决策,然后我们可以在业务、营销、写作和其他方面进行重叠和分享。
So that’s one thing, is that if you’re starting a business with someone where you do exactly the same as they do, and you’re constantly contesting who’s the more competent person, I think that’s far more difficult and far more volatile.
所以这是一件事,如果你和某人一起创业,而你的做法与他们完全相同,并且你不断地竞争谁是更有能力的人,我认为这会更加困难和更加不稳定。
So if you’re starting a business and you’re both programmers and you both work on the same kind of programming, good luck.
因此,如果您正在创业并且都是程序员并且都从事相同类型的编程,那么祝您好运。
I think that’s hard.
我认为这很难。
2:50:49 I tried to pick an easier path, working with a designer, where I knew that at least half of the time I could just delegate to his experience and competence and say like, do you know what?
我试图选择一条更简单的道路,与一位设计师合作,我知道至少有一半的时间我可以委托给他的经验和能力,然后说,你知道吗?
I may have an opinion.
我可能有意见。
I have an opinion all the time on design, but I don’t have to win the argument because I trust you.
我一直对设计有自己的看法,但我不必赢得争论,因为我相信你。
Now, occasionally we would have overlaps on business or direction where we’d both feel like we had a strong stake in the game and we both had a claim to competence in that area, but then for whatever reason, we also both had a long-term vision, where I would go, do you know what?
现在,偶尔我们会在业务或方向上有重叠,我们都觉得我们在游戏中拥有强大的利益,并且我们都声称在该领域拥有能力,但无论出于何种原因,我们都有一个长期愿景,我会去哪里,你知道吗?
I think we’re wrong here, but as I learned from Jeff Bezos, by the way, I’m going to disagree and commit.
我认为我们在这里错了,但正如我从杰夫·贝佐斯那里学到的那样,顺便说一句,我会不同意并承诺。
That was one of those early lessons he gave us, that was absolutely crucial and perhaps even instrumental in ensuring that Jason and I have been working together for a quarter of a century.
这是他给我们的早期教训之一,这绝对至关重要,甚至可能有助于确保杰森和我一起工作四分之一个世纪。
Disagree and commit is one of the all time Jeff Bezos’ greats.
不同意见和承诺是杰夫·贝佐斯一直以来的伟大之处之一。
I’m just surprised that Yoko Ono hasn’t come along.
我只是很惊讶小野洋子没有来。
2:51:42 You know what I mean?
你知道我的意思?
There’s so many Yokos in this world.
这个世界上有很多洋子。
It might’ve happened if not in part because we don’t sit on each other’s lap all the time.
如果不是部分原因的话,这可能会发生,因为我们并不总是坐在彼此的腿上。
2:51:51 Most of our careers, we haven’t even lived in the same city.
在我们的大部分职业生涯中,我们甚至没有住在同一个城市。
I lived in Chicago for a couple of years while we were getting going after I’d moved to the US in 2005, but then I moved to Malibu and then I lived in Spain and then I lived in Copenhagen.
2005 年我搬到美国后,我们在芝加哥住了几年,但后来我搬到了马里布,然后我住在西班牙,然后我住在哥本哈根。
And Jason and I, from the foundation of our relationship learned how to work together in a remarkably efficient way where we didn’t have to actually talk that much.
杰森和我从我们关系的基础上学会了如何以一种非常有效的方式一起工作,而我们实际上不需要说太多。
On any given week, I’d be surprised if Jason and I spent more than two hours of direct exchange and communication.
在任何一周,如果杰森和我直接交流和沟通的时间超过两个小时,我都会感到惊讶。
Yeah.
是的。
2:52:33 Sometimes it’s the basic human frictions that just accumulate all time.
有时,这是人类基本的摩擦不断积累的结果。
Yes.
是的。
2:52:37 I think if you rub up against another person, that person damn well better be your spouse, if it’s too much for too long.
我认为,如果你与另一个人发生摩擦,那么那个人最好是你的配偶,如果这种情况持续太久的话。
Yeah.
是的。
2:52:43 But even there, COVID has really tested the relationship.
但即便如此,新冠疫情也确实考验了两国关系。
It’s fascinating to watch.
观看起来很有趣。
It has, and I do think that having some separation, which is kind of counterintuitive because I think a lot of people think the more collaboration you can have, the better.
确实如此,我确实认为有一些分离,这有点违反直觉,因为我认为很多人认为合作越多越好。
2:52:48 The more ideas that can bounce back and forth, the better.
能够反复出现的想法越多越好。
And both Jason and I, for whatever reason came to the conclusion early on in careers, absolutely not.
杰森和我,无论出于什么原因,在职业生涯的早期就得出了这样的结论:绝对不是。
That’s complete baloney.
这完全是胡说八道。
This is why we were huge proponents of remote work.
这就是为什么我们大力支持远程工作。
This is why I enjoy working in my home office where I can close the door and not see another human for six hours at the time.
这就是为什么我喜欢在家庭办公室工作,在那里我可以关上门,六个小时内看不到其他人。
I don’t want to bounce ideas off you all the time.
我不想一直向你征求意见。
I want to bounce ideas off you occasionally and then I want to go off and implement those ideas.
我想偶尔向你提出一些想法,然后我想开始实施这些想法。
2:53:24 There’s way too much bouncing going on and not enough scoring, not enough dunking, and I think this is one of the great traps of executive rule.
弹跳太多,得分不够,扣篮不够,我认为这是行政规则的最大陷阱之一。
Once a founder elevates themselves all the way up to an executive, where what they’re doing is just telling other people what to do, that’s the realm they live in 24/7.
一旦创始人将自己一路提升为高管,他们所做的只是告诉其他人该做什么,这就是他们生活在 24/7 的领域。
They just live in the idea realm.
他们只是生活在想法领域。
Oh, I can just tell more people, more things what to do and we can just see it happen.
哦,我可以告诉更多的人,更多的事情该做什么,我们就可以看到它发生。
If you actually have to be part of implementing that, you slow your horse.
如果你真的必须参与实现这一点,你就会放慢脚步。
Do you know what?
你知道什么吗?
I had a good idea last week.
上周我有一个好主意。
I’m going to save the rest of my good ideas until next month.
我将把剩下的好主意留到下个月。
There is a temptation for the managers and for the people in the executive layer to do something, which that’s something usually means a meeting.
对于经理和执行层的人员来说,有一种诱惑要做某事,这通常意味着召开会议。
2:53:58 And so that’s why you say-
所以这就是为什么你说——
Yes.
是的。
2:54:11 Their job is telling other people what to do.
他们的工作是告诉其他人该做什么。
Yeah.
是的。
2:54:13 And the meeting, so this is one of the big things you’re against is meeting-
还有会议,所以这是你反对的一件大事,那就是会议——
Meetings are toxic.
会议是有毒的。
2:54:17 And this really I think ties into this with Jason and I.
我认为这确实与杰森和我有关。
If I had to count out the total number of meetings we’ve had in 24 years of collaborations, where we in person sat in front of each other and discussed a topic, probably it’d be less than whatever three months at a fan company.
如果要我算一下我们合作24年里,面对面坐在一起讨论某个话题的会议总数,大概还不到粉丝公司的三个月。
We just haven’t done that that much.
我们只是还没有做那么多。
We haven’t worn it out.
我们还没有磨损它。
One of this funny metaphors that Trump came up with at one point was, a human has a limited number of steps in their life.
特朗普曾一度提出的一个有趣的比喻是,人一生的步骤是有限的。
That’s the longevity argument here.
这就是这里的长寿论点。
You can do so much activity and then you run out.
你可以做很多活动,然后就用完了。
2:54:53 There’s some kernel in that idea that can be applied to relationship.
这个想法的一些核心可以应用于关系。
There’s some amount of exchange we can have.
我们可以进行一些交换。
There’s some amount of time we can spend together, where you can wear it out.
我们可以花一些时间在一起,你可以在那里消磨时光。
Jason and I were diligent about not wearing each other out, and I think that is absolutely key to the longevity of the relationship combined with that level of trust and then just combining with the level that we really like the work itself.
杰森和我努力不让彼此疲惫,我认为这绝对是关系长久的关键,再加上这种程度的信任,再加上我们真正喜欢工作本身的程度。
We don’t just like the brainstorming the [inaudible 02:55:21] where we just come up with good ideas.
我们不只是喜欢头脑风暴 [听不清 02:55:21],我们只是想出好主意。
Now we like to do the ideas, and we like to be part of that process directly ourselves.
现在我们喜欢把想法付诸实践,并且我们喜欢直接成为这个过程的一部分。
I like to program, he likes to do design.
我喜欢编程,他喜欢做设计。
We could go off and do our little things for long stretches of time.
我们可以花很长一段时间去做我们的小事。
In case you come together and go like, hey, let’s launch a great product.
如果你们聚在一起并说,嘿,让我们推出一个很棒的产品。
This might sound like I’m asking you to do therapy, but I find myself to sometimes want or long for a meeting because I’m lonely.
这听起来像是我在要求你进行治疗,但我发现自己有时想要或渴望会面,因为我很孤独。
2:55:35 Remote work is just sitting by yourself, I don’t know, it can get really lonely for long stretches of time.
远程工作就是一个人坐着,我不知道,长时间这样会变得非常孤独。
Let me give you a tip.
让我给你一个提示。
2:55:56 Get a wife.
找个老婆吧
Yes.
是的。
2:56:00 God, damn it.
天哪,该死。
Get a couple kids.
生几个孩子吧
All right.
好的。
Family really is the great antidote to loneliness, and I mean that as sincerely as I can possibly say it.
家庭确实是消除孤独的良药,我的意思是尽我所能真诚地这么说。
2:56:05 I certainly had exactly that feeling you described early in my career when I was working remotely, and I was just like me living in an apartment, a total stereotype, where for the longest time when I first moved to Chicago, all I had on the floor was a mattress.
我确实有过你在职业生涯早期远程工作时所描述的那种感觉,我就像住在公寓里一样,完全是一种刻板印象,当我第一次搬到芝加哥时,在很长一段时间里,地板上只有一张床垫。
And then I bought this big TV and I didn’t even mount it, and then I had a stack of DVDs.
然后我买了这个大电视,我什至没有安装它,然后我就有了一堆DVD。
And I was basically, I was working a lot of time and then I would just go home and I’d do that, and it wasn’t great.
基本上,我工作了很多时间,然后我就回家做这件事,但这并不好。
It really wasn’t.
事实并非如此。
I do think that humans need humans.
我确实认为人类需要人类。
And if you can’t get them at work, and I actually sort of kind of don’t want them at work, at least I don’t want them for 40 hours a week.
如果你不能让他们工作,而且我实际上有点不想让他们工作,至少我不想让他们每周工作 40 个小时。
That’s not what I prefer.
这不是我喜欢的。
2:56:51 You need something else.
你需要别的东西。
You need other relationships in your life, and there is no greater depth of relationship if you can find someone that you actually just want to spend a lot of time with.
你的生活中需要其他的关系,如果你能找到一个你实际上只想花很多时间在一起的人,就没有比这更深入的关系了。
That’s key to it and I think it’s key for both Jason and I that we’ve had families for quite a long time, and it grounds you to in a way where the sprint of a startup can get traded in for the marathon of an enduring company, and you get settled in a way.
这是关键,我认为对杰森和我来说,我们已经有了家庭很长一段时间了,这让你能够以一种方式让你有基础,在某种程度上,你可以用初创公司的冲刺来换取一家持久公司的马拉松,然后你就可以在某种程度上安顿下来。
We talked briefly about sometimes I get fired up.
我们简短地谈到有时我会很兴奋。
I mean, a lot of times, maybe even most of the times I get fired up about topics, but I don’t get fired up in the same way now as I used to when I was 24.
我的意思是,很多时候,甚至大多数时候,我都会因为一些话题而感到兴奋,但现在我不再像 24 岁时那样兴奋了。
I’m still extremely passionate about ideas and trying to find the right things, but having a family, meeting my wife, building a life around that has just mellowed everything out in a completely cliche way, but I think it’s actually key.
我仍然对想法充满热情,并试图找到正确的事情,但是拥有一个家庭,遇见我的妻子,围绕这些建立生活,这一切都以一种完全陈词滥调的方式变得更加成熟,但我认为这实际上是关键。
2:57:51 I think if we could get more even younger people not to wait until they were in their god-damn 30s or early 40s to hitch up with someone, we’d be better off and we’d have more stable business relationships as well, because folks would get that nurturing human relation somewhere else.
我认为,如果我们能让更多甚至更年轻的人不要等到该死的 30 多岁或 40 岁出头才和某人搭讪,我们会过得更好,我们也会拥有更稳定的业务关系,因为人们会在其他地方获得这种培育性的人际关系。
Now, when I say all of that, I also accept that there are plenty of great businesses that’s been built over the years that have not been built remote, that have been built by a gang of hooligans sitting in an office for immense hours at time.
现在,当我说出这一切时,我也承认,多年来建立的许多伟大企业并不是远程建立的,而是由一群流氓在办公室里长时间坐着建立的。
2:58:23 I mean, both John Carmack and Tim Sweeney talked about that in the ’90s with their careers that that was just basically work, sleep, hang out with the guys at the office, right?
我的意思是,约翰·卡马克和蒂姆·斯威尼在 90 年代都谈到了他们的职业生涯,那就是基本上就是工作、睡觉、和办公室里的人一起出去玩,对吧?
Totally fair.
完全公平。
That never appealed to me.
这对我来说从来没有吸引力。
Both Jason and I saw eye to eye on the idea that 40 hours a week dedicated to work was enough that if we were going to go to distance for not just the five to seven years it takes to build a VC case up to an exit, but for potentially 10 years, 20 years or further, we needed to become whole humans, because only that whole human-ness was going to go to distance, which included building up friendships outside of work, having hobbies, finding a mate and having a family.
杰森和我都一致认为,每周投入 40 个小时的工作时间就足够了,如果我们要远距离工作,不仅仅是建立风险投资案例直至退出所需的五到七年时间,而是在可能的 10 年、20 年或更长时间里,我们需要成为完整的人,因为只有完整的人性才能走向远距离,其中包括在工作之外建立友谊、拥有爱好、寻找伴侣和组建家庭。
And that entire existence, those legs of the stool that work is not the only thing in life is completely related to the fact that we’ve been around for 25 years.
整个存在,那些工作的凳子腿并不是生活中唯一的事情,这与我们已经存在了 25 年的事实完全相关。
There’s way too much, especially in America of false trade-offs.
错误的权衡实在太多了,尤其是在美国。
Oh, you want to build a successful business?
哦,你想建立一个成功的企业吗?
Well, you can either have money enjoyment or family or health, pick one.
好吧,你可以选择金钱享受、家庭或健康,选一个。
2:59:40 What?
什么?
Why do we have to give up all of this?
为什么我们必须放弃这一切?
Now, again, I’m not saying, and there are moments, prayers, life where you can sprint, but I am saying if that sprint turns into a decade, you’re going to pay for it.
现在,我再说一遍,我并不是说,有些时刻、祈祷、生活中你可以冲刺,但我是说,如果冲刺变成了十年,你就会为此付出代价。
And you’re going to pay for it in ways I’ve seen time and again, seemed like a very bad trade, that even if it works.
你将以我一次又一次看到的方式为此付出代价,这似乎是一笔非常糟糕的交易,即使它有效。
And by the way most of the time it does not.
顺便说一句,大多数时候情况并非如此。
Most of the time startups go bust.
大多数时候,初创公司都会破产。
Most of the times people spend five, seven years or something that does not pan out, and they don’t get the payout.
大多数时候,人们花了五、七年或者没有成功的东西,但他们没有得到回报。
And then they just sit with regret of like, what the fuck happened to my 20s?
然后他们只是带着遗憾坐在那里,心想,我20多岁的时候到底发生了什么?
Early on, Jason and I basically made the pact that working together was not going to lead to that kind of regret, that we were going to allow ourselves and each other to build a whole life outside of work.
早些时候,杰森和我基本上达成协议,一起工作不会导致那种遗憾,我们将允许自己和彼此在工作之外建立完整的生活。
And the fact that that worked is something I feel is almost like forbidden knowledge.
我觉得这种方法有效的事实几乎就像是禁忌知识。
3:00:38 Certainly in technology circles in US, it’s something that we’ve tried to champion for 20 years and we still get slacked for.
当然,在美国科技界,这是我们 20 年来一直努力倡导的事情,但我们仍然在这方面有所懈怠。
Just two days ago, I had another Twitter beef with someone saying like, “Oh, well, okay, maybe it worked, but you didn’t turn into Atlassian, so you’re a failure.
就在两天前,我又在 Twitter 上与某人发生了争执,有人说:“哦,好吧,也许它有效,但你没有变成 Atlassian,所以你是一个失败者。
Basecamp isn’t Jira, so why are you even bothering?” And it’s such a fascinating winner-takes- all mentality that unless you dominate everyone else in all the ways, you’ve lost.
Basecamp 不是 Jira,那你为什么还要费心呢?”这是一种令人着迷的赢者通吃的心态,除非你在所有方面都压倒其他人,否则你就输了。
When so much of life is far more open to multiple winners, where we can end up with a business that have made hundreds of millions of dollars over the years and we’ve kept much of that to do whatever we want and that that’s enough.
当生活的大部分内容对多个赢家更加开放时,我们最终可以拥有一家多年来赚取数亿美元的企业,并且我们保留了其中的大部分来做我们想做的事情,这就足够了。
That’s good.
那挺好的。
That’s great.
那太棒了。
That’s actually something worth aspiring to.
这实际上是值得追求的事情。
Certainly, it should be a path for someone to consider choosing rather than the VC unicorn of bust mentality that dominates everything.
当然,这应该是有人考虑选择的一条路,而不是主宰一切的半身心态的VC独角兽。
Yeah.
是的。
3:01:39 I’d love to ask you about this exchange so you can explain to me the whole saga, but so just a link on that a little bit is, I think there’s a notion that success for tech founder is like work for a few years all out and then exit, sell your company for, I don’t know, hundreds of millions of dollars.
我很想问你关于这次交流的事情,这样你就可以向我解释整个传奇故事,但只是一个链接,我认为有一种观念认为,科技创始人的成功就像全力以赴地工作几年,然后退出,以我不知道的数亿美元的价格出售你的公司。
That’s success.
这就是成功。
When it seems in reality, when you look at who the people like you, like really smart, creative humans, who they actually are and what happiness entails, it actually entails working your whole life a little bit.
当它看起来在现实中时,当你看看那些喜欢你的人,比如真正聪明、有创造力的人,他们到底是谁以及幸福意味着什么时,它实际上需要你一生努力一点。
Because you actually love the programming, you love the building, you love the designer and you don’t want to exit, and that’s something you’ve talked about really, really eloquently about.
因为你真的很喜欢这个编程,你喜欢这个建筑,你喜欢设计师,你不想退出,而这就是你真正非常雄辩地谈论过的事情。
So you actually want to create a life, where you’re always doing the building and doing it in a way that’s not completely taken over your life.
所以你实际上想要创造一种生活,你总是在建造,并且以一种不完全占据你生活的方式去做。
Mojito Island is a mirage.
莫吉托岛是海市蜃楼。
3:02:40 It always was.
一直都是。
There is no retirement for ambitious people.
对于有抱负的人来说,没有退休金。
There is no just sitting back on the beach and sipping a mojito for what, for two weeks before you go damn crazy and want to get back into the action.
在你发疯并想要重新开始行动之前,你不可能仅仅坐在海滩上喝一杯莫吉托酒两周。
That’s exactly what happens to most people who have the capacity to build those kinds of exits.
这正是大多数有能力建立此类出口的人所面临的情况。
I’ve never seen, I shouldn’t say never.
我从未见过,我不应该说从未见过。
I’ve almost never seen anyone be able to pull that off, yet so many think that that’s why they’re doing it.
我几乎从未见过有人能够做到这一点,但很多人认为这就是他们这样做的原因。
That’s why they’re sacrificing everything because once I get to the finish line, I’m golden, I’ve won, I can retire, I can sit back, I can just relax.
这就是为什么他们要牺牲一切,因为一旦我到达终点线,我就是金色的,我赢了,我可以退休,我可以坐下来,我可以放松。
And you find out that that kind of relaxation is actually hell.
你会发现这种放松实际上是地狱。
It’s hell for creative people to squander their God-given creative juices and capacities.
对于富有创造力的人来说,浪费上帝赋予的创造力和能力简直是地狱。
And I was really lucky to read the book Flow by Mihaly Csikszentmihalyi early on [inaudible 03:03:39].
我真的很幸运很早就读到了 Mihaly Csikszentmihalyi 的《Flow》一书 [听不清 03:03:39]。
Nice, the pronunciations.
不错,发音。
Do you know what?
你知道什么吗?
3:03:40 I had to practice that with AI over the last few days because I knew I was going to cite him and I butchered his name several times.
在过去的几天里,我不得不用人工智能来练习这一点,因为我知道我会引用他,但我多次毁掉了他的名字。
So AI taught me how to pronounce that at least somewhat correctly.
所以人工智能教我如何发音,至少在某种程度上正确。
But his main work over his career was essentially the concept of flow that came out of a search for understanding happiness.
但他职业生涯中的主要工作本质上是心流概念,这个概念源于对幸福的理解。
Why are some people happy?
为什么有的人很幸福?
When are they happy?
他们什么时候快乐?
And what he learned was quite illuminating.
他学到的东西很有启发性。
He learned that people aren’t happy when they sit on Mojito Island.
他了解到,人们坐在莫吉托岛上时并不开心。
They’re not happy when they’re free of all obligations and responsibilities.
当他们摆脱了所有的义务和责任时,他们并不快乐。
No.
不。
They’re happy in these moments where they’re reaching and stretching their capacities just beyond what they can currently do.
当他们达到并扩展自己的能力超出他们目前的能力时,他们会很高兴。
In those moments of flow, they can forget time and space.
在那些流动的时刻,他们可以忘记时间和空间。
They can sit in front of the keyboard, program a hard problem, think 20 minutes have passed and suddenly it’s been three hours.
他们可以坐在键盘前,编写一个难题,认为已经过去了 20 分钟,但突然之间已经过去了三个小时。
3:04:36 They look back upon those moments with the greatest amount of joy, and that is what peak happiness is.
他们怀着最大的喜悦回顾那些时刻,这就是巅峰幸福。
If you take away the pursuit of those kinds of problems, if you eliminate all the problems from your plate, you’re going to get depressed.
如果你不再去追求这些问题,如果你把所有的问题都从你的盘子里解决掉,你就会感到沮丧。
You’re not going to have a good time.
你不会玩得很开心的。
Now, there are people who can do that, but they’re not the same kind of people who built these kinds of companies.
现在,有人可以做到这一点,但他们与创建此类公司的人不同。
So you have to accept the kind of individual you are.
所以你必须接受你是什么样的人。
If you are on this path, don’t bullshit yourself.
如果你正走在这条路上,请不要自欺欺人。
Don’t bullshit yourself into thinking, I’m just going to sacrifice everything, my health, my family, my hobbies, my friends, but in 10 years I’m going to make it all up, because in 10 years I can do it.
不要自欺欺人地想,我只是要牺牲一切,我的健康、我的家庭、我的爱好、我的朋友,但十年后我会弥补这一切,因为十年后我可以做到。
3:05:15 It never works out like that.
事情永远不会像那样。
It doesn’t work out on both ends of it.
它的两端都不起作用。
It does not work out if you’re successful and you sell your company, because you’ll get bored out of your mind after two weeks on retirement.
如果你成功了并卖掉了你的公司,那是行不通的,因为退休两周后你就会感到无聊。
It doesn’t work out if the company is a failure and you regret the last 10 years spent for nothing.
如果公司失败了,你后悔过去的10年都白白浪费了,那就不行了。
It doesn’t work out if it all works and you stay in the business because it never gets any easier.
如果一切顺利并且你继续留在这个行业,那也不会成功,因为它永远不会变得更容易。
So you’re going to fail on all metrics if you just go, there’s only work and nothing else.
因此,如果你就这样走下去,你的所有指标都会失败,只有工作而没有其他。
And I didn’t want that.
我不想那样。
I wanted the happiness of flow.
我想要流动的幸福。
I understood that insight was true, but I wanted to do it in a way where I could sustain the journey for 40 or 50 years.
我明白这种洞察力是真实的,但我想以一种能够让我的旅程持续 40 或 50 年的方式来做到这一点。
And there’s other interesting caveat that I’ve heard you say is that if you do exit and you sell your company, and you want to stay in, you want to do another company, that’s going to usually not be as fulfilling because really your first baby like…
我听到你说的还有一个有趣的警告是,如果你确实退出并卖掉你的公司,而你想留下来,你想做另一家公司,那通常不会那么令人满意,因为你的第一个孩子真的喜欢……
You can’t do it again or most people can’t do it again.
你不能再这样做,或者大多数人也不能再这样做。
3:06:09 A, because their second idea is not going to be as good as the first one.
A,因为他们的第二个想法不会像第一个想法那么好。
It is so rare to capture lightning in the bottle like we have, for example with Basecamp.
像我们这样用 Basecamp 捕捉到瓶子里的闪电是非常罕见的。
I know this from experience because if you’re trying to build a lot of other businesses since, and some of them have been moderate successes, even good successes, none of them have been Basecamp.
我从经验中知道这一点,因为如果你从那时起尝试建立许多其他业务,其中一些取得了一定的成功,甚至是很好的成功,那么没有一个是 Basecamp。
It’s really difficult to do that twice.
确实很难做到两次。
But founders are arrogant pricks, including myself, and we like to think that, do you know what we succeeded in large part because we’re just awesome.
但创始人都是傲慢的混蛋,包括我自己,我们喜欢这样想,你知道我们的成功很大程度上是因为我们太棒了。
We’re just so much better than everyone else.
我们只是比其他人好得多。
And in some ways that’s true some of the time, but you can also be really good at something that matters for a hot moment.
从某些方面来说,有时确实如此,但你也可以真正擅长某些对热门时刻至关重要的事情。
That door is open, the door closes.
那扇门是开着的,那扇门是关着的。
Now you’re still good at the thing, but it doesn’t matter.
现在你仍然擅长这件事,但这并不重要。
No one cares.
没有人关心。
3:06:54 There’s that part of it.
有那部分。
And then there’s the part of it that going back to experience things for the first time only happens the first time.
还有一部分是,回过头去体验第一次的事情只会发生在第一次。
You can’t do it again.
你不能再这样做了。
I don’t know if I have it in me to go through the bullshit of the early days again.
我不知道我是否还有能力再次经历早期的那些废话。
And I say bullshit in the sense of the most endearing sense.
我从最可爱的意义上说废话。
It’s all great to do it.
能做到这一切真是太好了。
I know too much.
我知道的太多了。
This is one of the reasons why whenever I’m asked the questions, if you could tell your younger self something that would really, what would you say to your younger self?
这就是为什么每当我被问到这些问题时,如果你能告诉年轻的自己一些真正的事情,你会对年轻的自己说什么?
I would fucking not say a thing.
我他妈什么也不会说。
I would not rob my younger self of all the life experiences that I’ve been blessed with due to the ignorance of how the world works.
我不会因为对世界如何运作的无知而剥夺年轻时我所拥有的所有生活经历。
Building up the wisdom about how the world works is a joy, and you got to build it one break at a time.
积累关于世界如何运转的智慧是一种乐趣,而且你必须一次又一次地积累它。
3:07:40 If you just handed all the results, it’s like, oh, should we watch your movie?
如果你刚刚交出了所有结果,那就像是,哦,我们应该看你的电影吗?
Here’s how it ends.
事情是这样结束的。
I don’t want to watch the movie now.
我现在不想看电影。
You spoiled it.
你把它弄坏了。
I don’t want you to spoil my business experience.
我不想让你破坏我的商业经验。
I don’t want to spoil any of my ignorance.
我不想破坏我的无知。
The greatest blessing half the time when you’re starting something new is A, you don’t know how hard it’s going to be.
当你开始新事物时,最大的祝福有一半是 A,你不知道它会有多难。
B, you don’t know what you don’t know.
B、你不知道你不知道什么。
The adventure is to pay off.
冒险是有回报的。
The responsibility is to pay off.
有责任就有回报。
This is something Jordan Peterson has really taught me to articulate.
这是乔丹·彼得森真正教我表达的东西。
This notion that responsibility is actually key to meaning.
责任实际上是意义的关键。
3:08:16 Man’s Search for Meaning, Viktor Frankl talks about this as well, that we can endure any hardship if there’s a reason why.
维克多·弗兰克尔(Viktor Frankl)在《人类寻找意义》中也谈到了这一点,如果有理由的话,我们可以忍受任何困难。
Now, he talked about it in truly life altering concentration camp ways, but you can also apply at a smaller scale with less criticality of even just your daily life that all that hardship in building the original business that is responsibility you take upon yourself.
现在,他在现实生活中谈到了改变集中营的方式,但你也可以在较小的规模上应用,甚至只是你的日常生活,而在建立最初的业务时所遇到的所有困难都是你自己承担的责任。
The appeal, the reason you take that on you is in part because you don’t know fully what it entails.
你之所以提出上诉,部分原因是你不完全了解它意味着什么。
If you had known upfront, if I had known upfront how hard it would be, how much frustration there’d be along the way, if you just told me that in a narrative before I got started, I would’ve been like, eh, maybe I should just go get a job.
如果你事先知道,如果我事先知道这会有多困难,一路上会有多少挫折,如果你在我开始之前在叙述中告诉我,我会说,呃,也许我应该去找一份工作。
You said so many smart things there.
你在那里说了很多聪明的话。
3:09:00 Just to pick one, it’s funny that sometimes the advice givers, the wisdom givers have gone through all the bullshit, and so there is a degree to which you want to make the mistake.
就选一个来说,有趣的是,有时建议者、智慧者已经经历了所有的废话,所以你想犯错误的程度是有一定程度的。
So I think I would still give the advice of you want to have a stretch of your life, where you work too hard, including anything that fails.
所以我想我仍然会给你这样的建议:你想要度过一段漫长的人生,在那里你工作太努力,包括任何失败的事情。
I don’t think you can learn the lessons why that’s a bad idea in any other way except by doing it.
我认为除了实践之外,你无法以任何其他方式吸取教训,了解为什么这是一个坏主意。
There is a degree, but of course you don’t…
有学位,但你当然没有……
I think you should stretch.
我认为你应该伸展一下。
3:09:37 Should you have to stretch for a decade?
你应该延长十年吗?
I’m not so sure.
我不太确定。
Yeah.
是的。
3:09:40 The decade thing is 20s is a special time.
20岁这个十年是一个特殊的时期。
It’s a lot to trade.
有很多东西可以交易。
3:09:43 You don’t get your 20s back, you don’t get your 30s back, you don’t get your 40s back.
你不会回到20多岁,你不会回到30多岁,你不会回到40多岁。
I would’ve regret it personally if I hadn’t done the other things I did in my 20s.
如果我20多岁时没有做其他事情,我个人会后悔的。
If I hadn’t had the fun I had, if I hadn’t had the friends I had, if I hadn’t built up the hobbies that I did, if I hadn’t started driving race cars at an early enough age to actually get really good at it, if I had just gone all in on business because I would’ve got the same out in the end.
如果我没有获得乐趣,如果我没有朋友,如果我没有建立起自己的爱好,如果我没有很早就开始驾驶赛车并真正擅长它,如果我只是全身心投入到生意中,因为我最终也会得到同样的结果。
This is something Derek Sivers really taught me, is he has this great essay about how when he went for a bike ride, he could go really hard all out and he could do the ride, I think, in whatever 19 minutes, or he could enjoy the ride, go 5% slower, do the ride in 21 minutes and realize there’s only two minutes apart.
这是德里克·西弗斯真正教给我的东西,他有一篇很棒的文章,讲述了当他去骑自行车时,他可以全力以赴,他可以在 19 分钟内完成骑行,或者他可以享受骑行,放慢 5%,在 21 分钟内完成骑行,并意识到只有两分钟的时间间隔。
3:10:32 Either I go all in all the time, there’s nothing else, I’m completely exhausted at the [inaudible 03:10:37] or I traveled the same distance and I arrived maybe two minutes later, but I got to enjoy the scenery, listen to the birds, smell the flowers.
要么我一直全力以赴,没有别的事情,我在[听不清03:10:37]完全筋疲力尽,要么我走了同样的距离,大约两分钟后到达,但我必须欣赏风景,听鸟叫,闻花香。
That journey is also valuable.
这段旅程也很有价值。
Now, I say that while accepting and celebrating that if you want to be the best at one thing in the world, no, you have to sacrifice everything.
现在,我说,在接受并庆祝这一点的同时,如果你想成为世界上最好的一件事,不,你必须牺牲一切。
You have to be obsessed with just that thing.
你必须对那件事着迷。
There is no instant of someone who’s the best in the world at something who’s not completely obsessed.
世界上最擅长某件事的人没有一个时刻不完全着迷。
I didn’t need to be best at anything.
我不需要在任何事情上都做到最好。
This was a rare blessing of humility I had early on is like, do you know what?
这是我很早就拥有的一种罕见的谦卑祝福,你知道吗?
I am not that smart.
我没那么聪明。
I’m not that good.
我没那么好。
I’m not that talented.
我没那么有才华。
I can do interesting things by combining different aspects and elements that I know, but I’m not going to be the best at anything.
我可以通过结合我所知道的不同方面和元素来做有趣的事情,但我不会在任何事情上做到最好。
3:11:27 And that released me from this singular obsession with just going, I’m going to be the best programmer in the world.
这让我摆脱了这种对“我要成为世界上最好的程序员”的痴迷。
I know I’m not.
我知道我不是。
I fucking failed at it twice before I even got how conditional it’s worked.
在我了解它的工作条件之前,我他妈的失败了两次。
I’m not smart enough to be the best at anything.
我不够聪明,无法在任何事情上做到最好。
I’m not dedicated enough to do that.
我不够专注,无法做到这一点。
That’s a bit of a blessing.
这是一个小小的祝福。
And I think as a society, we have to straddle both celebrating peak excellence, which we do all the time, and celebrating the peak intensity of mission it takes to become that.
我认为作为一个社会,我们必须既庆祝我们一直在做的巅峰卓越,又庆祝实现这一目标所需的最高使命强度。
And then also going like, do you know what?
然后也会说,你知道吗?
We don’t all need to be Michael Jordan.
我们不需要都成为迈克尔·乔丹。
There’s only going to be one of those.
只会有其中之一。
Well, we should say that there’s certain pursuits where a singular obsession is required.
好吧,我们应该说,有些追求需要单一的痴迷。
3:12:04 Basketball is one of them.
篮球就是其中之一。
By the way, probably racing.
顺便说一句,可能是赛车。
If you want to be the best at F-1 in the world-
如果你想成为世界上最好的 F-1-
If you want to be Senna, you got to be a maniac.
如果你想成为塞纳,你就必须成为一个疯子。
But I would argue that there’s most disciplines like programming allows if you want to be, quote, unquote, “the best,” whatever that means.
但我认为,如果你想成为“最好的”,无论这意味着什么,像编程这样的大多数学科都允许。
3:12:20 I think that’s judged at the end of your life.
我认为这是在你生命的尽头做出的判断。
And usually if you look at that path, it’s going to be a nonlinear one.
通常,如果你观察这条路径,它会是一条非线性路径。
You’re not going to look like the life of an Olympic athlete who’s singular focused.
你不会像奥运会运动员那样全神贯注。
There’s going to be some acid there in the 20s or there’s going to be several detours, which should the true greats, there’s going to be detours, and sometimes they’re not going to be Steve Jobs’ asset type of situation.
20多岁的时候会有一些酸,或者会有一些弯路,如果是真正的伟人,就会有弯路,有时它们不会成为史蒂夫·乔布斯的资产类型的情况。
There’ll be just different companies you’ve worked for different careers or different efforts you allocated your life to, but it’s going to be nonlinear.
只是你在不同的公司工作过不同的职业,或者你为不同的工作分配了自己的生活,但这将是非线性的。
It’s not going to be a singular focus.
这不会是一个单一的焦点。
The way I think about this sometimes is I want a good bargain on learning.
有时我思考这个问题的方式是我想要在学习上讨价还价。
3:13:09 I can become in the top 5% of whatever I defined as good at something, much, much easier.
无论我定义的擅长某件事,我都可以进入前 5%,非常非常容易。
Perhaps it’s 20 times easier, a hundred times easier to get into the top 5% than it is to get into the top 0.1%.
也许进入前 5% 比进入前 0.1% 容易 20 倍、100 倍。
That’s almost impossibly hard to get into that.
进入这个领域几乎是不可能的困难。
But if I’m content just being at the top 5%, I could be at the top 5% on five things at once.
但如果我仅仅满足于排名前 5%,那么我可以同时在五件事上排名前 5%。
I can get really good at writing.
我可以非常擅长写作。
I can get decent at driving a race car.
我可以熟练驾驶赛车了。
I can become pretty good at programming, I can run a company, I can have a family.
我可以变得非常擅长编程,我可以经营一家公司,我可以拥有一个家庭。
3:13:48 I can do a lot of things at the same time that gives me sort of that variety that almost was idealized.
我可以同时做很多事情,这给了我一种近乎理想化的多样性。
Karl Marx has this idea, oh, I’m going to fish in the morning and hammer in the evening and paint on the weekends, right?
卡尔·马克思有这样的想法,哦,我早上去钓鱼,晚上去锤子,周末去画画,对吗?
That there’s a sense for me at least, where his diagnosis of alienation was true, that just that tunnel vision, there’s just this one thing I’m just going to focus on that gives me a sense of alienation.
至少对我来说有一种感觉,他对疏离感的诊断是正确的,只是那种狭隘的视野,只有我要关注的一件事给了我一种疏远感。
I can’t stomach.
我无法忍受。
3:14:15 When I’m really deep on programming.
当我真正深入编程时。
And sometimes I go deep for weeks, maybe even in a few cases months, I have to come up for air and I have to go do something else like, all right, that was programming for this year.
有时我会深入几周,甚至在几个月的情况下,我必须出来呼吸空气,我必须去做其他事情,比如,好吧,这是今年的节目。
I’ve done my part, and I’m going to go off riding or annoy people on the internet or drive some race cars to do something else, and then I can do the programming thing with full intensity again next year.
我已经完成了我的部分,我要出去骑马或在互联网上惹恼人们,或者驾驶一些赛车去做其他事情,然后明年我可以再次全力以赴地进行编程工作。
Speaking of annoying people on the internet, you got to explain to me this drama.
说到网上烦人的事,你得给我解释一下这部剧。
3:14:38 Okay, so what is this guy that said, “Imagine losing to Jira, but boasting they have a couple million dollars per year.” So this had to do with this almost now a meme decision to leave the cloud.
好吧,那么这个人说的是什么,“想象一下输给 Jira,但吹嘘他们每年有几百万美元。”所以这与现在几乎是离开云的模因决定有关。
DHH left the cloud.
DHH离开了云。
I think that’s literally a meme, but it’s also a fascinating decision.
我认为这确实是一个模因,但这也是一个令人着迷的决定。
Can you talk through the full saga of DHH leaves the cloud, leaving AWS, saving money, and I guess the case this person is making now?
您能谈谈 DHH 离开云、离开 AWS、省钱的完整故事吗?我猜这个人现在正在做的事情是什么?
Is that we wasted our time optimizing a business that could have been a hundred times bigger if we’d just gone for the moon.
我们浪费了时间来优化一项业务,如果我们直接登月的话,业务规模可能会扩大一百倍。
And for the moon includes?
月球也包括在内?
Venture Capital includes other things, not caring about cost.
风险投资包括其他的东西,不关心成本。
But also because AGI is around the corner, you should have been investing into AI, right?
但也因为通用人工智能即将到来,你应该一直投资人工智能,对吗?
3:15:26 Is this just part of-
这只是一部分吗——
Sort of [inaudible 03:15:33].
有点[听不清 03:15:33]。
3:15:32 I think it’s a bit of a muddy argument, but if we just take it at its peak ideal, which I actually think is a reasonable point, is that you can get myopically focused on counting pennies when you should be focused on getting pounds that I’ve optimized our spend on infrastructure by getting out of the cloud, and that took some time and I could have taken that time and spend it on making more features that would attract more customers or spend even more time with AI or done other things.
我认为这是一个有点模糊的论点,但如果我们只是把它放在最理想的情况下,我实际上认为这是一个合理的观点,那就是,当你应该专注于赚钱时,你可以短视地专注于数便士,而我已经通过退出云来优化我们在基础设施上的支出,这需要一些时间,我本可以花一些时间来开发更多可以吸引更多客户的功能,或者花更多的时间在人工智能上或做其他事情。
Opportunity cost is real.
机会成本是真实存在的。
I’m not denying that.
我并不否认这一点。
I’m pushing back on the idea that for a company of our size saving $2 million a year on our infrastructure bill, which is about somewhere between 1/2 to 2/3 goes directly to the bottom line, which means its return to Jason or I as owners and our employees part of our profit sharing plan is totally worth doing.
我反驳这样的观点:对于我们这样规模的公司来说,每年在基础设施费用上节省 200 万美元,大约有 1/2 到 2/3 直接进入利润,这意味着作为所有者和我们的员工,将其返还给杰森或我作为我们利润分享计划的一部分是完全值得做的。
3:16:34 This idea that cost don’t matter is a very Silicon Valley way of thinking that I again understand at the scale of something maybe, but I also actually think it’s aesthetically unpleasing.
这种成本无关紧要的想法是一种非常硅谷的思维方式,我再次在某种程度上理解了这种方式,但我实际上也认为这在美学上令人不快。
I find an inefficient business as I find an inefficient program full of line noise to just be a splinter in my brain.
我发现一个低效的业务,就像我发现一个充满线路噪音的低效程序只是我大脑中的碎片一样。
I hate looking at an expense report and just seeing disproportionate waste.
我讨厌查看费用报告,只看到不成比例的浪费。
And when I was looking at our spend at 37signals a while back, a few years back, I saw bills that did not pass my smell test.
几年前,当我查看 37signals 的支出时,我发现账单没有通过我的嗅觉测试。
I remembered how much we used to spend on infrastructure before the cloud, and I saw numbers I could not recognize in proportion to what we needed.
我记得在云出现之前我们在基础设施上花了多少钱,我看到了我无法识别的数字与我们所需的比例。
The fact that computers had gotten so much faster over time, shouldn’t things be getting cheaper?
事实上,随着时间的推移,计算机变得越来越快,难道东西不应该变得更便宜吗?
Why are we spending more and more money servicing more customers?
为什么我们要花越来越多的钱来服务更多的客户?
Yes, but with much faster computers.
是的,但是计算机速度要快得多。
Moore’s law should be lowering the costs, and the opposite is happening.
摩尔定律应该会降低成本,但事实恰恰相反。
Why is that happening?
为什么会发生这种情况?
And that started a journey of unwinding why the cloud isn’t as great as the deal as people like to think [inaudible 03:17:48].
这就开始了一段解开云计算并不像人们想象的那么伟大的旅程 [听不清 03:17:48]。
Yeah.
是的。
3:17:48 Can we look at the specifics just for people who don’t know the story and then generalize to what it means about the role of the cloud in the tech business?
我们能否只为那些不了解这个故事的人看一下具体细节,然后概括出云在科技行业中的作用意味着什么?
So the specifics is you were using AWS S3.
具体来说就是您使用的是 AWS S3。
We were using AWS for everything.
我们一切都使用 AWS。
3:18:03 Hey.com launches an entirely cloud app.
Hey.com 推出了一款完全云的应用程序。
It was completely on AWS for compute, for databases, for all of it.
计算、数据库以及所有这些都完全在 AWS 上进行。
We were using all the systems as they’re best prescribed that we should.
我们使用了所有系统,因为它们是我们应该使用的最佳规定。
Our total cloud bill for Basecamp, our total spend with AWS was I think 3.2 million or 3.4 million at its peak.
我们 Basecamp 的总云费用,我们在 AWS 上的总支出,我认为高峰时为 320 万或 340 万。
That’s kind of a lot of money, 3.
这是很多钱,3。
4 million.
400万。
I mean we have a ton of users and customers, but still that just struck me as unreasonable.
我的意思是我们有大量的用户和客户,但这仍然让我觉得不合理。
And the reason why it was so unreasonable was because I had the pitch for the cloud ringing in my ears, hey, this is going to be faster.
而之所以如此不合理,是因为我耳边响起了云的音调,嘿,这会更快。
This is going to be easier.
这会更容易。
This is going to be cheaper.
这会更便宜。
Why are you trying to produce your own power?
你为什么要尝试产生自己的力量?
Do you have your own power plant?
你有自己的发电厂吗?
Why would you do that?
你为什么要这么做?
Leave the computers to the hyperscalers.
将计算机留给超大规模企业。
They’re much better at it anyway.
无论如何,他们在这方面做得更好。
3:18:58 I actually thought that was a compelling pitch.
我实际上认为这是一个引人注目的推销。
I bought in on that pitch for several years and thought, do you know what?
几年来我一直相信这个观点,然后想,你知道吗?
I’m done ever owning a server again.
我不再拥有服务器了。
We are just going to rent our capacity, and Amazon is going to be able to offer us services much cheaper than we could buy them themselves because they’re going to have these economies of scale.
我们只需租用我们的容量,亚马逊将能够为我们提供比我们自己购买的服务便宜得多的服务,因为他们将拥有规模经济。
And I was thinking Jeff’s word ringing, “My competitor’s margin is my opportunity.” That was something he used to drive amazon.com with, that if he could just make 2% when the other guy was trying to make 4%, he would end up with all the money and on volume he would still win.
我想起了杰夫的话:“竞争对手的利润就是我的机会。”这是他用来推动亚马逊网站的东西,如果他只能赚 2%,而另一个人试图赚 4%,那么他最终会获得所有的钱,而且从数量上看,他仍然会赢。
3:19:34 So I thought that was the operating ethos for AWS.
所以我认为这就是 AWS 的运营精神。
It turns out that’s not true at all.
事实证明这根本不是真的。
AWS, by the way, operates at almost 40% margin.
顺便说一下,AWS 的运营利润率接近 40%。
So just in that, there’s a clue that competitors are not able to do the competitive thing we like about capitalism, which is to lower costs and so forth.
因此,有一条线索表明,竞争对手无法做我们喜欢的资本主义竞争的事情,即降低成本等等。
So the cloud pitch in my optics, it’s fundamentally false.
所以我的光学中的云倾斜从根本上来说是错误的。
It did not get easier, first of all.
首先,事情并没有变得更容易。
I don’t know if you’ve used AWS recently.
不知道您最近是否使用过AWS。
It is hella complicated.
这太复杂了。
If you think Linux is hard, you’ve never tried to set up IAM rules or access parameters or whatever for AWS.
如果您认为 Linux 很难,那么您从未尝试过为 AWS 设置 IAM 规则或访问参数或其他任何内容。
AWS was always difficult.
AWS 总是很困难。
3:20:13 It was always [inaudible 03:20:15].
一直都是[听不清 03:20:15]。
Well, I think it’s gotten even more difficult, but yes, now some of that is, it’s difficult because it’s very capable and you have a bunch of capacity on tap, and there are reasons I don’t think they’re good enough to justify how complicated the whole jing-a-ma-jing has become.
嗯,我认为这变得更加困难了,但是,是的,现在有些困难,因为它非常有能力,而且你有大量可用的能力,并且有一些原因我认为它们不足以证明整个 jing-a-ma-jing 变得多么复杂。
3:20:14 But what’s certainly true is that it’s no longer easier, it’s not easier to use AWS than it is to run your own machines, which we learned when we pulled out the cloud and didn’t hire a single extra person.
但可以肯定的是,使用 AWS 并不比运行自己的机器更容易,也不比运行自己的机器更容易,这是我们在退出云并且没有雇佣任何额外人员的情况下了解到的。
Even though we operate all our own hardware, the team stayed exactly the same.
尽管我们运行所有自己的硬件,但团队保持完全相同。
So you have this three-way pitch, right?
所以你有这个三向音调,对吗?
It’s going to be easier, it’s going to be cheaper.
它会更容易,它会更便宜。
Certainly wasn’t cheaper.
当然并不便宜。
We’ve just proved that by cutting our spend on infrastructure by 1/2 to 2/3 and it’s going to be faster.
我们刚刚证明,通过将基础设施支出削减 1/2 到 2/3,速度会更快。
The last bit was true, but way too many people overestimated the value of that speed.
最后一点是正确的,但太多人高估了这种速度的价值。
3:21:05 If you need a thousand computers online in the next 15 minutes, nothing beats the cloud.
如果您需要在接下来的 15 分钟内使 1000 台计算机在线,那么没有什么比云更好的了。
How would you even procure that?
你会如何获得它?
If we just need another 20 servers, it’s going to take a week or two to get boxes shipped on pallets, delivered to a data center and unwrapped and racked and all that stuff.
如果我们只需要另外 20 台服务器,则需要一两周的时间才能将箱子装在托盘上运输、运送到数据中心、拆开包装并上架等等。
But how often do we need to do that?
但我们多久需要这样做一次呢?
And how often do we need to do that if buying those servers is way, way cheaper so we get vastly more compute for the same amount of money?
如果购买这些服务器非常非常便宜,那么我们需要多久这样做一次,以便我们以相同的金额获得更多的计算能力?
Could we just buy more servers and not even care about the fact that we’re not hyper-optimized on the compute utility, that we don’t have to use things like automatic scaling to figure things out because we have to reduce costs?
我们是否可以只购买更多服务器,甚至不关心我们没有对计算实用程序进行超级优化,我们不必使用自动扩展之类的东西来解决问题,因为我们必须降低成本?
Yes, we can.
是的,我们可以。
So we went through this journey over a realization in early 2023, when I had finally had enough with our bills.
因此,我们在 2023 年初实现了这一目标,当时我终于受够了我们的账单。
3:21:57 I wanted to get rid of them.
我想摆脱他们。
I wanted to spend less money.
我想少花点钱。
I wanted to keep more of the money ourselves.
我想自己保留更多的钱。
And in just over six months, we moved seven major applications out of the cloud in terms of compute, caching, databases to works onto our own servers.
在短短六个多月的时间里,我们将计算、缓存、数据库方面的七个主要应用程序从云中移出,以便在我们自己的服务器上运行。
A glorious, beautiful new fleet bought from the king of servers, Michael Dell, who really, by the way, is another icon of mine.
从服务器之王迈克尔·戴尔那里购买了一个辉煌、美丽的新机群,顺便说一句,他确实是我的另一个偶像。
I saw he just celebrated 41 years in business.
我看到他刚刚庆祝了从业 41 周年。
41 years, this man has been selling awesome servers that we’ve been using for our entire existence.
41 年来,这个人一直在销售我们一直在使用的出色服务器。
But anyway, these pallets arrive in a couple of weeks and we rack them up and get everything going, and we were out, at least with the compute part.
但无论如何,这些托盘将在几周内到达,我们将它们架起来并让一切顺利进行,然后我们就出去了,至少是计算部分。
We then had a long multi-year commitment to S3, because the only way to get decent pricing in the cloud, by the way, is not to buy on a day-to-day basis, not to rent on a day-to-day basis, but to bind yourself up to multi-year contracts.
然后我们对 S3 做出了长期的多年承诺,因为顺便说一句,在云中获得体面定价的唯一方法不是每天购买,也不是每天租赁,而是让自己遵守多年合同。
With compute, it’s often a year.
对于计算来说,通常需要一年。
That was in our case.
我们的情况就是如此。
3:22:58 And with storage, this was four years.
加上存储,这就是四年。
We signed a four-year contract to store our petabytes of customer files in the cloud to be able to get something just halfway decent affordable.
我们签署了一份为期四年的合同,将 PB 级的客户文件存储在云中,以便能够以实惠的价格获得一些东西。
So all of these projects came together to the sense that we’re now saving literally millions of dollars, projected about 10 million over five years.
因此,所有这些项目加在一起意味着我们现在实际上节省了数百万美元,预计五年内节省约 1000 万美元。
It’s always hard.
总是很难。
How do you do the accounting exactly and TOC this, that and the other thing, but it’s millions of dollars.
你如何准确地进行会计和TOC这个、那个和其他的事情,但它是数百万美元。
But it’s not just that.
但不仅如此。
It’s also the fact that getting out of the cloud meant returning to more of an original idea of the internet.
事实上,脱离云意味着更多地回归互联网的原始理念。
The internet was not the sign such that three computers should run everything.
互联网并不是三台计算机就可以运行一切的标志。
It was a distributed network such that the individual nodes could disappear and the whole thing would still carry on.
这是一个分布式网络,单个节点可以消失,但整个网络仍然会继续。
DARPA designed this such that the Russians could take out Washington and they could still fight back from New York, that the entire communication infrastructure wouldn’t disappear because there was no hub and spoke.
DARPA 的设计是为了让俄罗斯人可以消灭华盛顿,同时他们仍然可以从纽约反击,整个通信基础设施不会因为没有枢纽和辐条而消失。
It was a network.
这是一个网络。
I always found that an immensely beautiful vision, that you could have this glorious…
我总是发现一个非常美丽的愿景,你可以拥有这个光荣的......
3:24:00 An immensely beautiful vision that you could have this glorious internet and no single node was in control of everything and we’ve returned to much more of a single node controlling everything idea with these hyperscalers.
这是一个非常美丽的愿景,您可以拥有这个辉煌的互联网,并且没有任何一个节点可以控制一切,而我们已经通过这些超大规模器回归到更多的单个节点控制一切的想法。
When US-East one, the main and original region for AWS goes offline, which has happened more than a few times over the years, seemingly a third of the internet is offline.
当美国东部地区(AWS 的主要和原始区域)离线时(多年来这种情况已经发生过多次),似乎有三分之一的互联网离线。
That in itself is just an insult to DARPA’s design.
这本身就是对 DARPA 设计的侮辱。
It doesn’t detract from the fact that what AWS built was marvelous, I think the Cloud has moved so many things so far forward especially around virtualization, automation, setup, it’s all those giant leaps forward for system administration that’s allowing us now to be able to run things on-prem in a way that smells and feels much like the Cloud just at half the cost or less and with the autonomy and the satisfaction of owning hardware.
这并没有减损AWS构建的东西是了不起的事实,我认为云已经向前推进了很多事情,特别是在虚拟化、自动化、设置方面,所有这些系统管理的巨大飞跃让我们现在能够以一种闻起来和感觉上很像云的方式在本地运行东西,而成本只有一半或更少,并且具有拥有硬件的自主性和满足感。
3:24:59 I don’t know the last time you looked at an actual server and took it apart and looked inside of, these things are gorgeous.
我不知道您上次查看实际服务器并将其拆开并查看内部是什么时候,这些东西太漂亮了。
I posted a couple of pictures of our racks out in the data center and people always go crazy for them because we’ve gotten so abstracted from what the underlying metal looks like in this Cloud age that most people have no idea.
我发布了几张数据中心机架的照片,人们总是为它们而疯狂,因为在这个云时代,我们对底层金属的外观如此抽象,以至于大多数人都不知道。
They have no idea how powerful a modern CPU is, they have no idea how much RAM you can fit into a 1U rack.
他们不知道现代 CPU 有多强大,也不知道 1U 机架可以容纳多少 RAM。
Progress in computing has been really exciting especially, I’d say, in the last four to five years after TSMC, with Apple’s help, really pushed the envelope.
我想说,计算领域的进步确实令人兴奋,尤其是在台积电在苹果的帮助下真正突破极限之后的四到五年里。
We sat still there for a while while Intel was spinning their wheels going nowhere and then TSMC, with Apple propelling them, really move things forward and now servers are exciting again.
我们坐在那里不动了一段时间,而英特尔却毫无进展,然后台积电在苹果的推动下,真正推动了事情的发展,现在服务器再次令人兴奋。
You’re getting jumps year over year in the 15, 20% rather than the single digit we were stuck with for a while and that all means that owning your own hardware is a more feasible proposition than it’s ever been, that you need fewer machines to run ever more and that more people should do it because, as much as I love Jeff and Amazon, he doesn’t need another, whatever, 40% margin on all the tech stuff that I buy to run our business.
你的利润逐年跃升到 15%、20%,而不是我们一段时间以来一直坚持的个位数,这一切都意味着拥有自己的硬件比以往任何时候都更可行,你需要更少的机器来运行更多的东西,更多的人应该这样做,因为,尽管我很喜欢杰夫和亚马逊,但他不需要我购买的所有技术产品再获得 40% 的利润来运营我们的业务。
3:26:19 And this is just something I’ve been focused on both because of the ideology around honoring DARPA’s original design, the practicality of running our own hardware, seeing how fast we can push things with the latest machines and then saving the money.
这正是我一直关注的事情,因为尊重 DARPA 的原始设计的意识形态,运行我们自己的硬件的实用性,看看我们可以用最新的机器多快地推动事物,然后节省金钱。
And that has all been so enjoyable to do but also so counterintuitive for a lot of people because it seemed, I think, for a lot of people in the industry, that we’d all decided that we were done buying computers, that that was something we would just delegate to AWS and Azure and Google Cloud, that we didn’t have to own these things anymore.
这一切都是非常令人愉快的,但对很多人来说也是违反直觉的,因为我认为,对于业内很多人来说,我们都决定不再购买电脑了,我们只需将这些事情委托给 AWS、Azure 和谷歌云,我们就不必再拥有这些东西了。
So, I think there’s a little bit of whiplash for some people that, oh, I thought we agreed we were done with that and then along come us and say, “Ah, you know what?
所以,我认为有些人会感到有点恼火,哦,我以为我们同意我们已经完成了这件事,然后我们说:“啊,你知道吗?
Maybe you should have a computer.”
也许你应该有一台电脑。”
Is there some pain points to running your own servers?
运行自己的服务器有什么痛点吗?
Oh, plenty.
哦,很多。
3:27:10 There’s pain points to operating computers of all kind.
操作各种计算机都存在痛点。
Have you tried using a personal computer these days?
这些天你尝试过使用个人电脑吗?
Half the time, when my kids or my wife have a problem, I go like, “Have you tried turning it just off and on again?” Computers are inherently painful to humans.
有一半的时间,当我的孩子或我的妻子遇到问题时,我会说,“你试过把它关掉然后再打开吗?”计算机本质上给人类带来痛苦。
Owning your own computer though makes some of that pain worth it, there’s a responsibility that comes with actually owning the hardware that, to me, at least make the burden of operating that hardware seems slightly more enjoyable.
虽然拥有自己的电脑会让一些痛苦变得值得,但实际上拥有硬件也伴随着一种责任,对我来说,至少让操作硬件的负担看起来稍微更愉快。
Now, there are things you have to learn, certainly at our scale too.
现在,有些东西你必须学习,当然也是在我们的规模上。
We’re not just buying a single computer and plugging it into an Ethernet, we have to have racks and racks of them and you’ve got to set it up with network cabling and there is some specialized expertise in that but it’s not like that expertise is building nuclear rockets, it’s not widely distributed.
我们不仅仅是购买一台计算机并将其插入以太网,我们还必须有一个又一个的机架,并且必须使用网络布线对其进行设置,并且在这方面有一些专门的专业知识,但这并不像建造核火箭的专业知识,它的分布并不广泛。
3:27:58 Literally, the entire internet was built on people knowing how to plug in a computer to the internet.
从字面上看,整个互联网是建立在人们知道如何将计算机连接到互联网的基础上的。
Oh, ethernet cable goes here, power cable goes here, let’s boot up Linux.
哦,以太网线在这里,电源线在这里,让我们启动 Linux。
That’s how everyone put anything online until 10, 12 years ago when the Cloud took over.
这就是每个人将任何东西放到网上的方式,直到 10、12 年前云接管为止。
So, the expertise is there and can be rediscovered, you too can learn how to operate a Linux computer.
所以,专业知识就在那里,可以重新发现,你也可以学习如何操作 Linux 计算机。
Yeah.
是的。
3:28:21 And when you get a bunch of them, there’s a bunch of flashing LEDs and it’s just so exciting.
当你拿到一堆时,就会看到一堆闪烁的 LED,这真是太令人兴奋了。
Well, that’s beautiful, calming, amazing.
嗯,这很美丽,令人平静,令人惊奇。
3:28:26 Computers are really fun.
电脑真的很有趣。
This is actually something I’ve gotten into even deeper after we moved out of the Cloud.
实际上,在我们离开云之后,我对这个问题有了更深入的了解。
Now, my next tingle is that, if you could move out of the Cloud, can you also move out of the data center?
现在,我的下一个问题是,如果你可以移出云,你也可以移出数据中心吗?
Personal servers have gotten really scarily quick inefficient and personal internet connections rival what we connected data centers with just a decade or two ago.
个人服务器的速度变得非常快,效率低下,个人互联网连接可以与我们一两年前连接数据中心的连接相媲美。
So, there’s a whole community around this concept of homelabbing which is essentially installing server hardware in your own apartment, connecting it to the internet and exposing that directly to the internet that harks back to those glorious days of the ’90s when people building for the internet would host the actual website on their actual computer in the closet.
因此,围绕家庭实验室这一概念有一个完整的社区,它本质上是在您自己的公寓中安装服务器硬件,将其连接到互联网并将其直接暴露到互联网上,这让人回想起 90 年代的辉煌岁月,当时人们为互联网构建的时候会在他们柜子里的实际计算机上托管实际的网站。
3:29:20 And I’m pretty fired up about that, I’m doing a bunch of experiments, I’ve ordered a bunch of home servers for my own apartment.
我对此非常兴奋,我正在做很多实验,我已经为我自己的公寓订购了一堆家庭服务器。
I marvel at the fact that I can get a five gigabit fiber connection now, I think.
我想,我现在可以获得 5 GB 光纤连接,这让我感到惊讶。
Do you know what five gigabit, that could have taken Basecamp to multiple millions of MRR in the way that back then I ran the whole business on a single box with 2004 technology and probably 100 megabit cable.
你知道吗,5 GB 可以让 Basecamp 达到数百万 MRR,就像当时我在一个采用 2004 年技术和可能 100 MB 电缆的单一设备上运行整个业务一样。
The capacity we have access to, both in terms of compute and connectivity, is something that people haven’t readjusted to.
我们可以使用的计算和连接能力是人们尚未重新适应的。
And this happens sometimes in technology where progress sneaks up on you, this happened with SSDs, I love that by the way.
这种情况有时会发生在技术进步悄悄发生的领域,这种情况发生在 SSD 上,顺便说一句,我喜欢这样。
3:30:04 We designed so much of our technology and storage approach and database design around spinning metal disks that had certain seek rate properties and then we went to NVMe and SSDs and it took quite a while for people to realize that the systems had to be built fundamentally different now.
我们围绕具有一定寻道率特性的旋转金属磁盘设计了很多技术、存储方法和数据库设计,然后我们转向了 NVMe 和 SSD,人们花了很长时间才意识到现在必须构建根本不同的系统。
That the difference between memory and disk was now far smaller when you weren’t spinning these metal plates around with a little head that had to read off them, you were essentially just dealing with another type of memory.
现在,当您不使用必须读取它们的小头旋转这些金属板时,内存和磁盘之间的差异现在要小得多,您本质上只是在处理另一种类型的内存。
I think we’re a little bit in that same phase when it comes to the capacity of new businesses to be launched literally out of your bedroom.
我认为,当谈到从你的卧室里推出新业务的能力时,我们有点处于同一阶段。
So, you can get pretty far with a large user base with homelabbing.
因此,您可以通过家庭实验室获得大量用户群。
Absolutely.
绝对地。
That’s exciting.
这太令人兴奋了。
3:30:51 That’s like the old school.
这就像老学校一样。
That’s really exciting, right?
这真的很令人兴奋,对吧?
It’s bringing back the start-up in the garage in the literal physical sense of the word.
它让车库里的初创企业重新焕发了生机。
3:30:54 Now, some of that is do we need to, you can get relatively cheap Cloud capacity if you don’t need very much.
现在,其中一些是我们需要的,如果您不需要太多,您可以获得相对便宜的云容量。
Hell, yes, we need to.
天啊,是的,我们需要这样做。
3:31:07 The feeling of doing that by yourself, of seeing the LED lights in your own home, there’s nothing like that.
亲手做这件事,看到自己家里的 LED 灯,这种感觉是无与伦比的。
There’s just an aesthetic to it that I am completely in love with and I want to try to push on.
我完全爱上了它的美学,并且我想尝试继续前进。
3:31:17 Now, it’s not going to be the same thing as getting out of the Cloud?
现在,这与离开云不是一回事吗?
I’m not sure.
我不知道。
Our exit out of the cloud was not the exit out of the data center.
我们退出云并不是退出数据中心。
We basically just bought hardware, shipped it to a professionally managed data center that we didn’t even actually touch.
我们基本上只是购买硬件,将其运送到我们甚至没有实际接触过的专业管理的数据中心。
This is the other misconception people have about moving out of the Cloud, that we have a bunch of people who are constantly driving to a data center somewhere to rack new boxes and change dead RAM, that’s not how things happen in the modern world at all.
这是人们对脱离云计算的另一个误解,我们有一群人不断地开车到某个数据中心去架设新机器并更换死掉的内存,这根本不是现代世界发生的事情。
We have a company called Summit, previously Deft, that is what we call white gloves, they work in the data center.
我们有一家公司叫Summit,以前叫Deft,也就是我们所说的白手套,他们在数据中心工作。
3:31:54 When we need something like, “Hey, Deft, can you go down and swap the dead SSD in box number six?” They do it and what we see is akin to what someone working with the Cloud would see.
当我们需要类似这样的信息时,“嘿,Deft,你能下去更换 6 号盒子里坏掉的 SSD 吗?”他们这样做了,我们所看到的与使用云工作的人所看到的类似。
You see IP addresses coming online, you see drives coming online, it’s not that different but it is a whole heck of a lot cheaper when you are operating at our scale.
你会看到IP地址上线,你会看到驱动器上线,这并没有什么不同,但当你以我们的规模运营时,它要便宜得多。
And of course it is, of course it’s cheaper to own things if you need those things for years rather than it is to rent it.
当然是的,如果你多年需要这些东西,那么拥有这些东西当然比租用它更便宜。
In no other domain would we confuse those two things that it’s cheaper to own for the long duration than it is to rent.
在任何其他领域,我们都不会混淆这两件事:长期拥有比租赁更便宜。
There is some gray area, I’ve gotten a chance to interact with the XAI team a bunch, I’m probably going back out there in Memphis to do a big podcast associated with the Grok release.
有一些灰色地带,我有机会与 XAI 团队进行多次互动,我可能会回到孟菲斯做一个与 Grok 版本相关的大型播客。
3:32:29 And those folks, in order to achieve the speed of building up the cluster and to solve some of the novel aspects that have to do with the GPU, with the training, they have to be a little bit more hands-on, it’s less white glove.
而那些人,为了达到建立集群的速度并解决一些与 GPU 有关的新问题,通过训练,他们必须更多地亲自动手,而不是白手套。
Oh, and I love that.
哦,我喜欢那个。
3:32:54 They’re dealing with a frontier problem and they’re dealing with it not by renting a bunch of GPUs at a huge markup from their main competitor, they’re going like, “No, screw that.
他们正在处理一个前沿问题,他们不是通过以高价从主要竞争对手那里租用一堆 GPU 来解决这个问题,他们会说,“不,管它的。
We’re going to put 100,000 GPUs in our own tents and build it in absolute record time.” So, I think, if anything, this is testament to the idea that owning hardware can give you an advantage both at the small scale, at the medium scale and at the pioneer levels of computing.
我们将在自己的帐篷中放置 100,000 个 GPU,并以绝对创纪录的时间建造它。”所以,我认为,如果有的话,这证明了这样一个想法:拥有硬件可以给你带来小规模、中等规模和前沿计算水平的优势。
By the way, speaking of teams, XAI, Tesla are large companies but all those folks …
顺便说一句,说到团队,XAI、特斯拉都是大公司,但所有这些人……
3:33:20 I don’t know what it is about.
我不知道它是关于什么的。
You said Jeff is really good at finding good people, at seeing strength in people.
你说杰夫真的很善于发现优秀的人,善于看到人们的力量。
Elon is also extremely …
埃隆也非常……
I don’t know what that is.
我不知道那是什么。
Actually, I’ve never actually seen, maybe you could speak to that, he’s good at finding greatness.
事实上,我从来没有真正见过,也许你可以这么说,他善于发现伟大。
I don’t think he’s finding as much as he’s attracting.
我认为他所发现的不如他所吸引的那么多。
3:33:48 He’s attracting the talent because of the audaciousness of his goals and his mission, the clarity by which he states it.
他之所以吸引人才,是因为他的目标和使命大胆,而且表述清晰。
He doesn’t have to go scour earth to find the best people, the best people come to him because he is, talking about Elon here, one of the singular most invigorating figures in both the same order of the universe here, haters and lovers.
他不必走遍地球去寻找最好的人,最好的人会来找他,因为他在这里谈论埃隆,是宇宙中同一秩序中最令人振奋的人物之一,无论是仇恨者还是爱人。
He’s having such an impact at such a scale that of course he’s got to have literally millions of people think he’s the worst person in the world and he’s also going to have millions of people thinking he’s the greatest gift to humanity.
他的影响力如此之大,当然,他肯定会让数百万人认为他是世界上最糟糕的人,也会让数百万人认为他是人类最伟大的礼物。
Depending on the day, I’m somewhere in between but I’m more on the greatest gift to humanity end of the scale than I’m on the other end of the scale.
根据具体情况,我介于两者之间,但我更倾向于为人类提供最伟大的礼物,而不是天平的另一端。
And I think that really inspires people in a way that we’ve almost forgotten that that level of audacity is so rare that, when we see it, we don’t fully know how to analyze it.
我认为这确实激励了人们,但我们几乎忘记了这种大胆程度是如此罕见,以至于当我们看到它时,我们并不完全知道如何分析它。
3:34:48 We think of Elon as finding great talent, and I’m sure he is also good at that, but I also think that this beacon of the mission.
我们认为埃隆是在寻找伟大的人才,我相信他也擅长这一点,但我也认为这是使命的灯塔。
We’re going to fucking Mars, we’re going to transform transportation into using electricity, we’re going to cover the earth in internet is so grand that there are days where I wake up and go like, “What the fuck am I doing with these to-do lists?” Like, “Jesus, should I go sign up for something like that?”
我们要去他妈的火星,我们要把交通方式转变为使用电力,我们要把互联网覆盖整个地球,这太伟大了,以至于有时候我醒来后会想,“我他妈的在用这些待办事项清单做什么?”就像,“天啊,我应该去报名参加这样的活动吗?”
Yeah.
是的。
That sounds invigorating in a sense I can only imagine a Viking back in 1050 going, “Should we go to Normandy?
从某种意义上说,这听起来令人振奋,我只能想象 1050 年的维京人会说:“我们应该去诺曼底吗?
3:35:17 You may die along the way but, oh, boy, does that sound like a journey and an adventure.”
你可能会死在路上,但是,哦,天哪,这听起来像是一次旅程和冒险吗?”
There’s a few components there, one definitely this bigger than life mission and really believing it.
其中有几个组成部分,其中一个绝对是比人生更大的使命,并且真正相信它。
3:35:31 Every other sentence is about Mars, really believing it.
其他每句话都是关于火星的,真的相信它。
It doesn’t really matter what anybody else, the criticism, anything, there’s a very singular focused big mission.
其他人、批评或其他任何事情并不重要,有一个非常单一的目标重大使命。
But I think it also has to do a bunch of the other components like being able to hire well once the people, once wants to beacon attracts.
但我认为它还必须做一些其他的事情,比如一旦人们、一旦想要的灯塔吸引了,就能够很好地招聘。
And I’ve just seen people that don’t necessarily on paper have a resume with a track record, I’ve seen who now turned out to be legendary people who basically tosses on the ball of leadership, sees something in them and says and gives them the ownership and they run with it and that happens at every scale that, there’s a real meritocracy.
我刚刚看到一些人不一定在纸面上有一份有业绩记录的简历,我看到谁现在变成了传奇人物,他们基本上在领导力上投掷球,在他们身上看到一些东西,并说并给予他们所有权,他们用它来运行,这种情况发生在任何规模上,有一个真正的精英管理。
3:36:23 And there’s just you could see the flourishing of human intellect in these meetings, in these group getting together where the energy is palpable.
在这些会议中,在这些聚集在一起的团体中,你可以看到人类智慧的蓬勃发展,能量是显而易见的。
It’s exciting for me to just be around that because there’s not many companies I’ve seen that in because, when a company becomes successful and larger, it somehow suffocates that energy that, I guess, you see in start-ups at the early stages but it’s cool to see it at a large company that’s actually able to achieve scale.
对我来说,能够参与其中是很令人兴奋的,因为我见过的公司并不多,因为当一家公司变得成功并且规模更大时,它会以某种方式窒息那种能量,我想,你在早期阶段的初创企业中会看到这种能量,但在一家实际上能够实现规模的大公司中看到这种能量是很酷的。
I think part of the secret there is that Elon actually knows things and, when you know things, you can evaluate the quality of work products.
我认为其中的部分秘密在于埃隆实际上了解事物,当你了解事物时,你可以评估工作产品的质量。
3:37:01 And when you can evaluate the quality of work products, you can very quickly tell who’s full of shit and who will actually take you to Mars and you can fire the people who is full of shit and you can bet on the people who’ll get us to Mars.
当你可以评估工作产品的质量时,你可以很快分辨出谁是一派胡言,谁会真正带你去火星,你可以解雇那些一派胡言的人,你可以赌那些能把我们带到火星的人。
That capacity to directly evaluate the competency of individuals is actually a little bit rare.
这种直接评估个人能力的能力实际上有点罕见。
It’s not widely distributed amongst managers, hiring managers.
它在经理和招聘经理中并未广泛分布。
It’s not something you can easily delegate to people who are not very skilled at the work itself.
这不是一件你可以轻易委托给那些对工作本身不太熟练的人的事情。
And Elon obviously knows a lot about a lot and he can smell who knows stuff for real.
埃隆显然知道很多事情,他能嗅出谁是真正懂事的人。
3:37:51 And is this, at our tiny scale, something I’ve tried to do in the same order where, when we hire programmers, for example, it’s going to be interesting now with AI as the new challenge, but up until this point, the main pivot point for getting hired was not your resume, was not the schooling you’ve had, it was not your grades, it was not your pedigree, it was how well you did on two things.
在我们规模很小的情况下,我试图按照同样的顺序做一些事情,例如,当我们雇用程序员时,现在人工智能作为新的挑战将会很有趣,但到目前为止,被雇用的主要关键点不是你的简历,不是你所接受的教育,不是你的成绩,不是你的出身,而是你在两件事上做得如何。
A, your cover letter because I can only work with people remotely if they’re good writers.
答,你的求职信,因为我只能与优秀作家远程合作。
So, if you can’t pen a proper cover letter and can’t bother to put in the effort to write it specifically for us, you’re out.
因此,如果您写不出一封合适的求职信,也懒得专门为我们写,那么您就出局了。
Two, you have to be able to program really well to the degree that I can look at your code and go like, “Yeah, I want to work with that person.” Not only I want to work with that person, I want to work on that person’s code when I have to see it again in five years to fix some damn bug.
第二,你必须能够很好地编程,达到我可以看到你的代码并说“是的,我想和那个人一起工作”的程度。我不仅想和那个人一起工作,而且当我必须在五年后再次看到那个人的代码以修复一些该死的错误时,我想处理那个人的代码。
3:38:44 So, we’re going to give you a programming test that simulates the way we work for real and we’re going to see how you do.
因此,我们将为您提供一个模拟我们真实工作方式的编程测试,我们将看看您的表现。
And I’ve been surprised time and again where I thought for sure this candidate is a shoe-in, they sound just right, the CV is just right and then you see the code getting turned in and I’m like, “No way.
我一次又一次地感到惊讶,我认为这个候选人肯定是合适的,他们听起来很合适,简历也很合适,然后你看到代码被提交,我想,“不可能。
No way are we hiring this person.” And the other way has been true as well.
我们不可能雇用这个人。”另一种方式也是如此。
I’d go like, “I don’t know about this guy or this woman Eeh, I don’t know.” and then they turn in their code stuff and I’m like, “Holy shit, can that person be on my team tomorrow preferably?” The capacity to evaluate work product is a superpower when it comes to hiring.
我会说,“我不认识这个男人或这个女人,呃,我不知道。”然后他们交出代码,我就想,“天哪,那个人明天可以加入我的团队吗?”在招聘方面,评估工作产品的能力是一种超能力。
There’s a step that I’ve seen Elon do really well which is be able to show up and say this can be done simpler.
我看到埃隆在一个步骤上做得非常好,那就是能够出现并说这可以做得更简单。
Yes.
是的。
But he knows what he’s talking about and then the engineer, because Elon knows enough, the engineer’s first reaction, you can tell, it’s almost like rolling your eyes if your parent tells you something, this is not, no, I’ve been working on this for a month, you don’t …
但他知道他在说什么,然后是工程师,因为埃隆知道得足够多,工程师的第一反应,你可以看出来,如果你的父母告诉你什么,这几乎就像翻白眼,这不是,不,我已经为此工作了一个月,你不......
3:39:32 But then, when you have that conversation a little more, you realize, no, it can be done simpler, find the way.
但是,当你再进行更多的对话时,你会意识到,不,它可以做得更简单,找到方法。
So, there’s a good …
所以,有一个很好的……
When two engineers are talking, one might not have perfect information but if the senior engineer has good instinct that’s been battle earned, then you can say simplify and it actually will result in simplification.
当两个工程师交谈时,其中一个可能没有完美的信息,但如果高级工程师具有经过战斗赢得的良好直觉,那么你可以说简化,它实际上会导致简化。
And I think this is the hallmark of the true greats that they, not only have the insight into what’s required to do the work, but they also have the transcendent vision to go beyond what the engineer would do, the programmer would do.
我认为这是真正伟人的标志,他们不仅洞察工作所需的内容,而且还拥有超越工程师、程序员所做的事情的超凡视野。
3:40:17 I think if we are looking at these rarities, obviously, the myth of Steve Jobs was also this.
我认为,如果我们关注这些稀有事物,显然,史蒂夫·乔布斯的神话也是如此。
Even though perhaps he was less technical than Elon is in many ways, he had the same capacity to show up to a product team and really challenge them to look harder for the simplification or for making things greater in a way that would garner disbelief from the people who are supposed to do it.
尽管他在很多方面的技术水平可能不如埃隆,但他有同样的能力向产品团队展示并真正挑战他们更加努力地寻求简化或以一种会引起应该这样做的人的怀疑的方式使事情变得更好。
This guy is full of, this is crazy, we can never …
这家伙充满了,这太疯狂了,我们永远不能……
And then, two months later, this.
然后,两个月后,这个。
3:41:05 So, there is something of this where you need the vision, you need it anchored by the reality of knowing enough about what’s possible, knowing enough about physics, knowing enough about software that you’re not just building bullshit.
所以,在这方面你需要愿景,你需要它以现实为基础,对可能性有足够的了解,对物理有足够的了解,对软件有足够的了解,这样你就不仅仅是在构建废话。
There are plenty of people who can tell a group of engineers, “No, just do it faster,” but that’s not a skill, it’s got to be anchored in something real.
有很多人可以告诉一群工程师,“不,只要做得更快”,但这不是一项技能,它必须扎根于真实的东西。
But it’s also got to be anchored in, it’s a tired word, but a passion for the outcome to a degree where you get personally insulted if a bad job is done.
但它也必须扎根于,这是一个令人厌倦的词,但对结果的热情达到了如果工作做得不好你会受到个人侮辱的程度。
This is what I’ve been writing about lately with Apple, they’ve lost that asshole who would show up and tell engineers that what they did was not good enough in ways that would actually perhaps make them feel a little small in the moment but would spark that zest to really fix it.
这就是我最近在苹果公司写的,他们失去了那个混蛋,他会出现并告诉工程师他们所做的还不够好,实际上可能会让他们在那一刻感觉有点渺小,但会激发真正解决问题的热情。
Now they have a logistics person who’s very good at sourcing components and lining up production Gantt charts but you’re not getting that magic.
现在他们有一个非常擅长采购组件和排列生产甘特图的物流人员,但你并没有获得这种魔力。
3:42:12 Now, what’s interesting with that whole scenario was I actually thought how well Tim Cook ran things and has run things at Apple for so long that maybe we were wrong, maybe we were wrong about the criticality of Steve Jobs to the whole mission, maybe you could get away with not having it.
现在,整个场景的有趣之处在于,我实际上认为蒂姆·库克(Tim Cook)的管理能力有多好,并且在苹果公司管理了这么长时间,也许我们错了,也许我们对史蒂夫·乔布斯(Steve Jobs)对整个使命的重要性的认识是错误的,也许你可以不做它而逃脱惩罚。
I think the bill was just going to come later and now it has, Apple is failing in all these ways that someone who would blow up Steve’s ghost and really exalt him would say like, “See, this is what’s happening now.” So, the other thing here too, of course, is it’s impossible to divorce your perception of what’s a critical component of the system and the messy reality of a million different moving parts in the reality of life and you should be skeptical about your own analysis and your own thesis at all time.
我认为该法案本来会稍后出台,但现在已经出台了,苹果在所有这些方面都失败了,以至于那些想要炸毁史蒂夫的幽灵并真正赞扬他的人会说,“看,这就是现在正在发生的事情。”所以,当然,这里的另一件事是,你不可能将你对系统的关键组成部分的看法与现实生活中一百万个不同的移动部件的混乱现实分开,你应该始终对你自己的分析和你自己的论文持怀疑态度。
Since you mentioned Apple, I have to ask, somebody in the internet submitted the question.
既然你提到了苹果,我不得不问,互联网上有人提出了这个问题。
3:43:02 Does DHH still hate Apple?
DHH 还讨厌苹果吗?
I believe the question is.
我相信问题是。
So, there was a time when Basecamp went to war with Apple over the 30%, can you tell the saga of that battle?
那么,曾经有一段时间,Basecamp 与苹果为了 30% 的份额发生了战争,你能讲述一下那场战斗的传奇故事吗?
Yes, but first I’ll tell you how I fell in love with Apple which was all the way back in also early 2000s.
是的,但首先我要告诉你我是如何爱上苹果的,早在 2000 年代初。
3:43:25 When Microsoft was dominating the industry in a way we now see Apple and Google dominate mobile phones, Microsoft was just everything when it came to personal computers and I really did not like the Microsoft of the ’90s.
当微软以现在苹果和谷歌统治手机的方式统治这个行业时,微软在个人电脑方面就是一切,我真的不喜欢 90 年代的微软。
The Microsoft of the ’90s was the cut off the air supply to Netscape kind of characters, was the Bill Gates sitting defiant in an interview with the DOJ asking about what the definition of what is and just overall unpleasant, I think.
90 年代的微软切断了对 Netscape 这类人物的空气供应,比尔·盖茨在接受司法部采访时挑衅地询问什么是定义,我认为总体上令人不快。
You can have respect for what was achieved but I certainly didn’t like it.
你可以尊重所取得的成就,但我当然不喜欢它。
And as we’ve talked about, I came begrudgingly to the PC after Commodore fell apart and I couldn’t continue to use the Amiga so I already had a bit of a bone to pick with PCs just over the fact that I love my Amiga so much.
正如我们所讨论的,在 Commodore 崩溃后,我不情愿地转向了 PC,而且我无法继续使用 Amiga,所以我已经对 PC 产生了一些不满,因为我非常喜欢我的 Amiga。
3:44:23 But then in the early 2000s, Apple emerged as a credible alternative because they bet the new generation of Macs on Unix underpinnings and that allowed me to escape from Microsoft and suddenly I became one of the biggest boosters of Apple.
但在 2000 年代初,Apple 成为了一个可靠的替代方案,因为他们将新一代 Mac 的赌注押在 Unix 基础上,这让我摆脱了 Microsoft,突然间我成为了 Apple 最大的支持者之一。
I was in my graduating class at the Copenhagen Business School, I started with the first white iBook, first person using Mac and, by the time we were done in graduating, I had basically converted half the class to using Apple computers because I would evangelize them so hard and demonstrate them and do all the things that a super fan would do and I continued that work over many years.
我在哥本哈根商学院的毕业班上,我从第一本白色 iBook 开始,这是第一个使用 Mac 的人,当我们毕业时,我基本上已经让一半的班级使用苹果电脑,因为我会非常努力地传播它们并演示它们,并做超级粉丝会做的所有事情,我继续这项工作很多年。
3:45:07 Jason and I actually in, I think, 2004, 2005, did an ad for Apple that they posted on the developer side where we were all about Apple is so integral to everything that we do and we look up to them and we are inspired by them.
事实上,我认为,Jason 和我在 2004 年、2005 年为 Apple 做了一则广告,他们在开发者方面发布了广告,我们都知道 Apple 是我们所做的一切不可或缺的一部分,我们尊敬他们,并受到他们的启发。
And that love relationship actually continued for a very long time, I basically just became a Mac person for 20 years.
而且这种恋爱关系实际上持续了很长一段时间,我基本上才成为Mac用户20年。
I didn’t even care about looking at PCs, it seemed irrelevant to me whatever Microsoft was doing which felt like such a relief because in the ’90s I felt like I couldn’t escape Microsoft and suddenly I had found my escape.
我什至不关心看个人电脑,无论微软在做什么,这对我来说似乎都无关紧要,这让我感觉很轻松,因为在 90 年代,我觉得我无法逃离微软,突然间我找到了逃避的方法。
And now I was with Apple and it was glorious and they shared so many of my sensibilities and my aesthetics and they kept pushing the envelope and there was so much to be proud of, so much to look up to.
现在我在苹果公司工作,这真是太光荣了,他们和我有很多共同的情感和审美观,他们不断挑战极限,有很多值得骄傲、值得尊敬的事情。
3:45:53 And then that started to change with the iPhone which is weird because the iPhone is what made modern Apple.
然后这种情况随着 iPhone 的出现而开始改变,这很奇怪,因为 iPhone 造就了现代苹果。
It’s what I lined up in 2007 together with Jason for five hours to stand in the line to buy a first generation product where Apple staff would clap at you when you walked out the store, I don’t know if you remember that.
这就是2007年我和Jason一起排队五个小时购买第一代产品的情景,当你走出商店时,苹果员工会向你鼓掌,我不知道你是否还记得。
It was a whole ceremony and it was part of that myth and mystique and awe of Apple.
这是一个完整的仪式,也是苹果神话、神秘和敬畏的一部分。
So, I wasn’t in the market for other computers, I wasn’t in the market for other computer ideas, I thought perhaps I’d be with the Mac until the end of days.
所以,我没有在市场上寻找其他电脑,也没有在市场上寻找其他电脑创意,我想也许我会一直使用 Mac 直到最后一天。
But as Apple discovered the gold mine it is to operate a toll booth where you don’t have to innovate, where you don’t actually even have to make anything, where you can just take 30% of other people’s business, there was a rot that crept in to the foundation of Apple and that started all the way back from the initial launch of the app store.
但当苹果公司发现了金矿,那就是经营一个收费站,在那里你不需要创新,你实际上甚至不需要制造任何东西,你只需拿走别人 30% 的业务,苹果公司的根基就开始腐烂,这种腐烂可以追溯到应用商店最初推出的时候。
3:46:55 But I don’t think we saw at the time, I didn’t see at the time, just how critical the mobile phone would become to computing in general.
但我认为我们当时并没有看到,我当时没有看到,手机对于一般计算来说将变得多么重要。
I thought when the iPhone came out that like, “Oh, it’s like a mobile phone, I’ve had a mobile phone since the early ’90s.” Well, it wasn’t a mobile phone, it was a mobile computer and, even more than that, it was the most important computer or it would become the most important computer for most people around the world which meant that, if you like to make software and wanted to sell it to people, you had to go through that computer.
我想,当 iPhone 面世时,“哦,它就像一部手机,我从 90 年代初就有了一部手机。”嗯,它不是一部手机,它是一台移动电脑,更重要的是,它是最重要的电脑,或者说它将成为世界上大多数人最重要的电脑,这意味着,如果你喜欢制作软件并想把它卖给人们,你必须通过那台电脑。
And if going through that computer meant going through Apple’s toll booth and not just having to ask them permission which in and of itself was just an indignity.
如果通过那台电脑意味着要通过苹果的收费站,而不是仅仅需要征得他们的许可,那么这本身就是一种侮辱。
When you’re used to the internet where you don’t have to ask anyone for permission about anything, you buy a domain and you launch a business and, if customers show up, boom, you’re a success and, if they don’t, well, you’re a failure.
当你习惯了互联网,任何事情都不需要征求任何人的许可时,你购买一个域名并开展一项业务,如果客户出现,你就成功了,如果他们不出现,那么你就是失败的。
3:47:47 Now, suddenly, before you could even launch, you’d have to ask Apple for permission?
现在,突然之间,在你推出之前,你必须征求苹果的许可?
That always sat wrong with me.
这一直让我觉得不对劲。
But it wasn’t until we launched HEY in 2001 that I saw the full extent of the rot that has snuck into Apple’s apple.
但直到 2001 年我们推出 HEY 时,我才看到了苹果公司的腐烂程度。
For people who don’t know and we’ll talk about it, HEY is this amazing attempt to solve the email problem.
对于那些不知道的人,我们将讨论它,嘿,这是解决电子邮件问题的惊人尝试。
Yes.
是的。
3:48:14 I like to pitch it as what Gmail would’ve been with 20 years of lessons applied in a way where they could actually ship.
我喜欢将其描述为 Gmail,将 20 年的经验教训应用到实际交付的方式中。
Gmail was incredible when it launched in 2004 and it still is a great product but it’s also trapped in its initial success.
Gmail 在 2004 年推出时令人难以置信,现在仍然是一款出色的产品,但它也陷入了最初的成功之中。
You can’t redesign Gmail today, it just has way too many users.
今天你无法重新设计 Gmail,它的用户太多了。
So, if you want fresh thinking on email, I wanted fresh thinking on email, I needed to build my own email system.
所以,如果你想要对电子邮件有新的思考,我想要对电子邮件有新的思考,我需要构建自己的电子邮件系统。
And not just my own email client, that’s what a lot of people have done over the years, they build a client for Gmail but you’re severely constrained if you don’t control the email server as well.
不仅仅是我自己的电子邮件客户端,这是很多人多年来所做的事情,他们为 Gmail 构建了一个客户端,但如果你不控制电子邮件服务器,你就会受到严重限制。
If you really want to move the ball forward with email, you have to control both the server and the client and that was the audacious mission we set out to do with HEY.
如果你真的想推动电子邮件的发展,你必须同时控制服务器和客户端,这就是我们与 HEY 一起完成的大胆任务。
3:49:00 And that was what’s funny, I thought our main obstacle here would be Gmail, it’s the 800-pound gorilla in the email space.
有趣的是,我认为我们这里的主要障碍是 Gmail,它是电子邮件空间中 800 磅重的大猩猩。
Something like 70% of all email in the US is sent through Gmail, I think their world rates are probably in that neighborhood as well, they’re just absolutely huge.
美国 70% 的电子邮件是通过 Gmail 发送的,我认为他们的世界费率也可能在这个附近,它们绝对是巨大的。
And trying to attack an enormous established competitor like that who’s so, actually, still loved by plenty of people and it’s free seems like a suicide mission.
试图攻击像这样一个巨大的老牌竞争对手,实际上仍然受到很多人的喜爱,而且它是免费的,这似乎是一个自杀任务。
And it was only a mission we signed up for because we had grown ambitious enough after making Basecamp for 20 years that we thought we could tackle that problem.
这只是我们签署的一项使命,因为在制作 Basecamp 20 年后,我们已经变得雄心勃勃,我们认为我们可以解决这个问题。
So, I thought, hey, this is dumb, I would not advise anyone to go head to head with Gmail, that seems like a suicide mission.
所以,我想,嘿,这太愚蠢了,我不会建议任何人与 Gmail 正面交锋,这似乎是一个自杀任务。
We’re going to try anyway because, you know what, if we fail, it’s going to be fine, we’re just going to build a better email experience for me and Jason and the people at the company and our cat and that’ll be okay because we can afford to do so.
无论如何,我们都会尝试,因为,你知道吗,如果我们失败了,也没关系,我们只是为我和杰森以及公司的员工和我们的猫打造更好的电子邮件体验,这没关系,因为我们有能力这样做。
3:50:03 But when we got ready to launch after spending two years building this product, millions of dollars in investment to it, we obviously needed mobile apps.
但是,当我们花了两年时间构建这个产品并投入数百万美元并准备推出时,我们显然需要移动应用程序。
You’re not going to be a serious contender with email if you’re not on a mobile phone and you need to be there with a native client.
如果您不使用手机并且需要使用本机客户端,那么您就不会成为电子邮件的有力竞争者。
So, we had built a great native client for both iOS and for Android and, as we were getting ready to launch, we submitted both of them to the app stores, got both of them approved on, I think, Friday afternoon for the iOS app and we then went live on Monday and we were so excited.
因此,我们为 iOS 和 Android 构建了一个出色的本机客户端,当我们准备发布时,我们将它们都提交给应用程序商店,我认为它们都在周五下午获得了 iOS 应用程序的批准,然后我们在周一上线,我们非常兴奋。
Hey, world, we’ve been working on this new thing, I’d love for you to check it out.
嘿,世界,我们一直在研究这个新事物,我希望你能看看。
And of course, as with anything when you launch a new product, there are some bugs so we quickly found a few in the iOS client and submitted a new build to Apple.
当然,与发布新产品时的任何事情一样,都会存在一些错误,因此我们很快在 iOS 客户端中发现了一些错误,并向 Apple 提交了新版本。
Hey, here’s our bug fixes, can you please update and that’s when all hell broke loose.
嘿,这是我们的错误修复,你能更新一下吗?那就是一切都崩溃了。
3:50:56 Not only were they not going to approve our update, they said, “Oh, wait a minute, we gave you permission to be in the app store but, I’m sorry, that was a mistake.
他们不仅不会批准我们的更新,还说:“哦,等一下,我们允许您进入应用程序商店,但是,我很抱歉,这是一个错误。
We see that you’re not using our in-app payment system which means that we don’t get 30% of your business, you will have to rectify that or you can’t be in the app store.” And first I thought, well, it got approved already, we’re running on the same model we’ve run Basecamp on in the app store for a decade, if you’re not signing up through the app and we’re signing up our own customers on our own website and they’re just going to the app store to download their companion app, we’re going to be fine.
我们发现您没有使用我们的应用内支付系统,这意味着我们无法获得您 30% 的业务,您必须纠正这一点,否则您将无法进入应用商店。”首先我想,好吧,它已经获得批准了,我们运行的模型与我们在应用商店运行 Basecamp 十年来的模型相同,如果你不通过应用程序注册,而我们在我们自己的网站上注册我们自己的客户,他们只是去应用程序商店下载他们的配套应用程序,我们会没事的。
That was the truth, right?
那是事实,对吧?
That was why I never got so fired up about the app store.
这就是为什么我从来没有对应用商店如此兴奋。
Even as Apple started tightening the screws, it was like, “My business was okay.”
即使苹果开始收紧政策,人们也感觉“我的生意还不错”。
3:51:42 Now, suddenly, my business wasn’t okay.
现在,突然间,我的生意不顺了。
Apple was willing to destroy HEY if we did not agree to give them 30% of all the signups that came through the iOS app.
如果我们不同意将 iOS 应用注册用户数的 30% 分给他们,Apple 愿意摧毁 HEY。
And it wasn’t just about the 30%, it was also about splitting and not longer having a direct relationship with our customers.
这不仅仅是关于 30% 的问题,也是关于分裂以及不再与我们的客户建立直接关系的问题。
When you sell an app in the app store, you’re not selling an app to a customer, you’re selling an app to inventory at Apple and then Apple sells an app to that customer.
当您在应用程序商店中销售应用程序时,您并不是向客户销售应用程序,而是向 Apple 的库存销售应用程序,然后 Apple 向该客户销售应用程序。
That customer has a purchasing relationship with Apple so, if you want to give discounts or refunds or whatever, it’s complete hell.
该客户与苹果有购买关系,因此,如果你想提供折扣或退款或其他什么,那就完全是地狱。
If you want to easily support multi-platform, that’s complete hell.
如果你想轻松支持多平台,那简直就是地狱。
If someone signs up for HEY on their iPhone and they want to switch to Android but, that billing relationship, it’s tied to Apple, it’s complete hell.
如果有人在 iPhone 上注册了 HEY,然后他们想切换到 Android,但是这种计费关系与 Apple 绑定在一起,那就完全是地狱。
For a million reasons, I did not want to hand my business over to Apple, I did not want to hand 30% of our revenue over to Apple so we decided to do something that seemingly Apple had never heard before, we said no.
出于一百万个原因,我不想将我的业务交给苹果,我不想将我们 30% 的收入交给苹果,所以我们决定做一些苹果以前从未听说过的事情,我们拒绝了。
3:52:48 We’re not going to add the in-app payment.
我们不会添加应用内付款。
I don’t care if you’re threatening us, this is not fair, this is not reasonable, please approve.
我不在乎你是否威胁我们,这不公平,这不合理,请批准。
And of course they didn’t and it escalated and, after a couple of days, we realized, you know what, this isn’t a mistake, this isn’t going away, we’re going to be dead if they go through with this.
当然,他们没有这样做,而且事情升级了,几天后,我们意识到,你知道吗,这不是一个错误,这不会消失,如果他们继续这样做,我们就会死掉。
If we’re not going to yield and give them the 30%, they’re going to kick us off unless we make such a racket, such noise that they will regret it and that’s exactly what then happened.
如果我们不让步,给他们 30%,他们就会把我们踢走,除非我们大声喧哗,吵闹得让他们后悔,而这正是后来发生的事情。
We were blessed by the fact that we launched HEY one week before the WWDC, the Worldwide Developer Conference, where Apple loves to get up on stage and harp on how much they do for developers, how much they love them and why you should build their new devices and so on and so forth.
令我们感到庆幸的是,我们在 WWDC(全球开发者大会)前一周推出了 HEY,苹果喜欢在会上登上舞台,喋喋不休地谈论他们为开发者做了多少事情、他们有多爱他们以及为什么你应该构建他们的新设备等等。
3:53:44 And then we also just happened to have a platform on the internet which is very convenient when you need to go to war with a $3 trillion company.
然后我们也恰好在互联网上有一个平台,当你需要与一家价值 3 万亿美元的公司开战时,它非常方便。
So, I started kicking and screaming-
于是,我开始又踢又叫——
Oh, boy.
哦,男孩。
…
……
3:53:55 and essentially turning it up to 11 in terms of the fight and going public with our denial to be in the app store.
并在斗争和公开否认我们进入应用程序商店方面将其基本上提高到了 11。
And that turned into a prolonged two-week battle with Apple that essentially ended in the best possible outcome we could have gotten as David fighting Goliath which was a bit of a truce.
这变成了与苹果的一场旷日持久的两周战斗,基本上以我们本可以得到的最好结果结束,就像大卫与歌利亚战斗一样,这有点休战。
We wouldn’t hand 30% over to Apple, they wouldn’t kick us out of the app store but we had to build some bullshit dummy accounts such that the app did something when you downloaded it.
我们不会把 30% 交给苹果,他们不会把我们踢出应用商店,但我们必须建立一些胡说八道的虚拟帐户,这样应用程序在你下载时就会做一些事情。
That was a rule that Phil Schiller seemingly made up on the fly when pressed for the fifth time by the media about why we couldn’t be in the app store when a million other companion apps could.
这是菲尔·席勒(Phil Schiller)在媒体第五次追问为什么我们不能进入应用程序商店而其他一百万个配套应用程序可以进入时,似乎是在匆忙中制定的一条规则。
But we just happened to be able to create so much pain and noise for Apple that it was easier for them to just let us be than to keep on fighting.
但我们恰好能够给苹果制造如此多的痛苦和噪音,以至于他们更容易放任我们,而不是继续战斗。
What do you think about Tim Sweeney’s victory with Epic over Apple?
您对 Tim Sweeney 凭借 Epic 战胜 Apple 有何看法?
I think it is incredible and the entire developer ecosystem, not just on iOS but on Android as well, owe Epic, Tim Sweeney and Mark Rein, an enormous debt of gratitude for taking on the only battle that has ever inflicted a serious wound on Apple in this entire sordid campaign of monopoly enforcement and that is Epic’s fight versus them.
我认为这是令人难以置信的,整个开发者生态系统,不仅是 iOS,还有 Android,都欠 Epic、Tim Sweeney 和 Mark Rein 一份巨大的感激之情,因为他们在这场肮脏的垄断执法运动中,与他们进行了唯一一场对苹果造成严重伤害的战斗,那就是 Epic 与他们的战斗。
3:54:54 Tim recently revealed that it has cost well over $100 million in legal fees to carry on this battle against Apple.
蒂姆最近透露,为了与苹果进行这场斗争,公司花费了超过 1 亿美元的法律费用。
We, for a hot moment, considered suing Apple when they were threatening to kick us out.
当苹果公司威胁要把我们踢出去时,我们一度考虑起诉他们。
We shopped the case around with a few law firms and perhaps, of course, they would tell us you have a good case, they’re trying to sell a product here, but they would also tell us it’s going to cost a minimum of $10 million and it’s going to take five to seven years through all the appeals.
我们与几家律师事务所就这个案子进行了比较,当然,他们可能会告诉我们,你有一个很好的案子,他们正在尝试在这里销售产品,但他们也会告诉我们,这将至少花费 1000 万美元,并且完成所有上诉将需要五到七年的时间。
3:55:54 Now, we now learn the actual price tag was 10 times higher, right?
现在,我们得知实际价格高出 10 倍,对吗?
Epic spend over 100 million.
史诗花费过亿。
It would’ve destroyed us to take on Apple in the legal realm, only a company like Epic could do it.
如果我们在法律领域与苹果较量的话,我们会被毁掉,只有像 Epic 这样的公司才能做到这一点。
And only a company run by founders like Tim, like Mark could risk the business in the way that they did, the audacity they had to provoke the fight in the first place, which I thought was just incredible, and to stick with it for the long term.
只有像蒂姆和马克这样的创始人经营的公司才能像他们那样冒着业务风险,他们必须一开始就敢于挑起斗争,我认为这是令人难以置信的,并长期坚持下去。
No board would’ve signed off on this lawsuit to a professional CEO, no freaking way.
没有哪个董事会会在这起针对专业首席执行官的诉讼上签字,这太奇怪了。
So, the fact that they’ve been able to beat Apple in also the most hilarious way possible, I think it’s just incredible.
所以,事实上他们能够以最搞笑的方式击败苹果,我认为这真是令人难以置信。
Because, remember, their first victory in the case was actually not much of a victory, there were about 11 counts in the trial, Apple basically won 10 of them and the judge awarded Epic this one little win that Apple couldn’t tell them not to link up to the internet to be able to do the payment processing.
因为,请记住,他们在该案中的第一次胜利实际上并不是多大的胜利,审判中大约有 11 项罪名,苹果基本上赢得了其中的 10 项,法官判给 Epic 一个小小的胜利,因为苹果不能告诉他们不要连接到互联网才能进行支付处理。
3:57:04 So, they want this one little thing and, Apple, instead of just taking the 10 out of 11 wins and going, fine, you can have your little links but all these other rules stay in place decided to essentially commit criminal contempt of court as they’ve now been referred to for prosecution and angered the judge to such a degree that the rule of law in the US now is that you can launch an app in the app store and you don’t have to use in-app payment but you can have a direct billing relationship with a customer if you just link out to the open internet when you take the credit card and then hop back into the app.
所以,他们想要这一件小事,苹果公司,而不是仅仅从 11 场胜利中拿走 10 场,好吧,你可以拥有你的小链接,但所有这些其他规则仍然存在,决定本质上构成藐视法庭刑事犯罪,因为他们现在已被移交起诉,并激怒了法官,以至于美国现在的法治是,你可以在应用程序商店中启动应用程序,你不必使用应用程序内支付,但你可以与客户,如果您在获取信用卡时只是链接到开放互联网,然后跳回应用程序。
And we owe all of that to Tim and Mark, we owe all of that to Epic.
我们将这一切归功于 Tim 和 Mark,我们将这一切归功于 Epic。
We’re going to launch new apps any minute now, I hope, actually, in the next week to take advantage of this that revamp the HEY app so that people who download the HEY app off the Apple app store can sign up in the app and can then use the web to put in their credit card so we don’t-
我们随时都会推出新的应用程序,实际上,我希望在下周利用这一点来改进 HEY 应用程序,以便从 Apple 应用程序商店下载 HEY 应用程序的人可以在该应用程序中注册,然后可以使用网络存入他们的信用卡,这样我们就不会-
3:58:00 And can then use the web to put in their credit cards so we don’t have to pay 30% of the time.
然后可以使用网络存入他们的信用卡,这样我们就不必支付 30% 的费用。
We have a direct billing relationship and such that they can take that subscription to Android, to PCs, whatever, without any hassle.
我们有直接的计费关系,这样他们就可以毫无麻烦地将订阅带到 Android、PC 等任何设备上。
And we have Tim and Mark to thank for it.
为此我们要感谢蒂姆和马克。
Yeah, Tim …
是的,蒂姆……
3:58:16 I mean, like you said, founders, but also specific kind of founders because I think …
我的意思是,就像你说的,创始人,但也是特定类型的创始人,因为我认为……
Maybe you can educate me on this, but Tim is somebody who maintains to this day the unreasonableness of principles.
也许你可以在这方面教育我,但蒂姆是一个至今仍坚持不合理原则的人。
Yes.
是的。
3:58:32 That’s what I love.
这就是我所爱的。
I think sometimes maybe even with founders, you can get worn down.
我认为有时即使是创始人,你也会感到疲惫。
3:58:33 It’s a large company.
这是一家大公司。
Yes.
是的。
There’s a lot of smart “people” around you, lawyers, and just whispering your ear over time, and you’re like, “Well, just be reasonable.” This is a different thing to maintain …
你周围有很多聪明的“人”,比如律师,随着时间的推移,他们只是在你耳边窃窃私语,你会说,“好吧,讲道理吧。”这是要维护的另一件事......
3:58:38 I mean, Steve Jobs did this.
我的意思是,史蒂夫·乔布斯做到了这一点。
Still are the asshole.
依旧是混蛋。
Yes.
是的。
Who says, “No, this whole company, I’ll sink this whole fucking company over this.”
谁说:“不,整个公司,我要为此搞垮整个该死的公司。”
That’s the exact language, basically, I used in our original campaign.
基本上,这就是我在最初的竞选活动中使用的确切语言。
3:59:02 I will burn this business down before I hand over 30% of it to Apple.
在我把这家公司的 30% 交给苹果之前,我会烧掉它。
And that indignation, that actual rage, is something I try to be a little careful about tapping into because it is a little bit of a volatile compound because, I mean, I have a bunch of employees, we have a bunch of customers.
这种愤慨,那种真正的愤怒,是我在利用时要小心一点的东西,因为它是一种不稳定的化合物,因为,我的意思是,我有一群员工,我们有一群客户。
It would be pretty sad if the journey of 37 singles after 25 years would come to an end because Apple would burn us down or I would burn the business down over this fight with Apple.
如果 25 年后 37 名单身人士的旅程就此结束,那将是非常悲伤的,因为苹果会烧毁我们,或者我会因为与苹果的这场斗争烧毁我们的业务。
But I think you also need that level of conviction to be able to even drive the day-to-day decisions.
但我认为你还需要一定程度的信念才能推动日常决策。
3:59:42 One of the other Apple examples …
苹果的其他例子之一……
And I know we’re racking on Apple a little bit here, and I don’t actually hate them.
我知道我们在这里有点折磨苹果,但我实际上并不讨厌他们。
I really don’t.
我真的不知道。
I am tremendously disappointed at the squandered relationship that did not need to be sold away for so little.
我对这种被浪费的关系感到非常失望,这种关系不需要以这么低的价格出售。
Now I understand that the app store toll booth is actually a pretty big business.
现在我明白了,应用商店收费站其实是一个相当大的生意。
It’s multiple billions, but Apple is a trillion-dollar company.
虽然有数十亿美元,但苹果是一家价值数万亿美元的公司。
And I think in the lens of history, this is going to come off as a tremendous mistake, and I think it’s already coming off as a tremendous mistake.
我认为,从历史的角度来看,这将是一个巨大的错误,而且我认为这已经是一个巨大的错误了。
The flop that was the Vision Pro was partly because Apple had pissed off every other developer.
Vision Pro 的失败部分是因为苹果惹恼了其他所有开发者。
4:00:20 No one was eager to come build the kind of experiences for their new hardware that would perhaps have made it a success.
没有人急于为他们的新硬件打造一种可能会取得成功的体验。
So when you’re on top and you have all the cards, you can dilute yourself into thinking that you can dictate all terms at all times and there are no long-term consequences.
因此,当你处于领先地位并且拥有所有牌时,你可以淡化自己的想法,认为你可以随时决定所有条款,并且不会产生长期后果。
Apple is learning, finally, the fact that there are long-term consequences and that developers actually are important to Apple’s business and the relationship is not entirely one-sided.
苹果最终认识到,这会产生长期后果,而且开发者实际上对苹果的业务很重要,而且这种关系并不完全是单方面的。
We don’t owe our existence to Apple and Apple alone.
我们的存在不仅仅归功于苹果公司。
We’ve built our own customer bases.
我们已经建立了自己的客户群。
4:00:53 Apple has been beneficial to the industry.
苹果公司给这个行业带来了好处。
I’m glad the iPhone exists, da da da da.
我很高兴 iPhone 的存在,哒哒哒哒。
It’s not that it doesn’t go both ways, but Apple wants it only one way.
这并不是说它不能双向发展,而是苹果只希望它能以一种方式实现。
And I think that is a mistake and it’s a mistake that was avoidable and, A, that’s disappointing.
我认为这是一个错误,而且是一个可以避免的错误,而且,这令人失望。
Certainly disappointing for me.
当然让我失望。
I’ve literally spent 20 years evangelizing this shit, right?
我确实花了 20 年的时间来传播这些东西,对吗?
I’ve spent so much money buying Apple hardware, excusing a bunch of things they’ve done over the years, and then for what?
我花了这么多钱购买苹果硬件,为他们多年来所做的很多事情辩解,然后又是为了什么呢?
For the fact that you wanted 30% of something that I created in the most unreasonable way possible.
因为你想要我以最不合理的方式创造的东西的 30%。
Couldn’t we have found a better way to do this?
难道我们就不能找到更好的方法来做到这一点吗?
I think they’re going to get forced to do a better way.
我认为他们将被迫采取更好的方式。
But did you also have to go through the indignity of having a criminal contempt charge against you getting referred to prosecution?
但是,您是否还必须经历因藐视法庭罪而被移送起诉的侮辱?
It just seems so beneath Apple, but it also seems so in line with what happens to huge companies who are run by “professional managers” rather than founders and unreasonable people.
这看起来实在是太不符合苹果公司的形象了,但它似乎也很符合那些由“职业经理人”而不是创始人和不讲理的人经营的大公司所发生的情况。
Well, we should probably also say that the thing you love about Apple, the great spirit of Apple, I think, still persists and there’s a case to be made that this 30% thing’s a particular slice of a company, not a defining aspect of the company and that Apple is still on top in the hardware that it makes and a lot of things that it makes.
好吧,我们也许还应该说,你对苹果的热爱,我认为苹果的伟大精神仍然存在,并且有理由证明,这 30% 的东西是公司的一个特定部分,而不是公司的决定性方面,而且苹果在其制造的硬件和它制造的很多东西方面仍然处于领先地位。
4:02:01 And this is …
这是……
That could be just a hiccup in a long story of a great company that does a lot of awesome stuff for humanity.
这可能只是一家为人类做了很多伟大事情的伟大公司的漫长故事中的一个小插曲。
So Apple is a truly special company.
所以苹果是一家真正特别的公司。
We mentioned Amazon.
我们提到了亚马逊。
There is no company like Apple.
没有一家公司像苹果一样。
I agree.
我同意。
4:02:40 This is why the disappointment is all greater.
这就是为什么失望更大。
Yeah, yeah.
是啊是啊。
Because we had such high aspirations and expectations to Apple, that they were the shining city on the hill and they were guiding the industry in a million positive ways.
因为我们对苹果抱有如此高的期望和期望,以至于他们是山上的闪亮之城,他们以一百万种积极的方式引导着这个行业。
4:02:44 I think, as we talked about earlier, hardware is exciting again in large part because Apple bought PA Semi and pursued a against all odds mission to get ARM up to the level it is today.
我认为,正如我们之前谈到的,硬件再次令人兴奋,很大程度上是因为苹果公司收购了 PA Semi,并排除万难地追求让 ARM 达到今天水平的使命。
And we have these incredible M chips now because of it.
正因为如此,我们现在拥有了这些令人难以置信的 M 芯片。
And the design sensibilities that Apple bring to the table are unparalleled.
苹果带来的设计敏感性是无与伦比的。
No one has taste certainly at the hardware level like Apple does.
没有人能像苹果那样在硬件层面具有一定的品味。
Even at the software level, I’d say there’s a lot of taste left in Apple, but there’s also some real sour taste now.
即使在软件层面,我想说苹果还剩下很多味道,但现在也有一些真正的酸味。
4:03:34 So they have to wash that off first, I think, before they find their way back.
所以我认为他们必须先把它洗掉,然后才能找到回来的路。
But Apple’s been in a mora as before.
但苹果公司一如既往地陷入了困境。
I mean, Wozniak and Steve Jobs started this thing in the garage, has great success with the Apple II.
我的意思是,沃兹尼亚克和史蒂夫·乔布斯在车库里开始了这件事,并在 Apple II 上取得了巨大成功。
He hands the company over to a sugar drink salesman who tanks the company into the ’90s.
他将公司交给了一名糖饮料推销员,后者让公司陷入了 90 年代的困境。
He doesn’t learn the lesson, spends the next 20 years building up this amazing company, then hands the company over again to a logistics person who presumably had more redeeming qualities than the first guy who put in charge, but still ends up leading the company astray.
他没有吸取教训,在接下来的 20 年里建立了这家令人惊叹的公司,然后将公司再次交给一位物流人员,他可能比第一个负责的人更有可取之处,但最终还是把公司引入了歧途。
4:04:13 Now this is the norm.
现在这是常态。
The norm is that great companies don’t last forever.
常态是伟大的公司不会永远持续下去。
In the long arc of history, almost no company lasts forever.
在历史的长河中,几乎没有一家公司能够永垂不朽。
There are very few companies around that was here a hundred years ago, even fewer 200 years ago, and virtually nothing that are a thousand years old outside of a handful of Japanese swords makers or something like that, right?
一百年前就存在的公司很少,两百年前就更少了,除了少数日本刀剑制造商或类似的公司之外,几乎没有任何一家有一千多年历史的公司,对吗?
So you can get deluded into thinking that something is forever when you’re in the moment and they seem so large.
因此,当你身处当下并且某些东西看起来如此巨大时,你可能会误以为它们是永恒的。
4:04:43 Apple could absolutely stumble and I think they have more reason to stumble now than ever.
苹果绝对可能会跌倒,而且我认为他们现在比以往任何时候都有更多的理由跌倒。
They’re behind on AI, terribly behind.
他们在人工智能方面落后了,落后得很厉害。
Their software quality is faltering in a bunch of ways.
他们的软件质量在很多方面都表现不佳。
The competition is catching up on the hardware game in part because TSMC is not an Apple subsidiary, but a foundry that services AMD and Nvidia, and others who were now able to use the same kind of advanced processes.
硬件领域的竞争正在迎头赶上,部分原因是台积电不是苹果的子公司,而是一家为 AMD 和 Nvidia 以及其他现在能够使用同类先进工艺的公司提供服务的代工厂。
This is something I learned after not looking at PC hardware for the longest time, that holy smokes, AMD actually makes CPUs that are just as fast, if not faster, than Apple’s.
这是我在很长时间没有研究 PC 硬件后了解到的,天哪,AMD 实际上制造的 CPU 与苹果的 CPU 一样快,甚至更快。
They’re not quite as efficient yet because ARM has some fundamental efficiencies over x86, but they’re still pretty good.
它们的效率还没有那么高,因为 ARM 比 x86 有一些基本的效率,但它们仍然相当不错。
4:05:27 So Apple should have reason to worry.
所以苹果应该有理由担心。
Apple shareholders should have reason to be concerned, not just about all these stumbles, but also by the fact that Apple is run by old people.
苹果股东应该有理由担心,不仅是所有这些失误,而且是苹果是由老年人管理的事实。
Apple’s board has an average age of, I think, 75.
我认为苹果董事会的平均年龄是 75 岁。
Their entire executive team is above 60.
他们整个管理团队都在60人以上。
Now, that sounds horribly ageist.
现在,这听起来是可怕的年龄歧视。
And in some ways, it a little bit is, in the same way I’m ageist against myself.
从某些方面来说,这有点像,就像我对自己有年龄歧视一样。
I’m 45 now.
我现在45岁了。
And I have to force myself to really get into AI because it is such a paradigm shift and a lot of people, when they reach a certain age, are just happy to stay with what they know.
我必须强迫自己真正进入人工智能领域,因为这是一种范式转变,很多人到了一定年龄后,就很乐意坚持自己所知道的东西。
They don’t want to go back to being a beginner.
他们不想回到初学者状态。
They don’t want to go back to having to relearn everything.
他们不想回到必须重新学习一切的状态。
And I think this is a little hard for me at 45.
我认为这对 45 岁的我来说有点困难。
How the hell do you do that at 75?
75岁了,你怎么能做到这一点?
I have to come back to it.
我必须回到正题。
4:06:22 You mentioned it earlier, you’re a parent.
你之前提到过,你是父母。
Can you speak to the impact that becoming a father has had on your life?
您能谈谈成为父亲对您生活的影响吗?
I think what’s funny about fatherhood is that, for me, I wasn’t even sure it’s something I wanted.
我认为父亲身份的有趣之处在于,对我来说,我什至不确定这是我想要的东西。
4:06:32 It took meeting the right woman and letting her convince me that this was the right idea before we even got started.
在我们开始之前,我需要遇到合适的女人并让她说服我这是正确的想法。
I didn’t have starting my own family on the list of priorities in my late 20s or even early 30s.
在我 20 岁末甚至 30 岁出头的时候,我并没有把组建自己的家庭列为优先事项。
It was really the impetus of meeting my wife, Jamie, and her telling me, “This is what I want.
这确实是见到我妻子杰米的动力,她告诉我:“这就是我想要的。
I want to have a family, I want to get married, I want to have kids.
我想要有一个家庭,我想要结婚,我想要生孩子。
I want to have three.” And me going for a second like, “Whoa, whoa, whoa.” And then, “All right, let’s do it.” And I think that’s the kind of happy accident where some parts of my life have been very driven, where I knew exactly what I wanted and how to push forward to it, and what the payoff was going to be.
我想要三个。”我会想,“哇,哇,哇。”然后,“好吧,我们开始吧。”我认为这是一种幸福的意外,我生活中的某些部分非常有动力,我确切地知道自己想要什么,如何推进它,以及回报是什么。
But when it comes to having a family, that always felt like a very fuzzy, abstract idea that, sure, someday maybe.
但当谈到拥有一个家庭时,这总是感觉是一个非常模糊、抽象的想法,当然,也许有一天会实现。
And then it became very concrete because I met a woman who knew what she wanted.
然后它变得非常具体,因为我遇到了一个知道自己想要什么的女人。
4:07:55 And looking back on it now, it almost seems crazy, like there’s this fork in the road of reality where if that hadn’t happened and I had been sitting here now not being a father, not having a family, the level of regret knowing what I know now about the joys of having that family would have been existential.
现在回想起来,这几乎是疯狂的,就像现实道路上有一个岔路口,如果那件事没有发生,而我现在坐在这里,不是一个父亲,没有一个家庭,当我知道我现在所知道的拥有这个家庭的乐趣时,我会感到多么后悔,这将是存在的。
I don’t know if they would have been devastating.
我不知道他们是否会造成毁灭性的打击。
I think men have a little bit of a longer window to pursue these things than women do.
我认为男性比女性有更长的时间来追求这些东西。
There are just certain biological facts, but ending up with the family I have now, ending up with my three boys, have been just a transformative experience in the sense that here’s something that turned out to be the most important thing.
这只是某些生物学事实,但最终与我现在拥有的家庭,最终与我的三个儿子在一起,只是一次变革性的经历,从某种意义上说,这是最重要的事情。
And it was an open secret.
这是一个公开的秘密。
Not even an open secret.
连公开的秘密都算不上。
It was an open truth through all of history.
这是整个历史上公开的事实。
4:08:59 You listen to anyone who’s ever had children, they will all say, “My children are the most important to me.” Yet somehow that wisdom couldn’t sink in until you were in the situation yourself.
你听任何曾经有过孩子的人说话,他们都会说:“我的孩子对我来说是最重要的。”然而,不知何故,只有当你亲身经历这种情况时,你才能领悟到这种智慧。
I find those truths fascinating when you can’t actually relay them with words.
当你无法用语言真正传达这些真理时,我发现这些真理很有趣。
I can tell you, “Hey, Lex, what are you doing?
我可以告诉你,“嘿,莱克斯,你在做什么?
Get a wife, make some kids, get a move on it.” And these are just words.
娶个老婆,生几个孩子,行动起来吧。”这些只是文字而已。
They’re not communicating the gravity of what it actually feels to go through the experience.
他们没有传达经历这一经历的实际感受的严重性。
And you can’t really learn it without going through it.
如果不经历它,你就无法真正学习它。
4:09:33 Now, of course, you can be influenced and whatever, we can all help contribute and little sparks and little seeds can grow in your mind about it, but it still has to happen.
当然,现在你可能会受到影响,无论如何,我们都可以做出贡献,关于它的小火花和小种子可以在你的脑海中生长,但这仍然必须发生。
And now that I am in this situation and just the sheer joy on a daily basis where you think your level of life satisfaction is on a scale of one to 10.
现在我就处于这种情况,每天都感到纯粹的快乐,你认为你的生活满意度是从 1 到 10。
Yeah.
是的。
And then the satisfaction of seeing your children understand something, accomplish something, learn something, do something, just be, just goes like, oh my God, the scale doesn’t go from one to 10, it goes from one to a hundred.
然后看到你的孩子理解某事、完成某事、学习某事、做某事,只是存在,只是感到满足,天哪,等级不是从一到十,而是从一到一百。
4:09:57 And I’ve been playing down here in the one to 10 range all this time and there’s a one to a hundred.
我一直在玩一到十的范围,还有一到一百的范围。
That has been humbling in a way that is impactful in and of itself.
这本身就具有影响力,令人谦卑。
This whole idea that I thought I had a fair understanding of the boundaries of life in my early 30s, like what is this about?
我以为自己在 30 岁出头的时候就对生活的界限有了相当的了解,这到底是关于什么的?
I mean, I’ve been on this earth long enough now here to know something.
我的意思是,我在这个地球上已经呆了足够长的时间了,现在已经知道一些事情了。
4:10:39 And you realize, “I don’t know.” I did not know.
然后你意识到,“我不知道。”我不知道。
I did not know that the scale was much broader.
我不知道规模要广泛得多。
And I’ve often talked about the joys of having kids and just seeing your own DNA, which is remarkable to me because literally that’s been the pursuit of humans since the dawn of time.
我经常谈论生孩子和看到自己 DNA 的乐趣,这对我来说很了不起,因为从字面上看,这是人类自古以来的追求。
I am here today because, whatever, 30,000 years ago, some Neanderthal had the same realization that I should procreate and I should continue my bloodline.
我今天站在这里,无论如何,三万年前,一些尼安德特人也有同样的认识,即我应该繁衍后代,我应该延续我的血统。
And that all amounts to me sitting here now, but it didn’t become a practical reality to me before meeting the right woman.
这一切都相当于我现在坐在这里,但在遇到合适的女人之前,这对我来说并没有成为现实。
And I think that that’s sometimes not part of the conversation enough that there’s something broken at the moment about how people pair up in the western world.
我认为,有时这还不足以成为对话的一部分,以至于目前西方世界的人们如何配对的问题已经被打破了。
Yeah.
是的。
And it’s at the source of why we’re not having enough children because there’s not enough couples, there’s not enough marriage, there’s not enough of all these traditional values that even 50, 60, 70 years ago was just taken for granted.
这就是为什么我们没有足够的孩子的根源,因为没有足够的夫妻,没有足够的婚姻,没有足够的所有这些传统价值观,甚至在 50、60、70 年前也被认为是理所当然的。
4:11:33 We’re in this grand experiment of what happens if we just remove a bunch of institutions?
我们正在进行一项宏伟的实验,如果我们取消一些机构,会发生什么?
What happens if we no longer value marriage as something to aspire to?
如果我们不再将婚姻视为值得向往的事情,会发生什么?
What happened if parenthood is now seen in some camps as almost something weird or against your own self-expression?
如果现在在一些难民营中,为人父母几乎被视为奇怪的事情或反对你自己的自我表达,会发生什么?
It’s a grand experiment that I’m curious how it turns out.
这是一个伟大的实验,我很好奇结果如何。
I prefer to watch it as a movie, like The Children of Men, that was a good show.
我更喜欢把它当作电影来观看,比如《人类之子》,那是一部很好的节目。
I wish that wasn’t reality, but we’re seeing that reality play out while I’m sitting here in a very traditional two-parent loving household with three children and going, “This is now at the top.”
我希望这不是现实,但当我坐在一个非常传统的双亲家庭,带着三个孩子时,我们看到现实正在上演,“现在已经是顶峰了。”
4:12:38 I’ve done a lot of things in my life.
我一生中做了很多事情。
I’ve built software, I’ve built companies, I’ve raced cars, I’ve done all sorts of things, and I would trade all of it in a heartbeat for my kids.
我开发过软件,创建过公司,参加过赛车,做过各种各样的事情,我会毫不犹豫地用这一切来换取我的孩子。
That’s just a really fascinating human experience, that the depth of that bond is something you can’t appreciate before you have it.
这真是一种令人着迷的人类体验,这种联系的深度是你在拥有它之前无法体会到的。
But I also think there is a role to play to talk it up because we’re being bombarded constantly with reasons why not to.
但我也认为,谈论这个问题是可以发挥作用的,因为我们不断地受到各种不这样做的理由的轰炸。
Oh, it’s too expensive.
哦,太贵了。
4:13:14 Well, you could get divorced and then you might lose half.
好吧,你可以离婚,然后你可能会损失一半。
There’s all these voices constantly articulating the case against marriage, the case against having children, that those of us who’ve chosen to do the traditional thing, to get married and to have children, have an obligation to talk it up a little bit, which would have seen ridiculous again 50 years ago that you’d have to talk up something so fundamental of that.
所有这些声音不断地阐明反对婚姻、反对生孩子的理由,我们这些选择做传统事情的人,结婚生子,有义务稍微谈论一下,这在 50 年前会显得很荒谬,因为你必须谈论一些如此基本的事情。
4:13:42 But I have become obligated in that sense to do just that, to talk it up, to say, “You know what?
但从这个意义上说,我有义务这样做,大声说出来,说:“你知道吗?
You can look at everything that I’ve done and if you like some of those parts, realize that to me, in the situation, the kids, the family, the wife is more important than all of it.” And it sounds like a cliche because you’ve heard it a thousand times before, and by becoming a cliché, maybe you start believing it’s not true, that it’s just something people say, but it is reality.
你可以看看我所做的一切,如果你喜欢其中的一些部分,就会意识到对我来说,在这种情况下,孩子、家庭、妻子比所有这一切都更重要。”这听起来像是陈词滥调,因为你以前已经听过一千遍了,当你成为陈词滥调时,也许你开始相信这不是真的,这只是人们所说的,但它是现实。
4:14:16 I know almost no parents that I have personal relationships with that don’t consider their children to be the most important thing in their life.
据我所知,与我有私人关系的父母几乎没有一个不认为自己的孩子是他们生命中最重要的事情。
So there’s a lot of interesting things you said.
所以你说的很多事情都很有趣。
4:14:23 So one, it does seem to be …
所以,看起来确实是……
I know a lot of parents, perhaps more interestingly, I know a lot of super successful people who are parents who really love their kids and who say that the kids even help them to be more successful.
我认识很多父母,也许更有趣的是,我认识很多超级成功的人,他们是真正爱孩子的父母,他们说孩子甚至可以帮助他们更加成功。
Now, the interesting thing, speaking to what you’re saying, is it does seem for us humans, it’s easier to articulate the negatives because they’re concrete, pragmatic.
现在,有趣的是,就你所说的而言,对于我们人类来说,确实更容易阐明负面因素,因为它们是具体的、务实的。
It costs more, it takes some time.
成本更高,需要一些时间。
They can be crying all over the place.
他们可能会到处哭泣。
They’re tiny narcissists running around or whatever.
他们是到处乱跑的小自恋者。
Which is all true, by the way.
顺便说一句,这都是真的。
Yeah, pooping everywhere, that kind of stuff.
是的,到处拉屎,诸如此类的事情。
4:15:08 But to articulate the thing you were speaking to of there’s this little creature that you love more than anything you’ve ever loved in your life, it’s hard to convert that into words.
但要表达你所说的事情,你爱这个小生物胜过你一生中所爱的任何东西,很难将其转化为语言。
You have to really experience it.
你必须真正体验它。
But I believe it and I want to experience that, but I believe, because just from a scientific method, have seen a lot of people who are not honestly not very capable of love, fall completely in love with their kids.
但我相信这一点,我想体验这一点,但我相信,因为仅仅从科学的方法来看,已经看到很多不诚实、不太有爱能力的人完全爱上了他们的孩子。
Yes.
是的。
Very sort of, let’s just call it what it is, engineers that are very like beep boop bop.
非常有点,我们就这么称呼它吧,工程师们非常像“嘟嘟嘟”。
Yes.
是的。
They just fall in love and it’s like, all right.
他们只是坠入爱河,就像,好吧。
4:15:47 People who, just like you said, they don’t really care or don’t really think about having kids, that kind of stuff, once they do, it changes everything.
就像你说的那样,他们并不真正关心或没有真正考虑过生孩子之类的事情,一旦他们这样做了,一切都会改变。
But it’s hard to convert into words.
但很难转化为文字。
One of the reasons I think it’s also difficult is …
我认为这也很困难的原因之一是……
4:16:03 I mean, I like kids, not that I actively dislike them, but when I was around other people’s kids, I didn’t have a emotional reaction.
我的意思是,我喜欢孩子,并不是我主动不喜欢他们,而是当我和别人的孩子在一起时,我没有任何情绪反应。
Some women have.
有些女性有。
They see a baby and they go, “Oh.” I never had any emotion of that.
他们看到一个婴儿,就会说:“哦。”我对此从来没有任何感情。
I mean, I could appreciate, I’m glad for you that you have children.
我的意思是,我很感激你有孩子,我为你感到高兴。
It did not provoke anything in me.
它没有激起我任何情绪。
The emotions that are provoked in me when I look at my own children, this doesn’t exist in the same universe, so you don’t have a complete parallel or at least a lot of men, or at least me, I didn’t have a framework to put it into, what would it be like to have my own child?
当我看着自己的孩子时,我内心所激起的情感,这在同一个宇宙中是不存在的,所以你没有一个完全平行的,或者至少有很多男人,或者至少我,我没有一个框架可以把它放进去,拥有自己的孩子会是什么样子?
4:16:41 And then you experience it.
然后你就会体验到它。
It’s like the poof.
就像噗。
And it happened so quickly, too.
而且事情发生得太快了。
This is what I found fascinating.
这就是我发现的令人着迷的地方。
It happens before that little human is even able to return any words to you that the love you develop to an infant, it happens quite quickly, not necessarily immediately.
它发生在那个小人甚至能够向你回复任何话之前,你对婴儿的爱,它发生得很快,不一定是立即。
I don’t know, different people have different experiences, but it took me a little bit.
我不知道,不同的人有不同的经历,但我花了一点时间。
But then once it hit, it just hit like kick of a horse.
但一旦击中,就像马蹄一样击中。
And I love that it’s also just such a universal experience that you can be the most successful person in the world, you can be the poorest person in the world, you can be somewhere in the middle, and we share this experience that being a parent, for most of them, turns out to be the most important thing in their life.
我喜欢这也是一种普遍的经历,你可以成为世界上最成功的人,你可以成为世界上最贫穷的人,你可以处于中间的某个地方,我们分享这样的经历:对于大多数人来说,成为父母是他们生命中最重要的事情。
But it is really nice to do that kind of experience with the right partner.
但与合适的合作伙伴一起经历这种经历真的很棒。
4:17:33 But I think because I’m such an empath, the cost of having the wrong partner is high for me.
但我认为因为我是一个有同理心的人,所以拥有错误的伴侣对我来说代价很高。
But then I also realized, man …
但后来我也意识到,伙计……
I have a friend of mine who’s divorced happily and he still loves the shit out of his kids and it’s still beautiful.
我有一个朋友,他离婚得很开心,但他仍然喜欢他孩子们的屎,而且仍然很漂亮。
It’s a mess, but all of that love is still there and you just have to make it work.
虽然一团糟,但所有的爱仍然存在,你只需要让它发挥作用。
It’s just that, I don’t know, that kind of divorce would destroy me.
只是,我不知道,那种离婚会毁掉我。
You should listen to The School of Life.
你应该听听《生命学院》。
4:18:02 He has this great bit on YouTube, you’ll marry the wrong person.
他在 YouTube 上有这样精彩的片段,你会嫁给错误的人。
If you accept upfront that you will marry the wrong person, that every potential person you can marry is going to be the wrong person on some dimension.
如果你事先就承认自己会嫁给错误的人,那么你可能结婚的每一个潜在的人在某些方面都将是错误的人。
They’re going to annoy you.
他们会惹恼你。
They’re going to be not what you hoped in certain dimensions.
在某些方面它们不会是你所希望的。
The romantic ideal that everything’s just perfect all the time is not very conducive to the reality of hitching up and making babies.
一切都一直完美的浪漫理想不太有利于搭便车和生孩子的现实。
Because I think as you just accounted, even when it turns to shit, I find that most of the people I personally know where things have fallen apart and have turned to shit never in a million years would they go, “I regret it.
因为我认为正如你刚才所说,即使事情变成了狗屎,我发现我个人认识的大多数人在一百万年内都不会说,“我后悔了。
I would rather my children did not exist because a relationship turned sour.” I mean, I think you should try very hard and I think this is also one of those things where we didn’t fully understand those fences, and when we pulled them up and celebrated how easy it is to get divorced, for example, that that wasn’t going to have some negative consequences.
我宁愿我的孩子不存在,因为关系变坏了。”我的意思是,我认为你应该非常努力,我认为这也是我们没有完全理解这些栅栏的事情之一,例如,当我们拉起栅栏并庆祝离婚是多么容易时,这不会产生一些负面后果。
4:19:12 I’m not saying you shouldn’t have divorces.
我并不是说你不应该离婚。
I’m not saying return to times past.
我并不是说回到过去。
I am saying, though, that civilization over thousands of years developed certain technologies for ensuring the continuation of its own institutions and its own life that perhaps we didn’t fully appreciate.
不过,我想说的是,几千年来的文明发展了某些技术,以确保其自身制度和生命的延续,而我们也许并没有完全意识到这一点。
I mean, again, this is something Jordan Peterson and others are far more articulate to speak about, and that I’ve learned a lot to just analyze my own situation.
我的意思是,乔丹·彼得森和其他人在谈论这一点上要清晰得多,而且我在分析自己的情况时学到了很多东西。
Why is it that this incredible burden it is, to be responsible for someone else’s life that you brought into this world is also the most rewarding part of existence?
为什么对你带到这个世界上的别人的生命负责这种令人难以置信的负担也是存在中最有价值的部分?
That’s just curious.
这只是好奇。
Before I heard Peterson articulate the value of taking on the greatest burden you know how to carry, I always thought about burdens as a negative things.
在我听到彼得森阐明承担你知道如何承担的最大负担的价值之前,我一直认为负担是消极的事情。
Why would I want the burden of a child?
我为什么要承担孩子的负担?
I might screw it up.
我可能会把事情搞砸。
I might be a bad parent.
我可能是一个坏父母。
They might have bad …
他们可能有不好的……
All this stuff, right?
所有这些东西,对吗?
All the reasons why you shouldn’t.
所有你不应该这样做的原因。
And so few voices articulating why you should.
很少有声音阐明为什么你应该这样做。
Yeah, but I should also add on top of that, the thing you mentioned currently, perhaps in the West, the matchmaking process …
是的,但我还应该补充一点,你目前提到的事情,也许在西方,配对过程......
Is broken.
坏了。
…
……
4:20:29 is broken and technology made it worse.
已经坏了,技术让情况变得更糟。
It’s fascinating, this whole thing that hasn’t been solved.
这很有趣,这整个事情还没有解决。
So hiring great teams, that’s probably been solved the best out of matchmaking, finding great people to hire.
因此,雇用优秀的团队,这可能是通过匹配来解决的最好方法,找到优秀的人才来雇用。
Right.
正确的。
Second, finding great friends.
第二,寻找好朋友。
4:20:45 That also hasn’t been solved.
这也还没有解决。
And it’s breaking down.
它正在崩溃。
It’s breaking down.
它正在崩溃。
4:20:50 And the third is matchmaking for relationships.
第三是关系牵线搭桥。
That’s the worst.
这是最糟糕的。
And in fact, technology made it even worse.
事实上,科技让情况变得更糟。
Yes.
是的。
It’s fascinating.
这很有趣。
It is.
这是。
4:20:59 It’s a great example again of how all the greatest intentions still led us straight to hell.
这又是一个很好的例子,说明所有最伟大的意图仍然把我们引向地狱。
I really enjoyed Louise Perry’s analysis of the sexual revolution not being an unqualified good, which was something I hadn’t thought about at all before she articulated it, that, of course, women should be able to have freedom and self-determination and abortions, and all of these things.
我真的很喜欢路易丝·佩里(Louise Perry)对性革命不是一种不合格的善的分析,在她阐明这一点之前,我根本没有想过这一点,当然,女性应该能够拥有自由、自决和堕胎,以及所有这些东西。
And Louise Perry is not arguing against that either, of course.
当然,路易丝·佩里也不反对这一点。
But there are second order facts that we don’t appreciate at the time, and we may not have ready-made solutions for, and that’s just interesting.
但有些二阶事实我们当时并不重视,而且我们可能没有现成的解决方案,这很有趣。
4:21:40 You make life better in a million different ways and somehow we end up more miserable.
你用一百万种不同的方式让生活变得更好,但不知怎的,我们最终却变得更加悲惨。
Why is that?
这是为什么?
Why is it that humans find meaning in hardship?
人为什么能在苦难中找到意义?
And I think some of that is that it’s a difficult question to answer through science.
我认为其中一些原因是这是一个很难通过科学回答的问题。
And again, Peterson articulates well this idea that you have to find some of it through art, some of it through authors, some of it through different …
彼得森再次很好地阐明了这个想法,即你必须通过艺术找到一些,通过作者找到一些,通过不同的……找到一些。
I was just about to say modes of knowing before I stopped myself because that sounds like woo bullshit.
我正要说认识的方式,但我停了下来,因为这听起来像是胡说八道。
But there are different ways to acquire those deep lessons that paper is not going to tell you.
但是,有不同的方法可以获取纸质书无法告诉您的深刻教训。
I mean, this is really …
我的意思是,这真的是……
4:22:33 The point also applies to religion, for example.
例如,这一点也适用于宗教。
If you remove from society the software of religion, you better have a good replacement.
如果你从社会中消除宗教软件,你最好有一个好的替代品。
And we’ve had a bunch of bad replacements, especially over the last few decades.
我们有过很多糟糕的替代者,尤其是在过去的几十年里。
4:22:45 Religion is one of those things I’ve struggled with a lot because I’m not religious, but I wish I was.
宗教是我一直困扰的事情之一,因为我不信教,但我希望我是。
I can now fully appreciate the enormous value having an operating system like that brings, not just at the individual level, but rather at a societal level.
我现在可以充分认识到拥有这样的操作系统所带来的巨大价值,不仅在个人层面,而且在社会层面。
And it’s not clear at all what the answer is.
而且根本不清楚答案是什么。
I think we’ve tried a lot of dead ends when it came to replacements and people have been filling that void in a million different ways that seem worse than all the religions, despite their faults in a myriad of ways have been able to deliver.
我认为,在替代品方面,我们已经尝试了很多死胡同,人们一直在以一百万种不同的方式来填补这一空白,这些方式似乎比所有宗教都更糟糕,尽管他们以无数种方式能够解决问题。
Yeah, religions like the cobalt code.
是的,宗教喜欢钴密码。
4:23:28 It’s just-
这只是——
Yes.
是的。
4:23:33 It’s the institutions where we don’t fully understand the rules and why they’re there and what’s going to happen if we remove them.
我们并不完全了解这些机构的规则、它们为何存在以及如果我们取消它们将会发生什么。
Some of them seems obvious to me are just bullshit of the time.
其中一些在我看来显然只是当时的废话。
Oh, you should need, whatever, shellfish, because in that region of the world, there was something, something, something.
哦,无论如何,你应该需要贝类,因为在世界的那个地区,有一些东西,一些东西,一些东西。
Okay, fine.
好吧,好吧。
But there’s a bunch of other things that are pivotal to keeping society functioning for the long term, and we don’t fully understand which is which.
但还有很多其他事情对于保持社会长期运转至关重要,但我们并不完全了解哪个是哪个。
What’s the bullshit and what’s the load-bearing pillars of society?
什么是狗屁,什么是社会的承重支柱?
Can you speak to the hit on productivity that kids have?
您能谈谈孩子们的生产力受到的影响吗?
4:24:04 Did they increase your productivity, decrease it, or is that even the wrong question to ask?
它们是提高了你的生产力还是降低了你的生产力,或者这根本就是一个错误的问题?
I think it’s one of the reasons why ambitious people are often afraid of having children because they think I have so much more to do and I barely have enough time now.
我认为这就是雄心勃勃的人常常害怕生孩子的原因之一,因为他们认为我还有很多事情要做,而我现在几乎没有足够的时间。
4:24:13 How would I possibly be able to accomplish the things I want to accomplish if I add another human into the mix?
如果我添加另一个人,我如何能够完成我想要完成的事情?
Now, A, we’ve always worked 40 hours a week, not 80 or a hundred or 120.
现在,A,我们一直每周工作 40 小时,而不是 80 小时、100 小时或 120 小时。
I think that’s very beneficial.
我认为这非常有益。
B, kids don’t exist in this vacuum of just them alone being entered into your life.
B,孩子并不存在于只有他们进入你生活的真空中。
Hopefully, there’s a partner.
希望有一个伙伴。
And in my life, I’m married to a wonderful woman who decided to stop working her corporate job when we got together and have been able to carry a huge part of that responsibility.
在我的生活中,我嫁给了一位出色的女士,当我们聚在一起时,她决定停止在公司的工作,并且能够承担很大一部分责任。
4:25:02 I was just about to say burden, and I think that’s exactly how it often gets presented, especially from a feminist perspective, that carrying for your own children is some unpaid labor that has to be compensated for in some specific way beyond the compensation of what bringing life into this world, raising wonderful humans.
我正要说负担,我认为这正是它经常被表达的方式,特别是从女权主义的角度来看,抚养自己的孩子是一些无偿劳动,必须以某种特定的方式得到补偿,超出了将生命带入这个世界、养育优秀人类的补偿。
There’s something screwy about that analysis that I actually think the modern trad movement is a reply against.
这种分析有些奇怪,我实际上认为现代传统运动是对此的回应。
Whether they have all the answers, I’m certainly not sure of either, but there’s something that’s just not right in the analysis that children are a burden and that if woman chooses to stay at home with the kids, that that’s some failure mode of feminist ambition.
她们是否拥有所有答案,我当然也不确定,但在分析中有些东西是不正确的,即孩子是一种负担,如果女性选择留在家里带孩子,那就是女权主义野心的某种失败模式。
I think that’s actually a complete dead end.
我认为这实际上是一个完全的死胡同。
Now, depends on different people, different circumstances.
现在,取决于不同的人,不同的情况。
I can just speak to my life being married to a wonderful woman who have decided to be home with the kids, at least at their early age, and taken on a lot of those responsibilities.
我可以谈谈我的生活,嫁给了一位出色的女人,她决定在家照顾孩子,至少在孩子们还很小的时候,并承担了很多责任。
Now, it doesn’t mean there isn’t plenty of ways that I have to be part of that and have to chip in, but it’s allowed me to continue to work the 40 hours a week that I’ve always worked.
现在,这并不意味着我没有很多方法可以参与其中并做出贡献,但它让我能够继续每周工作 40 小时,这是我一直以来的工作方式。
But it’s made the 40 hours more strict.
但这使得40小时更加严格。
I have a schedule where I wake up, whatever, 6:30, and we have to get out of the door a little before 8:00.
我有一个时间表,无论如何,6:30 起床,我们必须在 8:00 之前出门。
I usually have to play at least one or two rounds of Fortnite with my youngest and sometimes middle child.
我通常必须和我最小的孩子,有时甚至是中间的孩子一起玩至少一两轮《堡垒之夜》。
4:26:48 Then take the kids to school, get in, start work at, I don’t know, 8:39, then work until 5:00, 5:30, sometimes 6:00, but then it’s dinner and I have to be there for that, and then I have to read to the kids.
然后带孩子们去学校,进去,开始工作,我不知道,8:39,然后工作到 5:00、5:30,有时 6:00,但之后是晚餐,我必须在那里,然后我必须读书给孩子们听。
And by the time that’s done, I don’t want to go back to work.
当这一切完成时,我不想回去工作了。
So my work time really is 9:00 to 5:00, 9:00 to 6:00, depending of whatever is going on.
所以我的工作时间实际上是 9:00 到 5:00、9:00 到 6:00,具体取决于发生的情况。
Sometimes there’s emergencies and you have to tend to them, but it’s made it more structured and I found some benefit in that and I found some productivity in that, that I can’t goof around quite as much, that the day will end at around 5:36.
有时会出现紧急情况,你必须处理它们,但它让它变得更有条理,我发现了一些好处,我发现了一些生产力,我不能浪费太多时间,一天将在 5:36 左右结束。
That’s just if I didn’t accomplish what I wanted to do today, if I get to that time, it’s done.
只是如果我今天没有完成我想做的事情,如果我到了那个时候,那就完成了。
I’m over.
我结束了。
I have to try again tomorrow.
我明天必须再试一次。
Whereas before having a family and before having kids, I could just not do it and just make it up in the evening.
而在组建家庭和生孩子之前,我不能这样做,只能在晚上弥补。
4:27:45 So in that way, it’s made me more structured, but it hasn’t really changed my volume of work all that much.
这样一来,它让我更有条理,但并没有真正改变我的工作量。
I still work about the same amount of hours.
我仍然工作大约相同的时间。
And that’s, by the way, enough.
顺便说一句,这就足够了。
This is one of the key points we make in It Doesn’t Have to Be Crazy at Work, the latest book we wrote, is that there’s enough time.
这是我们在最新出版的《工作不必疯狂》一书中提出的关键点之一,那就是有足够的时间。
40 hours a week is actually a ton if you don’t piss it away.
如果你不花时间的话,每周 40 小时实际上已经很多了。
Most people do piss it away.
大多数人确实对此很恼火。
They piss it away in meetings, they piss it away on just stuff that doesn’t matter when even three hours, four hours of concentrated uninterrupted time every day would move the goals they truly care about way down the field.
他们在会议上发脾气,他们在无关紧要的事情上发脾气,即使每天三四个小时不间断的集中时间也会让他们真正关心的目标远远落后。
I think kids do make you more productive in that way for people who need it, especially people like me, they create their urgency.
我认为孩子确实可以让你更有效率,对于需要它的人来说,尤其是像我这样的人,他们创造了紧迫感。
Yes.
是的。
If you have to be done by 5:00, it’s maybe counterintuitive notion, but for people like me who like to work, you can really fill the day with fluff of work.
如果你必须在 5:00 之前完成,这可能是违反直觉的想法,但对于像我这样喜欢工作的人来说,你真的可以用无聊的工作来充实一天。
4:28:34 And if you have to be done by 5:00, you’re going to have to do the deep work and get it done, really focus singular work.
如果你必须在 5:00 之前完成,你就必须做深入的工作并完成它,真正专注于单一的工作。
And then you’re just going to cut off all the pressure-
然后你就可以切断所有的压力-
It just keeps you honest.
它只会让你保持诚实。
4:29:02 It keeps you honest because you can squander one day, you can squander two days, but if I squander a whole week, I feel terrible.
它让你保持诚实,因为你可以浪费一天,你可以浪费两天,但如果我浪费一整周,我会感觉很糟糕。
Now, that’s just some drive I have in me where I feel content and full meaning if I actually do stuff that matters, if I can look back upon the week and go like, “That was a nice week.” Really, we moved forward.
现在,这只是我内心的一种动力,如果我真的做了重要的事情,如果我能回顾这一周并说“那是美好的一周”,我就会感到满足和充实。真的,我们向前迈进了。
Maybe we didn’t get done, but we moved forward and everything got better.
也许我们还没有完成,但我们继续前进,一切都变得更好。
And I think kids really helped just time bucks things in that way.
我认为孩子们确实以这种方式帮助节省了时间。
And a lot of people need that because I find just so much of the celebration of overwork to be so tiresome.
很多人都需要它,因为我发现太多对过度工作的庆祝是如此令人厌烦。
Oh, I work 60 hours or 80 hours, 100 hours a week, and just like, first of all, no, you don’t.
哦,我每周工作 60 小时或 80 小时、100 小时,就像,首先,不,你不工作。
No, you don’t.
不,你不知道。
4:29:50 Those 80 hours are full of all sorts of fluff that you label work, but that I would laugh at, and that most people laugh at, that you would laugh at if you actually did the analysis of where’s that time going.
这80个小时充满了各种各样的废话,你称之为工作,但我会笑,大多数人也会笑,如果你真的分析了时间都去哪儿了,你也会笑。
Most of the important stuff that have to be done is done in these uninterrupted chunks of two hours here or four hours there or five hours there.
大多数必须完成的重要事情都是在这些不间断的时间内完成的,这里两个小时,那里四个小时,那里五个小时。
The hard part is making sure you get them in the whole piece.
困难的部分是确保你将它们完整地呈现出来。
So don’t give me that.
所以别给我那个。
There’s time enough.
有足够的时间。
And also, what’s so important that it ranks above continuing your lineage?
而且,什么比延续你的血统更重要?
I think there’s just some ancient honor in the fact that, again, this DNA that’s sitting on this chair traveled 30,000 years to get here, and you’re going to squander all that away just so you can send a few more emails.
我认为这确实是一种古老的荣誉,因为这把椅子上的 DNA 经历了 3 万年才到达这里,而你会浪费掉所有这些,只是为了可以再发送几封电子邮件。
There is something that’s also hard to convert into words of just the kind of fun you can have just playing with your kids.
有些东西也很难转化为与孩子一起玩耍时所获得的乐趣。
4:30:41 I don’t know what that on the surface it’s like, I can have that kind of fun just playing video games by myself, but no, it’s like there’s something magical about it, right?
我不知道表面上是什么样子,我一个人玩电子游戏就能有那种乐趣,但不,这好像有什么神奇的,对吧?
I have a thousand hours logged in Fortnite since 19, I think, all of it with my kids.
我想,从 19 岁开始,我就已经在《堡垒之夜》上登录了 1000 个小时,所有这一切都是和我的孩子们一起度过的。
4:31:00 I’d never be playing Fortnite.
我永远不会玩《堡垒之夜》。
Well, I don’t know if I never would be.
好吧,我不知道我是否永远不会。
I wouldn’t be playing a thousand hours of Fortnite if it wasn’t for my kids.
如果不是为了我的孩子,我就不会玩《堡垒之夜》一千个小时。
The enjoyment for me is to do something with them that I also happen to enjoy.
对我来说,最大的乐趣就是和他们一起做一些我也喜欢的事情。
I really love Fortnite.
我真的很喜欢《堡垒之夜》。
It’s a phenomenal game.
这是一场非凡的比赛。
I don’t have to force myself to play that with them.
我不必强迫自己和他们一起玩。
I often ask like, “Hey, do you want to play Fortnite?” But still, it’s an activity that I get to share with them.
我经常问这样的问题:“嘿,你想玩《堡垒之夜》吗?”但这仍然是我可以与他们分享的一项活动。
It’s a passion that I get to share with them.
这是我与他们分享的热情。
I’ve started doing go-karting with my oldest.
我开始和我最大的孩子一起玩卡丁车。
I’ve been driving race cars for a long time, and now they’re getting into go-karting, and just being at the go-kart track, seeing them go around, seeing them get faster, seeing them learn that skill, you just go look at what else would I be doing with my life.
我已经驾驶赛车很长时间了,现在他们开始参加卡丁车比赛,只要在卡丁车赛道上,看到他们四处走动,看到他们变得更快,看到他们学习这项技能,你就看看我的生活还能做什么。
At my age, 45, I’m standing here truly enjoying life I brought into this world.
45岁的我站在这里,真正享受着我来到这个世界上的生活。
What else was so important at this stage that I would otherwise be spending my time on?
在这个阶段,还有什么事情如此重要以至于我会花时间去做呢?
4:32:00 …
……
so important at this stage that I would otherwise be spending my time on.
在这个阶段非常重要,否则我会花时间在这上面。
All right.
好的。
4:32:04 Like you mentioned, you like to race cars and you do it at a world-class competitive level, which is incredible.
就像你提到的,你喜欢赛车并且你在世界级的竞争水平上做到这一点,这令人难以置信。
So how’d you get into it?
那么你是如何参与其中的呢?
What attracts you to racing?
是什么吸引你参加赛车运动?
What do you love about it?
你喜欢它什么?
The funny thing about getting into racing is I did not get my driver’s license until I was 25.
参加赛车运动的有趣之处在于,我直到 25 岁才获得驾驶执照。
4:32:17 I grew up in Copenhagen, Denmark where the tax on cars is basically over 200%.
我在丹麦哥本哈根长大,那里的汽车税基本上超过200%。
So you pay for three cars and you get one, and I didn’t even have the money for one car, let alone three.
所以你付三辆车就得到一辆,而我连一辆车的钱都没有,更不用说三辆了。
So I could not afford a car growing up.
所以我从小就买不起汽车。
We did not have a car growing up, but Copenhagen is a nice city to be able to get around on a bike or with a bus or as I did for a long period of time, on rollerblades.
我们从小到大没有汽车,但哥本哈根是一个很好的城市,可以骑自行车或乘坐公共汽车,或者像我很长一段时间那样,骑着旱冰鞋到处走走。
4:32:53 But when I was 25, I realized I wanted to spend more time in the U.S. I wasn’t sure yet that I was going to move there.
但当我 25 岁时,我意识到我想在美国呆更多的时间,当时我还不确定是否要搬到那里。
That turned out later to be true, but I knew that if I wanted to spend time in the U.S., I needed to have a driver’s license.
后来事实证明这是真的,但我知道如果我想在美国呆一段时间,我需要有驾照。
I was not going to get around very well if I didn’t know how to drive a car.
如果我不知道如何开车,我就无法很好地出行。
4:33:10 So I got a driver’s license at 25.
于是我25岁就拿到了驾照。
Then ended up moving to the U.S. later that year, and I’d always been into video games, racing video games.
然后那年晚些时候我搬到了美国,我一直很喜欢电子游戏,赛车电子游戏。
Metropolitan Street Racer on the Dreamcast was one of those games that really sucked me into …
Dreamcast 上的 Metropolitan Street Racer 是真正让我着迷的游戏之一……
It was the precursor to Project Gotham, which was the precursor to essentially, Forza Horizon, I think.
我认为,它是《哥谭计划》的前身,本质上也是《极限竞速:地平线》的前身。
Oh, okay.
哦好的。
I think that’s how the lineage goes.
我想这就是血统的发展方式。
4:33:37 It’s just a great game.
这只是一场很棒的比赛。
I actually just fired it up on an emulator a few weeks ago and it still sort of, kind of holds up because it has enough real car dynamics that it smells a little bit like driving a real car.
事实上,几周前我刚刚在模拟器上启动了它,它仍然有点,有点坚持,因为它有足够的真实汽车动力,闻起来有点像驾驶一辆真正的汽车。
It’s not just like an arcade racer like Sega Rally or something like that, but I’d always been into that.
它不仅仅是像《世嘉拉力赛》或类似的街机赛车游戏,但我一直很喜欢它。
4:33:57 Then I got my driver’s license at 25 and moved to the U.S., and then two years later a friend that I’d met in Chicago took me to the Chicago Autobahn Country Club, which is this great track about 45 minutes from Chicago.
然后我在 25 岁时拿到了驾照,搬到了美国,两年后,我在芝加哥认识的一位朋友带我去了芝加哥高速公路乡村俱乐部,这是一条距离芝加哥约 45 分钟路程的绝佳赛道。
And I sat in a race car and I drove a race car for the first time, and I had the same kind of pseudo-religious experience I did as when I started working on Ruby, where I did maybe 20 laps in this basically, a Mazda race car from, I think it was the ’90s or something, a pretty cheap race car, but a real race car.
我坐在一辆赛车里,第一次驾驶赛车,我有和我开始研究 Ruby 时一样的伪宗教体验,我基本上在这辆马自达赛车上跑了 20 圈,我想那是 90 年代的东西,一辆相当便宜的赛车,但却是一辆真正的赛车。
Single-seater, manual gearbox, but exposed slick wheels, all the stuff.
单座,手动变速箱,但暴露的光滑车轮,所有的东西。
4:34:42 And after having had that experience, first of all it was just the most amazing thing ever.
在经历过那次经历之后,首先,这是有史以来最令人惊奇的事情。
The physical sensation of driving a race car is really unique.
驾驶赛车的身体感觉确实是独一无二的。
And I think if you’ve driven a car fast, you have maybe a 2% taste of it.
我认为,如果你开得很快,你可能有 2% 的品味。
The exposure to the elements that you get in a single-seat race car, especially one like that where your head is actually out in the elements, you can see the individual wheels and sensation of speed is just so much higher, is at a completely different level.
在单座赛车中接触到的各种元素,尤其是当你的头实际上暴露在元素中时,你可以看到各个车轮,速度感要高得多,处于完全不同的水平。
So can you actually speak to that?
那么你真的能谈谈吗?
4:35:13 So even in that Mazda, so you can feel …
所以即使在那辆马自达里,你也能感觉到……
What, can you feel the track reverberating?
什么,你能感觉到曲目的回响吗?
You feel the grip?
你感觉到抓地力了吗?
Oh, yeah.
哦,是的。
4:35:22 Not only can you see the bumps because you’re literally looking straight at the wheels, you can feel all the bumps because you’re running a slick tire and it’s a really stiff setup.
你不仅可以看到颠簸,因为你确实直视车轮,你还可以感觉到所有的颠簸,因为你使用的是光头轮胎,而且这是一个非常僵硬的设置。
It’s nothing like taking a fast street car out on a racetrack and tried to driving a little bit around.
这与开着一辆快速街车在赛道上行驶并尝试四处行驶没什么不同。
So can you feel the slipping, the traction?
那么你能感受到滑动和牵引力吗?
Yeah, you’d feel the slipping.
是的,你会感觉到滑落。
4:35:38 That’s a huge part of the satisfaction of driving a race car, is driving in at the edge of adhesion as we call it, where the car’s actually sliding a little bit.
这是驾驶赛车的满意度的一个重要部分,就是在我们所说的附着力边缘行驶,汽车实际上有一点滑动。
A couple of percent of slip angle is the fastest way to drive a race car.
几个百分点的侧偏角是驾驶赛车的最快方式。
You don’t want to slide it too much.
您不想将其滑动太多。
That looks great, lots of smoke, but it’s not fast.
看起来不错,烟雾很大,但速度不快。
4:35:58 How you want to drive it is just at the limit of adhesion where you’re rotating the car as much as your tires can manage and then slightly more than that.
你想要如何驾驶它只是在附着力的极限下,你在轮胎可以承受的范围内旋转汽车,然后稍微多一点。
And playing at it, keeping it just at that level because when you’re at the level of, or at the limit of adhesion, you’re essentially just a tiny movement away from spinning out.
玩它,将其保持在那个水平,因为当你处于附着力水平或附着力极限时,你基本上距离旋转只有一个微小的移动。
I mean, it doesn’t take much.
我的意思是,这并不需要太多。
Then the car starts rotating.
然后汽车开始旋转。
Once it starts rotating, you lose grip and you’re going for the wall.
一旦它开始旋转,你就会失去抓地力并撞向墙壁。
4:36:28 That balance of danger and skill is what’s so intoxicating, and it’s so much better than racing video games too because the criticality is taken up two notches.
危险与技巧的平衡是如此令人陶醉,而且它比赛车电子游戏要好得多,因为关键性提高了两个档次。
I often think about people who really like gambling, where I think, “Aren’t you just playing poker?
我经常想到那些真正喜欢赌博的人,我会想:“你不就是在玩扑克吗?
No, the point is not poker.
不,重点不是扑克。
Poker is maybe part of it, but the point is that I could lose my house.” Right?
扑克也许是其中的一部分,但关键是我可能会失去我的房子。”正确的?
That’s the addiction that some people get to gambling, that there’s something real on the line.
这就是有些人沉迷于赌博的原因,因为赌注上有真实的东西。
4:36:58 When you’re in a race car, there’s something very real on the line.
当您坐在赛车中时,就会遇到一些非常真实的事情。
If you get it wrong, at the very least you’re going to spin out and probably hit a wall and it’s going to be expensive.
如果你做错了,至少你会陷入困境,并且可能会碰壁,而且代价会很高。
At the very worst, you’re not getting out alive.
在最坏的情况下,你也无法活着出去。
And even if modern race cars have gotten way safer than they used to be, there is that element of danger that’s real, that there are people who still get seriously hurt or even killed in a race car.
即使现代赛车比以前更加安全,但仍然存在真实的危险因素,即仍然有人在赛车中受到严重伤害甚至死亡。
4:37:25 It’s mercifully rare compared to what it used to be when those maniacs in the ’60s would do Formula 1 and whatever, 13% of the grid wouldn’t make it to the end of the year because they’d just die in a fiery flaming fireball, but there’s still some of it there.
幸运的是,与 60 年代那些狂热分子参加一级方程式赛车的情况相比,这种情况非常罕见,无论如何,有 13% 的车手无法坚持到今年年底,因为他们只会死在炽热的火球中,但仍然有一些人在那里。
4:37:42 And I think that since that there’s something on the line really contributes to it, but it’s more than that.
我认为,既然有一些东西确实对此做出了贡献,但还不止于此。
It’s not just a physical sensation.
这不仅仅是一种身体感觉。
There’s activation of all your forces.
你所有的力量都会被激活。
There’s the flow, and I think that really cements why I got addicted, because I love that flow I got out of programming, but getting flow out of programming is a very inconsistent process.
这就是流程,我认为这确实巩固了我上瘾的原因,因为我喜欢从编程中获得的流程,但是从编程中获得流程是一个非常不一致的过程。
4:38:06 I can’t just sit down in front of a keyboard and go like, “All right, let’s get the flow going.” It doesn’t happen like that.
我不能只是坐在键盘前说:“好吧,让我们开始吧。”事情不会那样发生的。
The problem has to be just right.
问题一定要恰到好处。
It has to meet my skills in just the right moment.
它必须在适当的时刻满足我的技能。
It’s a bit of a lottery.
这有点像彩票。
4:38:19 In a race car, it’s not a lottery at all.
在赛车中,这根本不是彩票。
You sit down in that car, you turn the ignition, you go out on track and I get flow virtually guaranteed because you need, or I need at least 100% of my brain processing power to be able to go at the speed I go without crashing.
你坐在车里,打开点火开关,走上赛道,我几乎可以保证流量,因为你需要,或者我需要至少 100% 的大脑处理能力才能以我的速度行驶而不崩溃。
So there’s no time to think about dinner tonight or the meeting next week or product launch.
因此,没有时间考虑今晚的晚餐、下周的会议或产品发布。
It’s completely zen in actually, the literal sense of the word.
实际上,从字面意义上来说,这完全是禅宗。
4:38:49 I think of someone who’s really good at meditation, that’s probably kind of state they get into where it’s just clear you’re in the now, there’s nothing but you and the next corner.
我想到那些真正擅长冥想的人,他们可能会进入一种状态,很明显你就在当下,除了你和下一个角落之外什么都没有。
That’s a really addictive experience.
这真是一次令人上瘾的体验。
4:39:02 So after I’ve had that, I couldn’t get enough.
所以在我吃完之后,我就觉得还不够。
I kept going to the track every opportunity I got.
一有机会我就坚持去赛道。
Every single weekend for about four years, I would go to the track.
大约四年来,每个周末我都会去赛道。
And by the end of that time, I’d finally worked up enough skill and enough success with the company that I could afford to go “real racing.”
在那段时间结束时,我终于在公司积累了足够的技能和足够的成功,我有能力去“真正的赛车”。
4:39:20 So I started doing that.
所以我开始这样做。
I started driving these Porsches, and then as soon as I got into that, as soon as I got into “real competition,” I was like, “I wonder how far you can take this?” And it didn’t take that long before I decided, “You know what?
我开始驾驶这些保时捷,然后当我开始驾驶这些保时捷时,当我进入“真正的竞争”时,我就想,“我想知道你能走多远?”没过多久我就决定了:“你知道吗?
I can take this all the way.”
我可以一直承受这一切。”
4:39:34 My great hero in racing is Tom Kristensen, fellow Dane.
我在赛车界最伟大的英雄是汤姆·克里斯滕森,丹麦同胞。
The Mr. Le Mans, as they call him, the greatest endurance race in the world.
人们称勒芒先生为世界上最伟大的耐力赛。
The 24 Hours of Le Mans has been won more times than any other by Tom Kristensen.
汤姆·克里斯滕森 (Tom Kristensen) 赢得勒芒 24 小时耐力赛的次数比任何其他赛事都多。
He won the race nine times.
他九次赢得比赛。
So Tom just really turned me on to Le Mans.
所以汤姆真的让我对勒芒产生了兴趣。
I’d been watching Le Mans since, I think, the ’80s.
我想,从 80 年代起,我就开始观看勒芒比赛了。
I have my earliest memories of watching that on TV.
我最早的记忆是在电视上看到的。
The race has been going since, I think, ’20s, but in the ’80s I got kind of into it.
我想,这场比赛从 20 年代就开始了,但在 80 年代,我有点喜欢上了它。
4:40:07 And then in the late ’90s, early 2000s when Tom started winning, I, like pretty much every other Dane started watching the race almost religiously.
然后在 90 年代末、2000 年代初,当汤姆开始获胜时,我和几乎所有其他丹麦人一样开始几乎虔诚地观看比赛。
So I thought, “You know what?
所以我想:“你知道吗?
I want to get to Le Mans.”
我想去勒芒。”
4:40:18 This is the magic thing about racing, that if I get into basketball, I can’t set a realistic expectation that I’m going to play in the NBA, that I’m going to go to the finals, or I get into tennis and I’m going to play at Wimbledon.
这就是赛车运动的神奇之处,如果我进入篮球领域,我就无法设定一个现实的期望:我要去 NBA 打球,我要去决赛,或者我去打网球,我要去温布尔登打球。
That just doesn’t happen.
那是不会发生的。
But racing is special in this way because it requires a fair amount of money to keep these cars running.
但赛车在这方面很特别,因为它需要相当多的钱来维持这些赛车的运行。
It’s really expensive.
真的很贵。
It’s like having a small startup.
这就像拥有一家小型初创公司。
You need to fly a bunch of people around the world and buy expensive equipment and so forth.
你需要带一群人环游世界并购买昂贵的设备等等。
So you need a bunch of capital, and I had some through the success of the company so I could do it, which meant that I could get to Le Mans.
所以你需要大量资金,而我通过公司的成功获得了一些资金,这样我就可以做到这一点,这意味着我可以参加勒芒。
4:40:50 So I set that as my goal.
所以我把它定为我的目标。
“I want to get to Le Mans,” and I started racing in real competition 2009, and three years later in 2012, I was at the grid of Le Mans for the first time.
“我想去勒芒”,我从 2009 年开始参加真正的比赛,三年后的 2012 年,我第一次登上勒芒赛道。
We should say, so Le Mans, 24-hour race, endurance.
应该说,所以勒芒,24小时比赛,耐力赛。
4:41:02 I mean, this is insane.
我的意思是,这太疯狂了。
There are three drivers, mind you.
请注意,共有三名司机。
4:41:10 So it’s not like one guy just drives for 24 hours straight, but still it’s a pretty tough race, both physically and mentally, especially mentally.
所以这并不像一个人连续 24 小时开车一样,但这仍然是一场相当艰苦的比赛,无论是身体上还是精神上,尤其是精神上。
When you’ve been up for 24 plus hours, you’re not quite as sharp as when you first wake up.
当您连续 24 个多小时不睡觉时,您的思维就不会像刚醒来时那么敏锐。
4:41:28 And this is funny about Le Mans too, it starts at around 4:00 in the afternoon, so you’ve already been up for half a day by the time the race starts and then there’s 24 hours to go before you’re done, and you’ll be in the car for anywhere from usually an hour and a half to a maximum of four hours.
勒芒也很有趣,它在下午 4:00 左右开始,所以到比赛开始时你已经起床了半天,距离比赛结束还有 24 小时,你会在车里待上通常一个半小时到最多四个小时的时间。
The regulations say four out of six is the max you can do.
规定规定,六分之四是你最多可以做的。
4:41:46 I’ve spent perhaps two and a half hours in a single stint at Le Mans.
我在勒芒的单次比赛中大约花了两个半小时。
It’s pretty taxing.
这非常费力。
You’re going 200 miles an hour into some of these turns and there’s another 60 cars on track.
您将以每小时 200 英里的速度进入其中一些转弯,并且赛道上还有另外 60 辆车。
Whenever I’m in my normal category, which is the LMP2 category, I have GT cars which are more like a Ferrari and a Porsche that I have to overtake, and then I have these hyper cars, which is the top-class that are overtaking me.
每当我处于正常类别(即 LMP2 类别)时,我都会拥有 GT 赛车,它们更像是我必须超越的法拉利和保时捷,然后我拥有这些超级赛车,它们是正在超越我的顶级赛车。
4:42:14 So you got a lot going on and you got to stay sharp for two and a half hours straight to do that.
所以你有很多事情要做,你必须连续两个半小时保持敏锐才能做到这一点。
That is just a guaranteed way to get incredible flow for long, long stretches of time.
这只是在很长一段时间内获得令人难以置信的流量的保证方法。
That’s why you get addicted to it.
这就是为什么你会对它上瘾。
That was why I got addicted.
这就是我上瘾的原因。
You got to talk me through this video, this video of you in these LMP2s.
你必须通过这个视频来告诉我,这个你在这些 LMP2 中的视频。
Oh, yes.
哦是的。
This is such a cool …
这真是太酷了……
4:42:31 This is so cool.
这太酷了。
Yeah, this was probably my favorite battle of my career.
是的,这可能是我职业生涯中最喜欢的一场战斗。
And Heinemeier Hansson has beat past to add five-
海涅迈尔·汉森 (Heinemeier Hansson) 已超越过去,增加了 5 个——
Yeah, so this is me driving against Nico Müller at the Shanghai International Circuit.
是的,这就是我在上海国际赛车场与尼科·穆勒的比赛。
You’re on the outside here?
你在外面吗?
I’m on the outside in the blue and white and we go a whole track around with basically a piece of paper between us.
我穿着蓝白相间的衣服站在外面,我们绕了一整条赛道,我们之间基本上就只有一张纸。
4:42:48 See, down this back straight, I get so close to him because I want to force him over on the other side of the track such that he can’t just box me in, and we’ve been fighting already at this point for basically 40 minutes straight.
看,在这条后直道上,我离他这么近,因为我想把他逼到赛道的另一边,这样他就不能把我围起来,而我们在这一点上已经连续战斗了 40 分钟。
4:43:06 I’ve been managing to keep this professional driver behind me for 40 minutes, and he finally passes me, but we just keep the battle on for the whole time.
我已经设法将这位职业车手追在我身后 40 分钟,他终于超过了我,但我们一直在继续战斗。
And it really just shows both these kinds of cars, the Le Mans Prototypes.
它实际上只是展示了这两种类型的汽车,即勒芒原型车。
We don’t actually ever touch.
我们实际上从未接触过。
We get within about an inch and keep going around the Shanghai Circuit to-
我们距离上海赛车场只有一英寸的距离,继续绕着上海赛车场行驶到——
How did you get so good?
你怎么变得这么好?
4:43:26 I mean, that’s a fascinating story, right, that you are able to get so good?
我的意思是,这是一个令人着迷的故事,对吧,你能变得这么好?
I’m pretty good for the kind of driver I am, which is called the gentleman driver, which means I’m not a professional driver.
我很适合我这种司机,这就是所谓的绅士司机,这意味着我不是一个职业司机。
4:43:34 And like many good gentlemen drivers, when we’re at our really best, we can be quite competitive with even professional drivers who have been doing this their whole life.
就像许多优秀的绅士车手一样,当我们真正处于最佳状态时,我们甚至可以与一生都在这样做的职业车手竞争。
4:43:50 The difference between us and the professionals is the professionals can do it every time, or more or less every time.
我们和专业人士的区别在于,专业人士每次都能做到,或者每次或多或少都能做到。
So I can’t be this good all the time.
所以我不可能一直都这么优秀。
When everything is just right, I can be competitive with professional drivers, but that’s not how you win championships.
当一切都恰到好处时,我可以与职业车手竞争,但这不是赢得冠军的方式。
That’s not how you get paid by factories to drive.
这不是工厂付钱让你开车的方式。
You got to be good every time you go out.
每次出门一定要表现得好。
4:44:07 So that’s a huge difference.
所以这是一个巨大的差异。
But some of it was also just, I really put my mind to it.
但有些也只是,我真的是用心去做的。
By the time I realized race cars is what I want to do as my serious hobby, I put in thousands of hours.
当我意识到赛车是我真正的爱好时,我投入了数千个小时。
Have you crashed?
你摔坏了吗?
4:44:21 What’s the worst crash?
最严重的车祸是什么?
I’ve had a lot of crashes, but thankfully, knock on wood, I haven’t had any crashes where I’ve gotten really seriously hurt.
我经历过很多次车祸,但值得庆幸的是,我还没有遇到过任何让我受到严重伤害的车祸。
Have you wrecked the car?
你把车弄坏了吗?
Oh, yes.
哦是的。
4:44:31 Oh, yes.
哦是的。
I’ve wrecked many a cars.
我毁坏了很多辆车。
So what’s that feel like, just you wreck a car?
那么,只是你毁坏了一辆汽车,那是什么感觉?
4:44:34 How do you get-
你如何得到——
It feels like total shit if you’re in a real race and other people depend on you.
如果你参加真正的比赛而其他人都依赖你,那感觉简直太糟糕了。
4:44:37 It’s not even so much the car, although it’s also sometimes that these cars are expensive to repair and that sucks and it feels so wasteful in a way when you crash some of these cars, but the sense that you’re letting a team down.
更重要的不是汽车,尽管有时这些汽车的修理费用很高,而且很糟糕,当你撞坏其中一些汽车时,在某种程度上感觉很浪费,而是你让团队失望的感觉。
4:44:55 Endurance racing is a team sport.
耐力赛是一项团队运动。
Not only do you have your mechanics, you usually have co- drivers.
你不仅有机械师,而且通常还有副驾驶员。
So when I crash, I just feel like, “Damn it, I could have avoided this.”
所以当我崩溃时,我只是觉得,“该死,我本来可以避免这种情况的。”
Yeah, but also you could have died.
是的,但你也可能会死。
Do you know what’s funny?
你知道什么好笑吗?
4:45:08 I never think about that.
我从来没有想过这个。
I don’t think you can because I think the moment you start thinking about being able to die, you can’t do it.
我不认为你可以,因为我认为当你开始考虑能够死的那一刻,你就不能这么做。
You can’t go fast.
你不能走得太快。
Well, I’m sure, not to go all Carl Jung and Freud here, but I’m sure that’s always present in the back of your mind somewhere.
好吧,我确信,这里不会全是卡尔·荣格和弗洛伊德,但我确信这总是存在于你脑海深处的某个地方。
4:45:18 You’re not just bringing it to the surface.
你不只是把它带到表面。
It is in the sense that it’s part of the appeal.
从某种意义上说,它是吸引力的一部分。
4:45:31 It’s part of the sense that there’s something on the line, that this isn’t just virtual.
这是一种感觉,即有某种东西处于危险之中,这不仅仅是虚拟的。
I can’t just hit reset, restart, reboot.
我不能只是点击重置、重新启动、重新启动。
If I crash this car, we’re going to be out, or we’re going to be disadvantaged, or it’s going to get destroyed, or I might get hurt.
如果我撞坏了这辆车,我们就会出局,或者我们会处于不利地位,或者它会被摧毁,或者我可能会受伤。
4:45:49 I’ve gotten lightly hurt a few times.
我受过几次轻伤。
I actually had, the year we won 24 Hours of Le Mans in our class, I’d been training in this Formula 3.5 car.
事实上,我们班赢得勒芒 24 小时耐力赛的那一年,我一直在驾驶这辆 3.5 级方程式赛车进行训练。
It’s a really fast car, it’s a really nice exercise to do, but it’s also, it doesn’t have power steering.
这是一辆非常快的汽车,这是一项非常好的练习,但它也没有动力转向装置。
So some of these race cars, especially the open-seaters, they don’t have power steering, which means that the steering wheel is basically, directly connected to the front wheels.
因此,其中一些赛车,尤其是敞篷赛车,没有动力转向装置,这意味着方向盘基本上直接连接到前轮。
4:46:19 So if you crash one of those cars and the front wheels suddenly turn, you’re really going to hurt your hands if you don’t get your hands off the wheel.
因此,如果您撞毁其中一辆车并且前轮突然转动,如果您不将手从方向盘上移开,您的手真的会受伤。
I hadn’t raced enough of those cars to know that I had to get, or to have the instinct, to have developed the instinct that I had to get my hands off the wheel, so I didn’t and I really hurt my hand.
我没有参加足够多的比赛,不知道我必须得到,或者有本能,发展出我必须把手离开方向盘的本能,所以我没有,而且我真的伤到了我的手。
4:46:36 This was just, I think a month before the 24 Hours of Le Mans.
我认为这只是勒芒 24 小时耐力赛前一个月。
So I thought, “Oh man, I’m going to have to miss it this year.” I had, not a cast.
所以我想,“天啊,今年我必须错过它了。”我有,不是演员。
It was just seriously sprained.
只是扭伤得很严重。
And then somehow, miraculously a week before the event, I was like, “Oh yeah, actually it’s okay now.” So, got to do it.
然后不知何故,奇迹般地在活动前一周,我想,“哦,是的,实际上现在没事了。”所以,必须这么做。
4:46:51 And that would’ve been grave regret if I would’ve seen my team go on to win the race and I would have to sit on the sidelines.
如果我看到我的团队继续赢得比赛而我不得不坐在场边,那将是非常遗憾的。
But I really have been quite fortunate in the sense that most of my crashes have just been expensive or sporting-inconvenient.
但我真的很幸运,因为我的大多数撞车事故都是昂贵的或运动上的不便。
They’ve never been something where I got seriously hurt, but I’ve seen plenty of people who have.
我从来没有受到过严重伤害,但我见过很多人受过严重伤害。
4:47:13 In fact, my co-driver this year, and for several years, Pietro Fittipaldi drove a race car at Spa.
事实上,我的副驾驶今年以及几年来一直在斯帕驾驶赛车。
Spa is one of the great racetracks of all time and it has this iconic corner called Eau Rouge, which is probably the most famous corner in all of Motorsports that has a great compression before you climb uphill.
斯帕是有史以来最伟大的赛道之一,它有一个名为 Eau Rouge 的标志性弯道,这可能是所有赛车运动中最著名的弯道,在上坡之前会受到很大的压缩。
4:47:34 It’s extremely fast, very difficult corner.
这是一个非常快、非常困难的弯道。
And just as he does the compression, his car basically sets out and he loses his power steering and he drives straight into the wall and breaks both his legs and basically, face the prospect that maybe his career was over.
就在他进行压缩时,他的车基本上出发了,他失去了动力转向,他直接撞到墙上,摔断了双腿,基本上,他的职业生涯可能已经结束了。
I’ve had other teammates and people I know have serious injuries that’s really hurt them.
我的其他队友和我认识的人都受过重伤,这对他们造成了很大的伤害。
4:47:57 And yet what’s funny, as you say, you’d think that would sink in.
然而有趣的是,正如你所说,你会认为这会被理解。
The year before we won in 2014, that same car had a Danish driver in it at Le Mans at the race I was driving, who died.
2014 年我们获胜的前一年,在我驾驶的勒芒比赛中,同一辆赛车上有一位丹麦车手,但他去世了。
He lost control of the car when there was a bit of rain on the track, and the track was unfortunately designed in such a poor way that there was a very big tree right behind the railing.
当赛道上下点小雨时,他失去了对赛车的控制,不幸的是赛道设计得很糟糕,栏杆后面有一棵很大的树。
And he hit that tree at full speed, pulled 90gs and was dead on the spot, which was just such an extremely awful experience to go through.
他全速撞上那棵树,拉力达到 90 克,当场死亡,这真是一次极其可怕的经历。
4:48:42 I finished second that year, which should have been cause for a bunch of celebration, but it was just tainted by the fact that not only did a driver die, a fellow Dane died, a guy I knew died.
那年我获得了第二名,这本来应该值得庆祝,但事实却玷污了这一点,不仅有一名车手死了,还有一个丹麦人死了,还有一个我认识的人死了。
That was pretty tough.
那是相当艰难的。
So throw that into the pile of the things that have to be considered, is the weather conditions, like you mentioned of the track, whether it’s dry or wet.
因此,将其纳入必须考虑的因素中,就是天气条件,就像您提到的赛道一样,无论是干燥还是潮湿。
It’s a huge part of it.
这是其中很大一部分。
4:49:12 Even just last year at Le Mans, it was raining and I was out and I hadn’t made a serious mistake at 24 Hours of Le Mans since I did the first race in 2012, where I put it in the sand trap with four hours to go.
就在去年的勒芒,天还在下雨,我就缺席了。自 2012 年参加第一场比赛以来,我在勒芒 24 小时耐力赛上还没有犯过严重错误,当时我在比赛还剩 4 小时时将赛车放入沙坑中。
And we lost a couple of laps getting pulled out, but it didn’t actually change anything for our result because that was just how the field was spread out.
我们因退出而损失了几圈,但这实际上并没有改变我们的结果,因为这就是场地的分布方式。
4:49:41 I’d made minor mistakes over the years, but nothing that really set us out.
多年来我犯过一些小错误,但没有什么真正让我们失望的。
And at the race last year when it was raining, I first clobbered a Ford Mustang when I made an overambitious pass on a damp part of the track and couldn’t stop in time and then felt absolutely awful as I sat in the gravel pit for two laps and knew that our race was over, a race where we were highly competitive.
去年下雨的比赛中,我第一次在潮湿的赛道上进行了一次过于雄心勃勃的超车,无法及时停下来,撞上了一辆福特野马,然后我在砾石坑里坐了两圈,感觉非常糟糕,我知道我们的比赛已经结束了,一场我们竞争激烈的比赛。
4:50:07 You’re not blessed with a competitive car, a competitive team and competitive setup every year.
你不会每年都拥有一辆有竞争力的赛车、一支有竞争力的团队和有竞争力的设置。
I know how rare that is.
我知道那是多么罕见。
So to know that we had had a chance that year and I sort of squandered it felt really bad.
所以知道那年我们有一个机会,但我却浪费了它,感觉真的很糟糕。
But that got compounded when I got back on track, barely made it another stint and then put it into gravel trap again when it started raining on the entrance into Porsche.
但当我回到赛道上时,情况变得更加复杂,勉强再跑了一圈,然后当保时捷入口开始下雨时,它又陷入了砾石陷阱。
4:50:29 So this is part of why racing is so addicting too because the highs are very, very high.
这就是为什么赛车如此令人上瘾的部分原因,因为高潮非常非常高。
When you win a race like the 24 Hours of Le Mans, it feels just incredible.
当您赢得像勒芒 24 小时耐力赛这样的比赛时,感觉简直难以置信。
There’s so much emotion, but if you fuck it up, the lows are very, very low.
有太多的情感,但如果你把它搞砸了,最低点就会非常非常低。
What are the things you’re paying attention to when you’re driving?
你开车时要注意哪些事情?
4:50:44 What are the parameters?
参数是什么?
What are you loading in?
你正在加载什么?
Are you feeling the grip?
你感觉到抓地力了吗?
Are you basically increasing the speed and seeing a constant feedback system effect it has on the grip, and you’re trying to manage that and trying to find that optimal slip angle?
您是否基本上提高了速度并看到其对抓地力的持续反馈系统影响,并且您正在尝试管理它并尝试找到最佳侧滑角?
4:51:09 Are you looking around using your eyes?
你用眼睛环顾四周吗?
Are you smelling things?
你闻到东西了吗?
Are you listening, just feeling the wind or are you looking at the field, too?
您是在听、只是感受风,还是也在看田野?
How’d you not hit that guy at all?
你怎么就没打那家伙呢?
You get close within inches, right?
你已经接近几英寸了,对吧?
So you have to pay attention to that, too.
所以你也必须注意这一点。
It’s really interesting about that specific battle where we’re literally a few inches apart.
这场特定的战斗真的很有趣,我们之间的距离实际上只有几英寸。
4:51:26 I can’t fully explain it, but humans can develop an incredible sense of space where I can’t see the edge of the back of my car, but I can know exactly where it is.
我无法完全解释它,但人类可以发展出一种令人难以置信的空间感,我看不到汽车后部的边缘,但我可以确切地知道它在哪里。
I can have a mental model in my head that gives me the exact dimensions of this car such that I can run within a few inches of a competitor car or within a few inches of the wall and not hit either when things go well.
我的头脑中可以有一个心理模型,它可以为我提供这辆车的精确尺寸,这样我就可以在距离竞争对手汽车几英寸的范围内或距离墙壁几英寸的范围内运行,并且在一切顺利时都不会撞到。
4:51:57 The car is about two meters wide and it’s quite long, five meters and you can’t see everything.
车子宽约两米,也很长,有五米,看不清一切。
The mirrors are actually kind of shit.
镜子其实就是个垃圾。
There’s no rear-view mirror in these cars.
这些车没有后视镜。
You can’t see out the back.
你看不到后面。
You can only see through your two side mirrors, but you form this intuitive mental model when you get good enough at this.
你只能通过两侧的后视镜看到东西,但是当你足够擅长时,你就会形成这种直观的心理模型。
4:52:14 But what I actually pay attention to most is I run a program.
但实际上我最关注的是我运行一个程序。
What I try to do when I go to a racetrack is I try to load up the best program I know how for every single corner.
当我去赛马场时,我会尝试为每个弯道加载我知道的最佳程序。
What’s my brake point?
我的刹车点是什么?
What’s my acceleration point?
我的加速点是多少?
What’s my brake trailing curve?
我的制动拖尾曲线是多少?
And I try to pick up that program in part just by finding it myself and how fast I can go.
我尝试通过自己找到它以及我能走多快来部分地学习该程序。
But even more so than that by copying my professional competitors, or not competitors, co-drivers.
但更重要的是通过模仿我的职业竞争对手,或者不是竞争对手,副驾驶。
4:52:45 So I usually always race with a pro, and modern race cars produce an absolute enormous amount of data, and you can analyze all that data after each outing.
所以我通常总是和专业人士一起比赛,现代赛车会产生绝对大量的数据,你可以在每次比赛后分析所有这些数据。
You can see an exact trace of how much you pushed the brake pedal, how much you did in terms of steering inputs, when you got on the gas.
当您踩油门时,您可以准确地看到踩刹车踏板的力度、转向输入的力度。
You can see every millisecond you’re losing is evident in those charts.
您可以看到您损失的每一毫秒在这些图表中都很明显。
4:53:09 So what I try to do is I try to look at the chart and then I try to load that in, and that’s what I got to do.
所以我尝试做的是尝试查看图表,然后尝试将其加载进去,这就是我要做的。
“Oh, in this corner 17, I have to be 10 bar lighter on the brake,” so I try to load that program in and then I try to repeat it.
“哦,在这个 17 号弯,我的刹车必须轻 10 巴,”所以我尝试加载该程序,然后尝试重复它。
4:53:23 Now, then there are all the things that changes.
现在,所有的事情都发生了变化。
Your tires change quite a lot.
你的轮胎变化很大。
These tires are made to only last 40 minutes in many cases.
在许多情况下,这些轮胎只能持续 40 分钟。
Sometimes at Le Mans we can go longer, but at some racetracks they’ll last as little as 40 minutes before they really fall off.
有时在勒芒,我们可以跑得更远,但在某些赛道上,它们只会持续 40 分钟,然后就会真正脱落。
So you got to manage that, that the grip is constantly changing, so your program have to suddenly fit those changing circumstances.
所以你必须管理这一点,握力是不断变化的,所以你的程序必须突然适应那些不断变化的环境。
4:53:45 And then in endurance racing, you’re constantly interacting with other cars because you’re passing slower classes or you’re getting passed by a faster class.
然后在耐力赛中,你会不断地与其他赛车互动,因为你正在通过较慢的级别或你正在通过较快的级别。
So that’s part of the equation.
这就是等式的一部分。
And then you’re trying to dance the car around the limit of adhesion.
然后你试图让汽车绕过附着力极限。
4:53:59 So you got all those factors playing at the same time.
所以所有这些因素同时发挥作用。
But above all else for me is to try to become a robot.
但对我来说最重要的是尝试成为一个机器人。
How can I repeat this set of steps exactly as I’m supposed to for two and a half hours straight without making 100 milliseconds worth of mistakes?
我怎样才能在两个半小时内完全按照预期重复这组步骤而不犯 100 毫秒的错误?
Yeah.
是的。
4:54:17 Low latency algorithm.
低延迟算法。
That’s really a huge part of it actually.
实际上,这确实是其中很大一部分。
4:54:20 Your latency is enormously important in terms of being able to catch when the car starts slipping.
就能够在汽车开始打滑时捕捉到的情况而言,延迟时间非常重要。
You get this sensation in your body that the G-forces are a little off, the slip angle is a little off and then you have to counter steer.
你的身体会感觉到重力有点偏离,侧滑角有点偏离,然后你必须反向转向。
4:54:38 And obviously, the best race car drivers just feel like an intuition.
显然,最好的赛车手感觉就像是一种直觉。
I have some intuition.
我有一些直觉。
I don’t have all of it, so I do occasionally spin my car, but that’s the challenge.
我没有所有这些,所以我偶尔会旋转我的车,但这就是挑战。
From everything you’ve studied and understand, what does it take to achieve mastery in racing?
从你所学习和理解的一切来看,如何才能精通赛车?
4:54:48 What does it take to become the best race car driver in the world?
成为世界上最好的赛车手需要什么?
Obsession is part of it.
痴迷是其中的一部分。
4:54:58 When I read and hear about Senna and the other greats, they were just singularly focused.
当我读到和听到塞纳和其他伟人的故事时,他们都非常专注。
Max Verstappen is the current champion of the world and he is the same kind.
马克斯·维斯塔潘是现任世界冠军,他也是同类。
Max has been fascinating to watch.
麦克斯的表演非常精彩。
I mean, he’s a phenomenal race car driver, but he also literally does nothing else.
我的意思是,他是一位出色的赛车手,但他实际上也没有做其他事情。
When he’s not at the racetrack, he’s driving sim racing.
当他不在赛道上时,他会驾驶模拟赛车。
He’s literally in video games doing more racing when he’s not doing all the racing he’s already doing.
当他没有完成他已经在做的所有比赛时,他确实在电子游戏中进行了更多的比赛。
Is there a specific skill they have that stands out to you as supernatural through all of that obsession?
他们是否拥有某种特殊的技能,让你在所有这些痴迷中脱颖而出?
4:55:30 Is it a bunch of factors or are they actually able to, like you said, develop a sense?
这是一堆因素还是他们真的能够像你所说的那样发展出一种感觉?
Is it, they’re able to get to the very edge of the slip?
是吗,他们能够到达滑坡的边缘吗?
They’re able to develop very fine-tuned sensibilities for when the car is sliding.
当汽车滑动时,他们能够培养出非常精细的敏感性。
4:55:45 They can feel just these tiny moments or movements in the chassis that transports up usually through their ass.
他们可以感觉到底盘中的这些微小的时刻或运动,通常通过他们的屁股向上传送。
That’s why you call it a butt meter that goes up and you feel like the car is loose, or you feel like you’re just about to lock up.
这就是为什么你称其为尾部仪表,当仪表上升时,你会感觉汽车松动,或者感觉即将锁止。
You can really hone that tuning.
你确实可以磨练这种调音。
4:56:10 Then the other thing is you have to have really good reaction time.
另一件事是你必须有很好的反应时间。
And when you look at great Formula 1 drivers, they can generally have a reaction time of just under 200 milliseconds, which is awesome, and even 10 milliseconds’ difference makes a huge difference.
当你观察优秀的一级方程式赛车手时,你会发现他们的反应时间通常不到 200 毫秒,这真是太棒了,甚至 10 毫秒的差异也会产生巨大的差异。
4:56:26 You’ll see it when the Formula 1 grid, for example, they do a standing start and you see the five red lights come on.
例如,当一级方程式赛车发车时,您会看到它站立起跑,您会看到五个红灯亮起。
And when the last light goes out, they’re supposed to release the clutch and get going, and they can time this.
当最后一盏灯熄灭时,他们应该松开离合器并开始行驶,并且他们可以计时。
So you can see exactly who has the reaction time.
这样你就可以准确地看到谁有反应时间。
4:56:40 And even being off by 20 milliseconds can make the difference of whether you’re in front or behind at the first corner.
即使落后 20 毫秒也会影响您在第一个弯道处的领先还是落后。
How much of winning is also just the strategy of jostling for position?
有多少胜利也只是争夺位置的策略?
There’s some of that, and some of it is also just nerve.
其中有一些,还有一些也只是神经。
4:56:53 Who wants it more?
谁更想要它?
That’s exactly when that sense of danger comes in.
这正是危险感出现的时候。
There’s a great quote from Fernando Alonso when he was driving at Suzuka against Schumacher, I think.
我认为费尔南多·阿隆索在铃鹿赛道与舒马赫比赛时有一句很棒的话。
4:57:09 They’re coming up to this incredibly fast corner.
他们即将到达这个令人难以置信的快速弯道。
It’s very dangerous, and Alonso basically accounts, “I was going to make the pass because I knew he had a wife and kids at home.”
这非常危险,阿隆索基本上说,“我打算通过,因为我知道他家里有妻子和孩子。”
That’s so gangster.
真是太流氓了。
Just absolutely ruthless, right?
绝对是无情的,对吧?
Yeah.
是的。
4:57:25 Wow.
哇。
That, “I knew he valued life more than I did.” So there’s a bit of poker sometimes in that, who’s going to yield?
那就是,“我知道他比我更珍惜生命。”所以有时这里面有一些扑克牌的成分,谁会屈服呢?
4:57:26 There’s a bit of chicken raised in that regard, and sometimes it doesn’t work.
这方面有点养鸡,有时也行不通。
No one yields and you both crash, but very often one person will blink first.
没有人让步,你们都会崩溃,但通常会有一个人先眨眼。
Can the pass be both on the inside and the outside or is it-
通行证可以同时在内部和外部吗?或者是-
You can pass wherever you want as long as you have just a slight part of the car on the racetrack.
只要你的车只有一小部分在赛道上,你就可以通过任何你想去的地方。
And then you just improvise and take risks.
然后你就只是即兴发挥并承担风险。
4:57:50 What a sport.
多么一项运动啊。
And then Senna, of course is a legendary risk-taker.
当然,塞纳是一位传奇的冒险家。
Yes.
是的。
4:58:00 And even before him.
甚至在他之前。
By the time …
到时候……
I mean, he died in the ’90s, but by the time we got to the ’90s, racing was already a lot safer than it was when Nik Lauda raced in the ’60s.
我的意思是,他在 90 年代去世,但当我们进入 90 年代时,赛车已经比 Nik Lauda 在 60 年代赛车时安全得多。
That level of danger is no longer there.
那种程度的危险已经不复存在了。
There’s still just a remnant of it and it is still dangerous, but nothing like that.
它仍然只是残余,仍然很危险,但没有那样的了。
4:58:21 And it’s a little hard to compare through the ages who’s the greatest driver of all time.
古往今来,要比较谁是有史以来最伟大的车手有点困难。
I think there’s a fair argument that Senna is, but we don’t have the data.
我认为塞纳是有道理的,但我们没有数据。
We don’t know who he was up against.
我们不知道他的对手是谁。
How would he fare if we pitted him against Max Verstappen today?
如果我们今天让他对阵马克斯·维斯塔潘,他会表现如何?
4:58:35 I do think sometimes that you can have a bit of a nostalgia for the all-time greats, but the world moves forward and new records are being set all the time and the professionalism keeps improving, sometimes to the detriment of the sport, I think.
我确实认为有时你会对历史上的伟人有一点怀旧,但世界在前进,新的纪录一直在创造,专业精神也在不断提高,我认为,有时这会损害这项运动。
4:58:48 There’s a lot of professional drivers who are not only just very good at driving, but are very good at being corporate spokespeople, and it used to be quite different.
现在有很多职业司机不仅非常擅长驾驶,而且非常擅长成为企业代言人,这在过去是非常不同的。
There used to be more characters in racing that had a bit more personality that they were allowed to shine because there weren’t a billion sponsorships on the line that they were afraid to lose.
过去,赛车界有更多有个性的人物,他们被允许大放异彩,因为他们害怕失去十亿个赞助商。
Ridiculous question, what’s the greatest car ever made, or maybe what’s the funnest one to drive?
可笑的问题,有史以来最伟大的汽车是什么,或者驾驶起来最有趣的汽车是什么?
The greatest car for me of all time is the Pagani Zonda.
对我来说,有史以来最伟大的汽车是帕加尼 Zonda。
Okay, I’m looking this up, Pagani Zonda.
好的,我正在查找这个,帕加尼 Zonda。
So the Pagani Zonda was made by this wonderful Argentinian called Horacio Pagani.
因此,帕加尼 Zonda 是由一位名叫霍拉西奥·帕加尼 (Horacio Pagani) 的出色的阿根廷人制造的。
My God, that’s a beautiful car.
天哪,这真是一辆漂亮的车。
4:59:25 Wow.
哇。
It’s a gorgeous car.
这是一辆漂亮的车。
4:59:26 You can look up mine.
你可以查一下我的
It’s the Pagani Zonda HH.
这是帕加尼 Zonda HH。
Yep.
是的。
So, that’s a car I had made in 2010 after we visited the factory in Modena, and by sheer accident ended up with this car, but it became my favorite car in the world basically.
这是我在 2010 年参观摩德纳工厂后制造的一辆车,纯属偶然,最终得到了这辆车,但它基本上成为了我在世界上最喜欢的车。
When I watched an episode of Top Gear, I think in 2005, where one of the presenters was driving the Pagani Zonda F around and I just thought, “That’s the most beautiful car in the world.
当我观看《Top Gear》的一集时,我记得是在 2005 年,当时一位主持人开着帕加尼 Zonda F 到处转,我当时想,“那是世界上最漂亮的车。
It is the most incredibly sounding car in the world.
它是世界上听起来最令人难以置信的汽车。
If I one day have the option, this is what I want.”
如果有一天我可以选择的话,这就是我想要的。”
5:00:14 And then I had the option in 2010.
然后我在 2010 年有了选择。
I’ve had the car ever since.
从那时起我就拥有了这辆车。
I’m never ever going to sell it.
我永远不会卖掉它。
It’s truly a masterpiece that’s stood the test of time.
这确实是一部经得起时间考验的杰作。
There’s some great cars from history that are recognized as being great in their time.
历史上有一些伟大的汽车在他们的时代被认为是伟大的。
This car is still great.
这车还是很棒的。
Have you taken it on the racetrack?
你在赛道上带过它吗?
I have.
我有。
5:00:32 It’s terrible at that.
这太可怕了。
But I don’t want to say it’s terrible at that.
但我不想说这很糟糕。
That’s not what it’s designed for.
这不是它的设计目的。
It’s designed for the road and that’s why it’s great.
它专为公路而设计,这就是它的出色之处。
There are a lot of fast cars that are straddling their race car for the road.
有很多快车骑在赛车上上路。
You don’t actually want a race car for the world.
你实际上并不想要一辆适合世界的赛车。
A race car for the world is a pain in the ass.
对于世界来说,一辆赛车是一件令人头疼的事情。
It’s way too stiff.
太僵硬了。
It’s way too loud.
声音太大了。
It’s way too uncomfortable.
这太不舒服了。
You can’t actually take it on a road trip.
你实际上不能带着它去公路旅行。
So this actually feels good driving on normal roads?
那么在普通道路上驾驶真的感觉很好吗?
Oh, totally, totally.
哦,完全,完全。
And you, of course always go to speed limit?
而你,当然总是会限速吗?
Always.
总是。
5:01:00 This is why I love having this car in Spain because they’re a little more relaxed.
这就是为什么我喜欢在西班牙拥有这辆车,因为他们更放松一点。
Not entirely relaxed, but more relaxed than they are in a lot of places.
虽不完全放松,但比很多地方放松多了。
In Denmark, I kid you not, if you are on the highway and you go more than twice the speed limit, they confiscate your car and keep it.
在丹麦,我没骗你,如果你在高速公路上,速度超过限制的两倍,他们就会没收你的车并扣留它。
You’re not getting it back.
你不会把它拿回来。
They don’t even care if it’s your car or not.
他们甚至不在乎这是否是你的车。
If you were borrowing my car and you went twice the speed limit, it’s gone.
如果你借了我的车并且你的速度超过了限制的两倍,那么它就消失了。
5:01:26 So they don’t do that in Spain.
所以他们在西班牙不会这样做。
I mean, in most places, except for the German Autobahn, they get pissy if you go twice the speed limit for all sorts of fair reasons.
我的意思是,在大多数地方,除了德国高速公路,如果你出于各种合理的原因超过限速两倍,他们会生气。
I’m not advocating that you should be going much more than that, but there are certain special roads where you can’t open things up and no one’s in harm’s way, and that’s an incredible sensation.
我并不是主张你应该走得更多,但有些特殊的道路你不能打开,也不会伤害任何人,这是一种令人难以置信的感觉。
And I do think that some of those speed limits actually are kind of silly, and I’m not just saying that in a vacuum.
我确实认为其中一些速度限制实际上有点愚蠢,而且我并不是凭空说出来的。
5:01:50 In Germany, they have the glorious Autobahn, and on the Autobahn there is no speed limit in a bunch of segments.
在德国,他们有光荣的高速公路,在高速公路上,很多路段都没有速度限制。
And they’re so committed to their speed-limitless Autobahn, which is by the way, very weird of Germans.
他们如此热衷于不限速的高速公路,顺便说一句,这对德国人来说很奇怪。
They usually love rules.
他们通常喜欢规则。
They’re usually very precise about it, and then they have this glorious thing called the Autobahn.
他们通常对此非常精确,然后他们就有了这个叫做高速公路的光荣事物。
5:02:09 There was a great case a couple of years ago where a guy took out a Bugatti Chiron, went 400 kilometers an hour on the Autobahn, and he filmed it and put it on YouTube and a case was brought against him because even though they don’t have a speed limit, they do have rules that you can’t drive recklessly, and he won the case.
几年前有一个很好的案例,一个人开着一辆布加迪 Chiron,在高速公路上以每小时 400 公里的速度行驶,他把整个过程拍下来放在 YouTube 上,结果有人对他提起诉讼,因为尽管他们没有速度限制,但他们确实有不能鲁莽驾驶的规定,他赢了官司。
He wasn’t driving recklessly.
他并没有鲁莽驾驶。
He was just going very, very fast.
他只是走得非常非常快。
5:02:32 I’ve done the Autobahn a couple of times.
我已经跑过几次高速公路了。
My wife and I went on a road trip in Europe in 2009, and I got the Lamborghini Gallardo we were driving up to 200 miles an hour.
2009 年,我和妻子去欧洲进行了一次公路旅行,我开着兰博基尼 Gallardo,时速可达 200 英里。
And I’d driven 200 miles an hour or close to it on a racetrack before.
我以前在赛道上曾以 200 英里或接近每小时的速度行驶。
That feels like one thing.
感觉就像是一回事。
Driving on a public road 200 miles an hour feels really, really fast.
在公路上以每小时 200 英里的速度行驶感觉非常非常快。
Scary?
可怕的?
Actually a little scary, yes, because you constantly think, on a racetrack you know the road, you know the surface.
实际上有点可怕,是的,因为你不断地想,在赛道上你了解道路,你了解路面。
5:02:54 You can walk the track in most of the time.
大部分时间你都可以在赛道上行走。
You can know if there’s a dip.
您可以知道是否有下跌。
On a public road you can’t know if there’s suddenly a pothole.
在公共道路上,您无法知道是否突然出现坑洼。
Presumably there’s not going to be a pothole on the German Autobahn, but it does feel a little scary, but also exhilarating.
德国高速公路上大概不会有坑洼,但确实感觉有点可怕,但也令人兴奋。
5:03:13 Speed is just intrinsically, really fun.
速度本质上是非常有趣的。
I don’t know anyone I’ve taken out in a fast car …
我不认识任何我开快车带过的人……
Well, actually I do know a few people.
嗯,实际上我确实认识一些人。
Most people I take out in a fast car, they grin.
我开着一辆快车带出去的大多数人,他们都会咧着嘴笑。
It’s a human reaction to grin when you go really fast.
当你走得太快时,这是人类的一种微笑反应。
Do you know what’s the fastest you’ve ever gone?
你知道你跑过的最快速度是多少吗?
It was probably at Le Mans, I think when the LMP2s were at their maximum power and had 600 horsepower and really sticky tires, we were going 340 kilometers an hour, which is just over 200 miles an hour, a bit over 200 miles an hour.
可能是在勒芒,我想当 LMP2 处于最大功率、600 马力和非常粘的轮胎时,我们的时速是 340 公里,也就是每小时 200 英里多一点,每小时 200 英里多一点。
5:03:31 That does feel fast.
确实感觉很快。
5:03:47 And it’s really interesting with speed, is that the difference between going, let’s say 150 and 160 doesn’t feel that much actually, those 10 miles an hour.
速度方面非常有趣的是,每小时 150 英里和 160 英里之间的差别实际上并没有那么大。
But the difference between going 190 and 200 feels crazy faster, which as a percentage change is actually less than going from 150 to 160, but there’s some sense of exponentiality once you get up to those limits, where it’s just on a completely different level.
但达到 190 和 200 之间的差异让人感觉疯狂得更快,从百分比变化来看,实际上比从 150 到 160 的变化要小,但一旦达到这些极限,就会有某种指数级的感觉,只是处于完全不同的水平。
Yeah, because to me, 110, 120 feels fast.
是的,因为对我来说,110、120 感觉很快。
5:04:16 200, that’s crazy.
200,太疯狂了。
It really is crazy.
这真的很疯狂。
I got to ask you about the details of your programming setup, the IDE, all that kind of stuff.
我必须询问您有关编程设置、IDE 以及所有此类内容的详细信息。
5:04:26 Let’s paint the picture of the perfect programming setup.
让我们描绘出完美的编程设置。
Do you have a programming setup that you enjoy?
您有自己喜欢的编程设置吗?
Are you very flexible?
你很灵活吗?
How many monitors?
有多少个显示器?
What kind of keyboard?
什么样的键盘?
What kind of chair?
什么样的椅子?
What kind of desk?
什么样的桌子?
It’s funny because if you’d asked me, let’s see, a year and a half ago, I would’ve given you the same answer as I would’ve given anyone for basically 20 years.
这很有趣,因为如果你在一年半前问我,让我们想想,我会给你的答案和我基本上 20 年来给任何人的答案一样。
5:04:51 I want a Mac.
我想要一台 Mac。
I like the Magic Keyboard.
我喜欢妙控键盘。
I like the single monitor.
我喜欢单显示器。
Apple makes an awesome 6K 32-inch XDR screen that I still haven’t found anyone who’ve beaten that I still use.
Apple 制造了一款很棒的 6K 32 英寸 XDR 屏幕,我仍然没有找到任何人能打败我仍在使用的屏幕。
Even though I switched away from Apple computers, I still use their monitor because it’s just fantastic.
尽管我不再使用苹果电脑,但我仍然使用他们的显示器,因为它非常棒。
But I’ve always been a single screen kind of guy.
但我一直是一个只看屏幕的人。
5:05:25 I do like a big screen, but I don’t want multiple screens.
我确实喜欢大屏幕,但我不想要多个屏幕。
I’ve never found that, that really works with my perception.
我从来没有发现,这确实符合我的看法。
I want to be able to just focus on a single thing.
我希望能够专注于一件事。
I don’t want all of it all over the place, and I’ve always used multiple virtual desktops and being able to switch back and forth between those things.
我不希望所有这些东西到处都是,而且我一直使用多个虚拟桌面,并且能够在这些东西之间来回切换。
5:05:41 But the setup I have today is Linux, I switched to a little over a year ago after I finally got fed up with Apple enough that I couldn’t do that anymore.
但我今天的设置是 Linux,一年多前,当我终于厌倦了 Apple 以至于我无法再这样做之后,我切换到了 Linux。
And then I use this low-profile mechanical keyboard called the Lofree Flow84, which is just a …
然后我使用这款名为 Lofree Flow84 的低调机械键盘,它只是一个……
5:06:01 …
……
Flow84, which is just the most glorious-sounding keyboard I’ve ever heard.
Flow84,这是我听过的听起来最美妙的键盘。
I know there are a lot of connoisseurs of mechanical keyboards that’ll probably contest me on this.
我知道有很多机械键盘鉴赏家可能会在这个问题上与我较量。
This is too thocky or too clicky or too clacky or whatever.
这太笨拙或太咔嗒声或太嘎嘎声或其他什么。
But for me, the Lofree Flow84 is just a delight that I did not even know existed, which is so funny because I’ve been programming for a long time.
但对我来说,Lofree Flow84 只是一种我什至不知道存在的乐趣,这很有趣,因为我已经编程很长时间了。
Mechanical keyboards have been a thing for a long time.
机械键盘已经存在很长时间了。
5:06:31 And the keyboard, when you look at it like this, it looks plain.
还有键盘,当你这样看时,它看起来很普通。
It doesn’t look extravagant.
看起来并不奢侈。
But the tactile sensation you get out of pushing those keys, the thocky sound that you hear when the keys hit the board, it’s just sublime.
但是按下这些按键所获得的触觉,以及按键敲击键盘时听到的刺耳声音,真是太棒了。
And I’m kicking myself that I was in this Mac bubble for so long that I wasn’t even in the market to find this.
我很后悔自己在 Mac 泡沫中呆了这么久,以至于我什至没有在市场上找到这个。
5:06:57 I knew mechanical keyboards existed, but to be blunt, I thought it was a bit of a nerd thing that only real nerds that were much more nerdy than me would ever care about.
我知道机械键盘的存在,但说实话,我认为这是一件有点书呆子的事情,只有比我书呆子多的真正的书呆子才会关心。
And then I got out of the Apple bubble and suddenly, I had to find everything again.
然后我走出了苹果泡沫,突然之间,我不得不重新寻找一切。
I had to find a new mouse, I had to find a new keyboard, I had to find everything.
我必须找到一个新鼠标,我必须找到一个新键盘,我必须找到所有东西。
And I thought, “All right.
我想:“好吧。
Let me give mechanical keyboards a try.” And I gave quite a few of them a try.
让我尝试一下机械键盘。”我尝试了其中的一些。
5:07:19 The Keychron is one of the big brands in that.
Keychron 是其中的大品牌之一。
I didn’t like that at all.
我一点也不喜欢那样。
I tried a bunch of other keyboards.
我尝试了很多其他键盘。
And then I finally found this keyboard and I just went like…
然后我终于找到了这个键盘,我就像……
Angels are singing.
天使在歌唱。
Where have you been my whole life?
我这辈子你都去哪儿了?
We spend, as programmers, so much of our time interacting with those keys.
作为程序员,我们花费大量时间与这些键进行交互。
It really kind of matters.
这确实很重要。
5:07:36 In a way, I didn’t fully appreciate it.
在某种程度上,我并没有完全欣赏它。
I used to defend the Apple Magic Keyboard like, “Hey, it’s great.
我曾经为 Apple Magic Keyboard 辩护,比如:“嘿,它太棒了。
It’s actually a great keyboard.” And I think for what it is, this ultra-low profile, ultra-low travel, it’s actually a really nice keyboard.
这实际上是一个很棒的键盘。”我认为,就其本质而言,这种超低调、超低行程的键盘实际上是一款非常好的键盘。
But once you’ve tried a longer-travel mechanical keyboard, there’s no going back.
但一旦您尝试了更长行程的机械键盘,就再也回不去了。
You do have to remember, in many ways, both on the software side and the hardware side, that you do spend a lot of hours-
您必须记住,在很多方面,无论是在软件方面还是在硬件方面,您确实花费了大量时间 -
Yes.
是的。
…
……
5:08:01 behind the computer.
电脑后面。
It’s worth-
值得——
It’s worth investing in.
值得投资。
And also worth exploring until you find the thing where the angels start singing, whatever.
并且也值得探索,直到你找到天使开始唱歌的地方,无论如何。
That’s exactly right.
完全正确。
5:08:09 And I actually do regret that a little bit, especially with this damn keyboard.
事实上我确实有点后悔,尤其是这个该死的键盘。
I could have been listening to these beautiful thocky keys for years and years.
我可能已经听了这些美丽的粗琴键很多年了。
But sometimes you have to get really pissed off before you open your eyes and see that something else exists.
但有时,在你睁开眼睛并看到其他东西存在之前,你必须非常生气。
5:08:26 I feel the same way about Linux.
我对 Linux 也有同样的感觉。
So I’ve been using Linux on the server since late ’90s probably.
所以我可能从 90 年代末开始就在服务器上使用 Linux。
We ran servers on Linux back then.
那时我们在 Linux 上运行服务器。
I never seriously considered it as a desktop option.
我从来没有认真考虑过将其作为桌面选项。
I never ran Linux before directly myself.
我以前从未亲自运行过 Linux。
I always thought, “Do you know what?
我总是想:“你知道吗?
I want to focus on programming.
我想专注于编程。
I don’t have time for all these configuration files and all this setup bullshit and whatnot.
我没有时间处理所有这些配置文件和所有这些废话设置等等。
And Apple is close enough.
苹果已经足够接近了。
It’s built on Unix underpinnings.
它建立在 Unix 基础上。
Why do I need to bother with Linux?”
为什么我需要为 Linux 操心呢?”
5:08:56 And again, it was one of those things.
再说一次,这就是其中之一。
I needed to try new things and try something else to realize that there is other things other than Apple.
我需要尝试新事物并尝试其他东西,才能意识到除了苹果之外还有其他东西。
And again, it’s not because I hate Apple.
再说一遍,这并不是因为我讨厌苹果。
I think they still make good computers.
我认为他们仍然制造出很好的计算机。
I think a lot of the software is still also pretty okay.
我觉得很多软件还是还不错的。
But I have come to realize that as a web developer, Linux is just better.
但我开始意识到,作为一名 Web 开发人员,Linux 更好。
Yeah.
是的。
Linux is just better.
Linux 更好一些。
5:09:20 It’s closer to what I deploy on.
它更接近我部署的内容。
The tooling is actually phenomenal.
该工具实际上是惊人的。
And if you spend a bit of time setting it up, you can record a reproducible environment that I’ve now done with this Omakub concept or project that I’ve done, that I can set up a new Linux machine in less than 30 minutes and it’s perfect.
如果你花一点时间进行设置,你可以记录一个可重现的环境,我现在已经用这个 Omakub 概念或我完成的项目完成了,我可以在不到 30 分钟的时间内设置一台新的 Linux 机器,这是完美的。
5:09:41 It’s not pretty good.
这不太好。
It’s not like I still need to spend two hours on it.
我又不需要花两个小时。
It’s perfect.
太完美了。
Because you can encode all aspects of the development environment into this.
因为你可以将开发环境的各个方面编码到其中。
And I didn’t know.
我不知道。
I didn’t even know, to be fair, that Linux could look as good as it can.
公平地说,我什至不知道 Linux 可以看起来如此出色。
5:09:56 If you look at a stock Ubuntu or Fedora boot, I mean, not that it’s ugly, but I’d pick the Mac any day of the week.
如果你看一下现有的 Ubuntu 或 Fedora 启动,我的意思是,并不是说它丑陋,而是我会在一周中的任何一天选择 Mac。
You look at Omakub, I mean, I’m biased here, of course, because I built it with my own sensibilities, but I look at that and go like, “This is better.
你看看 Omakub,我的意思是,当然,我在这里有偏见,因为我用自己的情感构建了它,但我看着它,然后说,“这更好。
This is beautiful.”
这很漂亮。”
5:10:13 And then you look at some of those true Linux ricing setups where people go nuts with everything.
然后你会看到一些真正的 Linux 限制设置,人们对一切都感到疯狂。
And you go, “Oh, yeah, I remember when computers used to be fun in this way,” when there was this individuality and this setup, and it wasn’t just all bland, the sameness.
然后你会说,“哦,是的,我记得以前计算机以这种方式很有趣”,当时有这种个性和这种设置,而且它不仅仅是平淡无奇、千篇一律的。
And I think that’s the flip side sometimes of something like Apple, where they have really strong opinions and they have really good opinions and they have very good taste, and it looks very nice, and it also looks totally the same.
我认为这有时是像苹果这样的公司的另一面,他们有非常强烈的意见,他们有很好的意见,他们有很好的品味,而且它看起来非常好,而且看起来也完全一样。
5:10:40 And Linux has far more variety and far more texture and flavor, sometimes also annoyances and bugs and whatever.
Linux 具有更多的多样性、更多的质感和风味,有时也有烦恼和错误等等。
But I run Linux now.
但我现在运行Linux。
It’s Ubuntu-based with the Omakub stuff on top, the Lofree keyboard.
它基于 Ubuntu,上面有 Omakub 的东西,即 Lofree 键盘。
I use a Logitech.
我用的是罗技的。
What’s it called?
它叫什么?
The MX 3 mouse, which I love how it feels in my hand.
MX 3 鼠标,我喜欢它拿在手里的感觉。
I don’t love how it looks.
我不喜欢它的样子。
5:11:03 I actually was a Magic Mouse stan for the longest time.
事实上,我是 Magic Mouse 粉丝的时间最长。
I thought it was genius that Apple integrated the trackpad into a mouse, and I used that.
我认为苹果将触控板集成到鼠标中真是天才,我就使用了它。
And I always thought it was ridiculous that people would slag it just because you had to charge it by flipping it over because the battery would last for three months and then you’d charge it for half an hour.
我一直认为人们会因为你必须翻转它来充电而抛弃它,因为电池可以持续三个月,然后你要充电半个小时,这很荒谬。
5:11:23 I thought that was a perfect compatibility with my sensibilities.
我认为这与我的情感完美契合。
I don’t mind giving up a little inconvenience if something is beautiful, and that Magic Mouse is beautiful.
如果有东西很漂亮,我不介意放弃一点不便,而 Magic Mouse 就是很漂亮。
But it wasn’t going to work on Linux, so I found something else.
但它在 Linux 上不起作用,所以我找到了其他东西。
The MX 3 is nice, but I sometimes do wish the Magic Mouse…
MX 3 不错,但有时我确实希望 Magic Mouse ……
That’s pretty good.
那很好。
Yeah.
是的。
5:11:40 Linux is really great for customizing everything, for tiling, for macros, for all of that.
Linux 非常适合自定义一切、平铺、宏等等。
I also do the same in Windows with AutoHotKey, where you just customize the whole thing to your preferences.
我也在 Windows 中使用 AutoHotKey 执行相同的操作,您只需根据自己的喜好自定义整个操作即可。
If you’re a developer, you should learn how to control your environment with the keyboard.
如果您是开发人员,您应该学习如何使用键盘控制您的环境。
5:11:52 It’s faster, it’s more fluid.
它更快,更流畅。
I think one of those silly things I’ve come to truly appreciate about my Omakub setup is that I can, in whatever time it takes to refresh the screen, probably five milliseconds, switch from one virtual desktop to another.
我认为我真正欣赏 Omakub 设置的那些愚蠢的事情之一是,无论刷新屏幕需要什么时间(可能是 5 毫秒),我都可以从一个虚拟桌面切换到另一个虚拟桌面。
5:12:14 Even on Windows, you can’t get it that smooth.
即使在 Windows 上,你也无法做到那么流畅。
You can get close.
你可以靠近一点。
You can’t get it that smooth.
你不可能那么顺利。
On macOS, for whatever reason, Apple insists on having this infuriating animation when you switch between virtual desktops, which makes it just that you don’t want to.
在 macOS 上,无论出于何种原因,当您在虚拟桌面之间切换时,Apple 坚持要显示这种令人恼火的动画,这使得您不愿意这样做。
You don’t want to run full-screen apps because it’s too cumbersome to switch between the virtual desktops.
您不想运行全屏应用程序,因为在虚拟桌面之间切换太麻烦。
The kind of immediacy that you can get from a wonderful Linux setup in that regard is just next-level.
在这方面,您可以从出色的 Linux 设置中获得更高水平的即时性。
Yeah.
是的。
5:12:43 And it seems like a subtle thing, but a difference of milliseconds and latency between switching the virtual desktops, for example, I don’t know, it changes-
这看起来是一件微妙的事情,但是切换虚拟桌面之间的毫秒和延迟的差异,例如,我不知道,它会改变-
It changes how you use the computer.
它改变了您使用计算机的方式。
5:12:53 It really does.
确实如此。
Similar thing with VR, right?
VR 也有类似的情况吧?
5:12:55 If there’s some kind of latency, it just completely takes you out of it.
如果存在某种延迟,它就会完全让你摆脱困境。
Yeah.
是的。
And it’s funny.
这很有趣。
5:13:01 I actually had to watch…
我实际上不得不看……
I think it was ThePrimeagen on YouTube when he was showing off his setup, and I was seeing how quickly he was switching between those virtual desktops.
我认为是 YouTube 上的 ThePrimeagen 展示了他的设置,我看到他在这些虚拟桌面之间切换的速度有多快。
And I’d always been using virtual desktops, but I didn’t like switching too much because just of that latency.
我一直在使用虚拟桌面,但我不喜欢太多切换,因为延迟。
And it’s like, “Oh, you can do that on Linux?
就像,“哦,你可以在 Linux 上做到这一点吗?
Oh, that’s pretty cool.”
哦,那真是太酷了。”
Yeah.
是的。
So I run that.
所以我运行它。
5:13:21 And then my editor of choice now is Neovim.
我现在选择的编辑器是 Neovim。
Oh, good.
哦,很好。
5:13:24 All right.
好的。
Well, we’re out of time.
好吧,我们没时间了。
No.
不。
All right.
好吧。
You did, for many, many years, used, what is it?
你用了很多很多年了,它是什么?
TextMate.
文本伴侣。
Yes.
是的。
TextMate.
文本伴侣。
TextMate.
文本伴侣。
5:13:34 That was the main blocker of moving away from Apple.
这是离开苹果的主要障碍。
Everything else, I thought, “Do you know what?
其他一切,我想,“你知道吗?
I can swing it.” But TextMate was and is a wonderful editor, one I helped birth into this world.
我可以挥动它。”但 TextMate 过去和现在都是一位出色的编辑器,是我帮助他诞生的。
The programmer, Allan Odgaard, is a good friend of mine, all the way back from the party days when we were lugging our computers around.
程序员艾伦·奥德加德 (Allan Odgaard) 是我的好朋友,他是我的好朋友,从我们拖着电脑四处走动的聚会时代就开始了。
Nice.
好的。
And he was a big Mac guy.
他是个巨无霸。
5:13:55 And in 2005, he was writing this editor, and I helped him with the project management of keeping him on track, keeping him focused, and getting something released because I really wanted it for myself.
2005 年,他正在编写这个编辑器,我帮助他进行项目管理,让他保持在正轨上,让他保持专注,并发布一些东西,因为我自己真的很想要它。
And I thought this was the last editor.
我以为这是最后一位编辑。
I thought I was never going to switch.
我以为我永远不会改变。
Forgive me for not knowing, but how featureful is this editor?
请原谅我不知道,但是这个编辑器的功能有多强大?
It’s quite featureful, but it’s a GUI-driven editor in some regards.
它的功能非常强大,但在某些方面它是一个 GUI 驱动的编辑器。
5:14:20 It was really early on with ways of recording macros and having sophisticated syntax highlighting, and it did a bunch of firsts.
它确实很早就开始使用记录宏和复杂的语法突出显示的方法,并且创造了许多第一。
And it was just a really pleasant editing experience.
这真是一次非常愉快的编辑体验。
5:14:40 I think these days, a lot of people would just use VS Code.
我想现在很多人只会使用 VS Code。
VS Code exists in the same universe as TextMate in some ways.
在某些方面,VS Code 与 TextMate 存在于同一宇宙中。
And actually, I think it’s compatible with the original TextMate bundles, the original TextMate format.
实际上,我认为它与原始 TextMate 捆绑包、原始 TextMate 格式兼容。
So it really trailed a path there, but it also just didn’t evolve.
所以它确实在那里走了一条路,但它也只是没有进化。
5:14:58 Now, a lot of people saw a huge problem with that.
现在,很多人都看到了一个巨大的问题。
They were like, “Oh, it needs to have more features.
他们说,“哦,它需要有更多的功能。
It needs to have all these things.” I was like, I’m happy with this text editor that hasn’t changed at all basically when Allan stopped working on it for a decade or more.
它需要拥有所有这些东西。”我当时想,我对这个文本编辑器很满意,当艾伦停止开发它十年或更长时间时,它基本上没有任何改变。
I don’t need anything else.
我不需要任何其他东西。
Because as our original discussion went, I don’t want an IDE.
因为正如我们最初讨论的那样,我不需要 IDE。
I don’t want the editor to write code for me.
我不想让编辑为我写代码。
I want a text editor.
我想要一个文本编辑器。
I want to interact with characters directly.
我想直接与角色互动。
5:15:25 And Neovim allows me to do that in some ways that are even better than TextMate, and I love TextMate.
Neovim 允许我以某些比 TextMate 更好的方式做到这一点,而且我喜欢 TextMate。
But Vi, as you know, once you learn the commands, and it sounds…
但是 Vi,正如你所知,一旦你学会了命令,听起来......
I sometimes feel like Vi fans overplay how difficult it is to learn because it makes them perhaps seem kind of more awesome that they were able to do it.
有时我觉得 Vi 的粉丝夸大了学习的难度,因为这让他们看起来比他们能做到的更棒。
It’s not that difficult.
这并不难。
And it doesn’t take that long, in my opinion, to learn just enough combo moves to get that high of, “Holy shit.
在我看来,不需要那么长时间,就能学会足够的组合动作来获得那么高的“天哪。
I could not do this in any other editor.”
我无法在任何其他编辑器中做到这一点。”
How long did it take you?
你花了多长时间?
5:15:56 And by the way, I don’t know.
顺便说一句,我不知道。
I haven’t yet…
我还没有……
Well, I know intellectually, but just like with kids, I haven’t gone in all the way in.
好吧,我理智上知道,但就像对待孩子一样,我还没有完全投入其中。
I haven’t used Vim.
我没用过 Vim。
You have a treat in mind.
你心里有一个享受。
5:16:08 Well, I switched in about…
嗯,我换了大约…
When I switched here about a year ago, I had three days of cursing, where I thought it was absolutely terrible and it was never going to happen, and I had three days of annoyance.
大约一年前,当我搬到这里时,我咒骂了三天,我认为这绝对是可怕的,它永远不会发生,我也有三天的烦恼。
And already, the next week, I was like, “This is sweet.
到了下周,我就想,“这太甜蜜了。
I’m not going anywhere.”
我哪儿也不去。”
Oh, wow.
哦,哇。
But I also had a bit of a headstart.
但我也有一点领先优势。
5:16:26 About 20 years ago in the early 2000s, I tried Vim for a summer and it didn’t stick.
大约 20 年前的 2000 年代初,我尝试了 Vim 一个夏天,但效果并不好。
I didn’t, for whatever reason, love it at the time.
不管出于什么原因,我当时并不喜欢它。
But Neovim is really good.
但 Neovim 确实不错。
5:16:40 The key to Neovim is to realize that you don’t have to build the whole damn editor yourself.
Neovim 的关键是要意识到你不必自己构建整个该死的编辑器。
So a lot of Neovim stans are like, “Here’s how to write the config from scratch.” Over 17 episodes, that’s going to take you three weeks.
所以很多 Neovim 支持者都会说,“这是从头开始编写配置的方法。”超过 17 集,需要三周时间。
I don’t care that much.
我不太在乎。
5:16:54 I love a great editor, I love to tailor it a little bit, but not that much.
我喜欢一个伟大的编辑器,我喜欢稍微修改它,但不是那么多。
So you have to pair Neovim with this thing called LazyVim.
所以你必须将 Neovim 与这个叫做 LazyVim 的东西配对。
LazyVim.org is a distribution for Neovim that takes all the drudgery out of getting an amazing editor experience right out of the box.
LazyVim.org 是 Neovim 的一个发行版,它消除了开箱即用的令人惊叹的编辑器体验中的所有苦差事。
Ridiculous question.
可笑的问题。
5:17:14 We talked about a bunch of programming languages.
我们讨论了很多编程语言。
You told us how much you love JavaScript.
您告诉我们您有多喜欢 JavaScript。
It’s your second favorite programming language.
这是你第二喜欢的编程语言。
Would TypeScript be the third then?
那么 TypeScript 会是第三个吗?
TypeScript wouldn’t even be in this universe.
TypeScript 甚至不存在于这个宇宙中。
5:17:26 I hate TypeScript as much as I like JavaScript.
我讨厌 TypeScript 就像喜欢 JavaScript 一样。
You hate…
你讨厌……
5:17:33 Oh, man.
哦,伙计。
I’m not smart enough to understand the math of that.
我不够聪明,无法理解其中的数学原理。
Okay.
好的。
Before I ask about other programming languages, if you can encapsulate your hatred of TypeScript into something that could be human-interpretable, what would be the reasoning?
在我问其他编程语言之前,如果你可以将对 TypeScript 的仇恨封装成人类可以解释的东西,那么原因是什么?
JavaScript smells a lot like Ruby when it comes to some aspects of its metaprogramming, and TypeScript just complicates that to an infuriating degree when you’re trying to write that kind of code.
当涉及到元编程的某些方面时,JavaScript 的味道很像 Ruby,而当您尝试编写此类代码时,TypeScript 只会使情况变得复杂到令人恼火的程度。
5:17:50 And even when you’re trying to write the normal kind of code, none of the benefits that accrue to people who like it, like auto-completion, is something I care about.
即使当您尝试编写正常类型的代码时,我也不关心为喜欢它的人带来的好处(例如自动完成)。
I don’t care about auto-completion because I’m not using an IDE.
我不关心自动完成,因为我没有使用 IDE。
5:18:14 Now, I understand that that is part of what separates it and why I don’t see the benefits.
现在,我明白这就是它的区别所在,也是我看不到它的好处的原因。
I only see the costs.
我只看到成本。
I see the extra typing, I see the type gymnastics that you sometimes have to do and where a bunch of people give up and just do any instead, right?
我看到了额外的打字,我看到了你有时必须做的体操,一群人放弃了,只是做任何事情,对吗?
That they don’t actually use the type system because it’s just too frustrating to use.
他们实际上并没有使用类型系统,因为它太令人沮丧了。
5:18:35 So I’ve ever only felt the frustration of TypeScript and the obfuscation of TypeScript in the code that gave me no payoff.
所以我一直只感受到 TypeScript 的挫败感,以及 TypeScript 在代码中的混淆,没有给我带来任何回报。
Again, I understand that there is a payoff.
我再次明白,有回报就有回报。
I don’t want the payoff.
我不想要回报。
So for my situation, I’m not willing to make the trade and I’m not willing to take a language that underneath is as dynamic of a language as Ruby is and then turn it into this pretend statically typed language.
因此,就我的情况而言,我不愿意进行这种交易,也不愿意采用一种像 Ruby 这样底层动态的语言,然后将其转换成这种假装的静态类型语言。
I find that just intellectually insulting.
我觉得这在智力上是一种侮辱。
Do you think it will and do you think it should die, TypeScript?
你认为它会消亡吗?你认为它应该消亡吗,TypeScript?
I don’t want to take something away from people who enjoy it.
我不想从喜欢它的人那里夺走一些东西。
5:19:12 So if you like TypeScript, all the power to you.
因此,如果您喜欢 TypeScript,那么所有的力量都给您。
If you’re using TypeScript because you think that’s what a professional program is supposed to do, here’s my permission; you don’t have to use TypeScript.
如果您使用 TypeScript 是因为您认为这是专业程序应该做的事情,这是我的许可;你不必使用 TypeScript。
There’s something deeply enjoyable about a brilliant programmer such as yourself, DHH, talking shit.
像你这样的杰出程序员,DHH,说废话是一件非常令人愉快的事情。
5:19:24 It’s one of my favorite things in life.
这是我一生中最喜欢的事情之一。
What are the top three programming languages everyone should learn if you’re talking to a beginner?
如果您与初学者交谈,每个人都应该学习的前三种编程语言是什么?
I would 100% start with Ruby.
我会 100% 从 Ruby 开始。
5:19:41 It is magic for beginners in terms of just understanding the core concepts of conditionals and loops and whatever, because it makes it so easy.
对于初学者来说,仅了解条件和循环等核心概念就很神奇,因为它使它变得如此简单。
Even if you’re just making a shell program that’s outputting to the terminal, getting hello-world running in Ruby is basically puts, P-U-T-S, space, start quotes, “Hello world,” end quotes, you’re done, right?
即使您只是制作一个输出到终端的 shell 程序,在 Ruby 中运行 hello-world 基本上就是 put、P-U-T-S、空格、开始引号、“Hello world”、结束引号,您就完成了,对吧?
There’s no fluff, there’s nothing to wrap it into.
没有绒毛,没有什么可以包裹它。
5:20:10 There are other languages that does that, especially the Perl or Python would be rather similar, but Go would not, Java would not.
还有其他语言可以做到这一点,特别是 Perl 或 Python 非常相似,但 Go 不会,Java 不会。
There’s a lot of other languages that have a lot more ceremony and boilerplate.
还有很多其他语言有更多的仪式和样板文件。
Ruby has none of it.
Ruby 没有这些。
So it’s a wonderful starting language.
所以这是一种很棒的起始语言。
5:20:26 There’s a book called Learn to Program by Pine that uses Ruby essentially to just teach basic programming principles that I’ve seen heavily recommended.
Pine 有一本名为《学习编程》的书,本质上使用 Ruby 来教授我强烈推荐的基本编程原理。
So that’s a great language.
所以这是一门很棒的语言。
How quickly would you go to Rails?
您多久会转到 Rails?
It depends on what you want to do.
这取决于你想做什么。
5:20:39 If you want to build web applications, go to Rails right away, learn Ruby along with Rails.
如果您想构建 Web 应用程序,请立即转到 Rails,并随着 Rails 一起学习 Ruby。
Because I think what really helps power through learning programming is to build programs that you want.
因为我认为通过学习编程真正有帮助的是构建你想要的程序。
Right?
正确的?
If you’re just learning it in the abstract, it’s difficult to motivate yourself to actually do it well.
如果你只是抽象地学习它,就很难激励自己真正把它做好。
5:20:56 Some people learn languages just for the fun of them.
有些人学习语言只是为了好玩。
Most people do not.
大多数人都没有。
Most people learn it because they have a mission; they want to build a program, they want to become a programmer.
大多数人学习它是因为他们有使命;他们想构建一个程序,他们想成为一名程序员。
So you got to use it for something real.
所以你必须将它用于真正的事情。
And I actually find that it’s easier to learn programming that way too because it drives your learning process.
事实上,我发现以这种方式学习编程也更容易,因为它推动了你的学习过程。
5:21:12 You can’t just learn the whole thing upfront.
你不能只预先了解整个事情。
You can’t just sit down and read the language specification and then go like, “Ooh,” like Neo, “Now I know kung fu.
你不能只是坐下来阅读语言规范,然后像 Neo 一样“哦”,“现在我知道功夫了。
Now I know Ruby.” It doesn’t download that way.
现在我认识了鲁比。”它不会以这种方式下载。
You actually have to type it out in anger on a real program.
实际上,你必须在真实的程序上愤怒地输入它。
Yeah.
是的。
5:21:29 Yeah, for sure.
是的,当然。
So I would start there.
所以我会从那里开始。
5:21:30 But then number two probably would be JavaScript because JavaScript just is the language you need to know if you want to work with the web, and the web is the greatest application platform of all time if you’re making business software or collaboration software, all this kind of stuff.
但排名第二的可能是 JavaScript,因为如果你想使用 Web,JavaScript 就是你需要了解的语言,而如果你正在制作商业软件或协作软件等所有此类东西,那么 Web 是有史以来最伟大的应用程序平台。
5:21:47 If you’re making video games, you should probably go off and learn C++ or C or something else like that.
如果你正在制作视频游戏,你可能应该去学习 C++ 或 C 或其他类似的东西。
But if you’re in the realm of web applications, you got to learn JavaScript.
但如果您处于 Web 应用程序领域,则必须学习 JavaScript。
Regardless of what else you learn, you got to learn JavaScript.
不管你还学什么,你都必须学习 JavaScript。
So if you’re learning Ruby, what does Ruby not have in terms of programming concepts that you would need other languages for?
那么,如果您正在学习 Ruby,那么 Ruby 没有哪些您需要其他语言才能实现的编程概念呢?
I don’t know if there’s any concepts missing, but it doesn’t have the speed or the low-level access of memory manipulation-
我不知道是否遗漏了任何概念,但它没有内存操作的速度或低级访问-
Sure.
当然。
…
……
5:22:17 that you would need to build a 3D gaming engine, for example.
例如,您需要构建 3D 游戏引擎。
No one’s going to build that in Ruby.
没有人会用 Ruby 构建它。
You could build quite low-level stuff when it comes to web technologies in Ruby, but at some point, you’re going to hit the limit and you should use something else.
当涉及到 Ruby 中的 Web 技术时,你可以构建相当低级的东西,但在某些时候,你会达到极限,你应该使用其他东西。
5:22:32 I’m not someone who prescribes just Ruby for everything.
我并不是那种什么事情都只用 Ruby 的人。
Just once you reach the level of abstraction that’s involved with web applications, Ruby is superb.
一旦您达到了 Web 应用程序的抽象级别,Ruby 就非常出色。
But if you’re writing, for example, a HTTP proxy, Go is great for that.
但是,例如,如果您正在编写 HTTP 代理,那么 Go 就非常适合。
We’ve written quite a few HTTP proxies lately at the company for various reasons, including our cloud exit and so forth.
由于各种原因,包括我们的云退出等,我们最近在公司编写了相当多的 HTTP 代理。
5:22:54 And Kevin, one of the programmers I’m working with, he writes all of that in Go.
Kevin 是与我一起工作的程序员之一,他用 Go 编写了所有这些内容。
Go just have the primitives and it has the pace and the speed to do that really well.
Go 只拥有原语,它就有足够的速度和速度来做到这一点。
I highly recommend it.
我强烈推荐它。
If you’re writing an HTTP general proxy, do it in Go.
如果您正在编写 HTTP 通用代理,请使用 Go 进行。
Great language for that.
很棒的语言。
Don’t write your business logic in Go.
不要用 Go 编写业务逻辑。
I know people do, but I don’t see the point in that.
我知道人们会这样做,但我不明白这有什么意义。
So what would you say are the three?
那么你说这三个是什么呢?
5:23:14 So, Go, Ruby, plus Rails, JavaScript.
所以,Go、Ruby,加上 Rails、JavaScript。
Yeah.
是的。
5:23:19 If you’re interested in working with the web, I’d probably pick those three.
如果您对网络工作感兴趣,我可能会选择这三个。
Go, Ruby, and JavaScript.
Go、Ruby 和 JavaScript。
Go, Ruby, and JavaScript.
Go、Ruby 和 JavaScript。
5:23:25 Okay.
好的。
Functional languages.
函数式语言。
Someone’s talking about OCaml.
有人在谈论 OCaml。
They are always going to show up.
他们总是会出现。
5:23:30 It must be some kind of OCaml industrial complex or something like this, but they always say, “Mention OCaml.”
它一定是某种 OCaml 工业综合体或类似的东西,但他们总是说,“提及 OCaml”。
I love that there are people who love functional languages to that degree.
我喜欢有人如此热爱函数式语言。
5:23:41 Those people are not me.
那些人不是我。
I don’t care at all.
我一点也不关心。
I care about functional principles when they help me in these isolated cases where that’s just better than everything else.
我关心功能原则,因为它们在这些孤立的情况下帮助我,这比其他一切都更好。
But at heart, I’m an object-oriented guy.
但本质上,我是一个面向对象的人。
That’s just how I think about programs.
这就是我对程序的看法。
That’s how I like to think about programs.
这就是我喜欢思考程序的方式。
That’s how I carve up a big problem space into the main language.
这就是我如何将一个大问题空间划分为主要语言的方法。
Objects are my jam.
物体是我的果酱。
Yeah, me too.
是的,我也是。
5:24:10 So I program in Lisp a bunch for AI applications for basic…
所以我用 Lisp 编写了一堆人工智能应用程序,用于基本的……
So, Othello, chess engines, that kind of stuff.
所以,奥赛罗,国际象棋引擎,诸如此类的东西。
And I did try OCaml just to force myself to program just a very basic Game of Life, a little simulation.
我确实尝试过 OCaml,只是为了强迫自己编写一个非常基本的生命游戏,一个小小的模拟。
Lisp is just parentheses everywhere.
Lisp 到处都是括号。
It’s actually not readable at all.
实际上根本不可读。
That’s the problem I’ve had with Lisp.
这就是我在使用 Lisp 时遇到的问题。
OCaml is very intuitive, very readable.
OCaml 非常直观,可读性很强。
5:24:38 It’s nice.
很好。
I really should pick up a language like that at some point.
我真的应该在某个时候学习一门这样的语言。
5:24:40 I’ve been programming long enough that it’s a little embarrassing that I haven’t actually done anything real in anger in a fully functional programming language.
我已经编程了足够长的时间,以至于我还没有真正用一种功能齐全的编程语言真正愤怒地做过任何事情,这有点尴尬。
Yeah.
是的。
5:24:50 But I have to figure out, I’m sure there’s an answer to this, what can I do that would be useful for me that I actually want to build?
但我必须弄清楚,我确信这个问题有一个答案,我能做些什么对我真正想要构建的有用?
Yes.
是的。
5:24:58 That’s my problem.
这是我的问题。
That a functional language is better suited for.
函数式语言更适合。
That’s right.
这是正确的。
Because I really want to experience the language properly.
因为我真的很想好好体验这门语言。
That’s right.
这是正确的。
Yeah.
是的。
5:25:06 Because at this point, I’m very object-oriented-brained.
因为在这一点上,我的大脑非常面向对象。
Yes.
是的。
Yeah.
是的。
And that’s my problem too.
这也是我的问题。
5:25:12 I don’t care as much about these low-level problems in computer science.
我不太关心计算机科学中的这些低级问题。
I care about the high-level.
我关心高层。
I care about writing software.
我关心编写软件。
I care about the abstraction layer that really floats well with web applications and business logic.
我关心的是真正能够与 Web 应用程序和业务逻辑很好地兼容的抽象层。
5:25:29 And I’ve come to accept that about myself, even though, as we talked about, when I was a kid, I really wanted to become a games programmer.
我已经开始接受自己的这一点,尽管正如我们所说,当我还是个孩子的时候,我真的很想成为一名游戏程序员。
And then I saw what it took to write a collision-detection engine, and I go like, “Yeah, that’s not me at all.” I’m never going to be into vector matrix manipulation or any of that stuff.
然后我看到了编写碰撞检测引擎需要什么,我说,“是的,那根本不是我。”我永远不会陷入向量矩阵操作或任何类似的东西。
It’s way too much math.
数学太多了。
And I’m more of a writing person than of a math person.
我更喜欢写作而不是数学。
I mean, just in the way you were speaking today, you have a poetic, literary approach to programming.
我的意思是,就像您今天说话的方式一样,您对编程有一种诗意、文学的态度。
Yes.
是的。
Yeah.
是的。
5:26:04 It’s interesting.
这很有趣。
That’s actually exactly right.
这实际上是完全正确的。
So I did actually a keynote at RailsConf 10 years ago, where I called myself a software writer.
所以我实际上在 10 年前在 RailsConf 上做过主题演讲,当时我称自己为软件作家。
I mean, I’m not the first person to say that.
我的意思是,我不是第一个这么说的人。
“Software writer” has been in the vernacular for a long time.
“软件作家”这个白话由来已久。
5:26:16 But the modern identity that most programmers adopt when they’re trying to be serious is software engineer, and I reject that label.
但大多数程序员在认真对待时所采用的现代身份是软件工程师,而我拒绝这个标签。
I’m not an engineer.
我不是工程师。
Occasionally, I dabble in some engineering, but the vast majority of the time, I’m a software writer.
偶尔,我会涉足一些工程,但绝大多数时候,我是一名软件作家。
I write software for human consumption and for my own delight.
我编写软件是为了人类消费和我自己的快乐。
5:26:40 I can get away with that because I’m working in a high-level language like Ruby, working on collaboration software and to-do lists and all the other stuff.
我可以摆脱这一点,因为我正在使用像 Ruby 这样的高级语言,致力于协作软件和待办事项列表以及所有其他东西。
Again, if I was trying to apply my talent to writing 3D game engines, no, that’s not the right mindset.
再说一遍,如果我试图将自己的才能应用于编写 3D 游戏引擎,不,这不是正确的心态。
That’s not the right identity.
这不是正确的身份。
5:26:58 But I find that the software engineering identity flattens things a little bit.
但我发现软件工程的身份让事情变得更加扁平化。
I’d like to think that we have software writers and software mathematicians, for example, and then those are actually richer ways of describing the abstraction level that you’re working at than “engineer.”
例如,我想我们有软件作家和软件数学家,这些实际上是比“工程师”更丰富的描述你正在工作的抽象级别的方式。
Yeah.
是的。
5:27:16 And I think if AI becomes more and more successful, I think we’ll need the software writer skill more and more because it feels like that’s the realm of which…
我认为如果人工智能变得越来越成功,我认为我们将越来越需要软件编写技能,因为感觉这就是……的领域。
Because it’s not writer.
因为它不是作家。
You’re going to have to do the software, you’re going to have to be a computer person, but there’s a more…
你将不得不做软件,你将不得不成为一名计算机人员,但还有更多……
I don’t know.
我不知道。
I just don’t want to romanticize it, but it’s more poetic, it’s more literary.
我只是不想把它浪漫化,但它更诗意,更文学。
It more feels like writing a good blog post than-
感觉更像是写一篇好的博客文章,而不是——
I actually wish that AI had a bit higher standards for writing.
我其实希望人工智能的写作标准能高一点。
5:27:48 I find the fact that it accepts my slobby, incomplete sentences a little offensive.
我发现它接受我的邋遢、不完整的句子这一事实有点令人反感。
I wish there was a strict mode for AI where it would snap my fingers if I was just feeding it keywords and like, “Speak proper.
我希望人工智能有一个严格的模式,如果我只是给它输入关键词,比如“说得对一点”,它就会打响指。
Do pronunciation, do punctuation.” Because I love that.
做发音,做标点符号。”因为我喜欢那个。
I love crafting a just-right sentence that hasn’t been boiled down, that has no meat on it, has no character in it.
我喜欢写出一个恰到好处的句子,但还没有被浓缩,没有实质内容,没有特色。
It’s succinct, it’s not overly flowery.
它很简洁,并不过分花哨。
It’s just right.
恰到好处。
5:28:26 That writing phase to me is just addictive.
对我来说,写作阶段简直让人上瘾。
And I find that when programming is the best, it’s almost equivalent exactly to that.
我发现当编程是最好的时候,它几乎完全等同于编程。
You also have to solve a problem.
你还必须解决一个问题。
You’re not just communicating a solution.
您不仅仅是在传达解决方案。
You have to actually figure out what are you trying to say.
你必须真正弄清楚你想说什么。
But even writing has that.
但即使是写作也有这一点。
5:28:45 Half the time when I start writing a blog post, I don’t know exactly which arguments I’m going to use; they develop as part of the writing process.
当我开始写博客文章时,有一半的时间我不知道我要使用哪些论点;它们是写作过程的一部分。
And that’s how writing software happens too.
编写软件也是如此。
You know roughly the kind of problem you’re trying to solve.
您大致知道您要解决的问题类型。
You don’t know exactly how you’re going to solve it.
你并不确切知道要如何解决它。
And as you start typing, the solution emerges.
当你开始打字时,解决方案就会出现。
And actually, as far as I understand, you and Jason are working on a new book.
事实上,据我了解,你和杰森正在写一本新书。
5:29:05 It’s in the early days of that kind of topic.
这是此类话题的早期阶段。
I think he said…
我认为他说……
he tweeted that it’s going to be titled something like, “We don’t know what we’re doing upfront” or something like that.
他在推特上表示,其标题将是“我们不知道我们预先在做什么”或类似的内容。
That kind of topic.
那样的话题。
And you figure it out along the way.
你一路上就明白了。
That’s a big part of it; trying to give more people the permission to trust their own instincts and their own gut and realizing that developing that supercomputer in your stomach is actually the work of a career and that you should not discard those feelings in preference to over…
这是其中很大一部分;试图让更多的人相信自己的直觉和直觉,并意识到开发你肚子里的超级计算机实际上是一项职业工作,你不应该放弃这些感觉而不是……
5:29:22 or not even complicated; to analytics, to intellectualism.
或者甚至不复杂;到分析,到理智主义。
5:29:50 Very often when we look at the big decisions we’ve had to make, they’ve come from the gut, where you cannot fully articulate why do I think this is the right thing.
很多时候,当我们审视必须做出的重大决定时,它们都是发自内心的,你无法完全阐明为什么我认为这是正确的事情。
Well, because I’ve been in this business for 20 years and I’ve seen a bunch of things and I’ve talked to a bunch of people, and that is percolating into this being the right answer.
嗯,因为我在这个行业已经有 20 年了,我见过很多事情,也和很多人交谈过,这就是正确的答案。
5:30:08 A lot of people are very skeptical about that in business or unable to trust it because it feels like they can’t rationalize.
很多人在商业上对此非常怀疑,或者无法相信它,因为他们感觉无法合理化。
Why are we doing something?
我们为什么要做某事?
Well, because I feel like it, damn it.
好吧,因为我喜欢这样,该死。
That’s a great privilege of being a bootstrapped, independent founder who don’t owe their business to someone else and doesn’t have to produce a return because I feel like a lot of the bullshit really creeps in when you’re trying to rationalize to other people why you do the things you do and why you take the decisions that you do.
作为一个自力更生、独立的创始人,这是一个巨大的荣幸,他不欠别人的生意,也不需要产生回报,因为我觉得当你试图向其他人解释你为什么做你所做的事情以及为什么你做出你所做的决定时,很多废话真的会悄悄溜进来。
5:30:34 If you don’t have anyone to answer to, you are free to follow your gut, and that’s hell of an enjoyable way to work, and it’s also and very often the correct way to work.
如果你不需要向任何人负责,你可以自由地跟随自己的直觉,这是一种非常愉快的工作方式,而且通常也是正确的工作方式。
Your gut knows a lot.
你的直觉知道很多。
You can’t articulate it, but it’s spot-on more times than not.
你无法清楚地表达出来,但它很多时候都是恰到好处的。
Yeah.
是的。
5:30:54 Having to make a plan can be a paralyzing thing.
必须制定计划可能是一件令人瘫痪的事情。
I suppose there’s different kinds of brains.
我想大脑有不同类型。
And first of all, I can’t wait to read that book if it materializes.
首先,如果这本书成为现实,我迫不及待地想读它。
5:31:06 I often feel like in the more interesting things I do in my life, I really don’t know what I’m doing upfront.
我常常觉得,在我一生中做的更有趣的事情中,我真的不知道自己在做什么。
And I think there’s a lot of people around me that care for me that really want me to know what I’m doing.
我认为我周围有很多人关心我,他们真的希望我知道我在做什么。
They’re like, “What’s the plan?
他们会说:“计划是什么?
Why are you doing this crazy thing?”
你为什么要做这种疯狂的事?”
5:31:24 And if I had to wait until I have a plan, I’m not going to do it.
如果我必须等到有了计划,我就不会这样做。
They have different brains on this kind of stuff.
他们对这类事情有不同的大脑。
Some people really are planners and it maybe energizes them, but I think most creative pursuits, most really interesting, most novel pursuits are like, you kind of have to just take the leap and then just figure out as you go.
有些人确实是计划者,这可能会激励他们,但我认为大多数创造性的追求,最有趣的,最新颖的追求都是这样的,你必须迈出一步,然后边走边想办法。
My favorite essay in Rework is the last one, and it’s entitled, “Inspiration is perishable.” And I think that captures a lot of it, that if you take the time to do a detailed plan, you may very well have lost the inspiration by the time you’re done.
《返工》中我最喜欢的文章是最后一篇,标题是“灵感是易逝的”。我认为这抓住了很多信息,如果你花时间制定详细的计划,那么当你完成时你很可能已经失去了灵感。
5:32:02 If you follow the inspiration in that moment and trust your gut, trust your own competence that you will figure it out, you’re going to get so much more back.
如果你追随那一刻的灵感,相信自己的直觉,相信自己的能力,你会找到答案,你会得到更多的回报。
You’re going to go on the adventure you otherwise wouldn’t have, whether that’s just the business decisions or life decision.
你将继续进行原本不会有的冒险,无论这只是商业决策还是人生决策。
You have to seize that inspiration.
你必须抓住这个灵感。
5:32:21 There’s a great set of children’s books written by this Japanese author about chasing an idea and trying to get a hold of it, and it’s beautifully illustrated as an idea is something that’s floating around, as something you have to catch and latch onto, that I really feel captures this notion that inspiration is perishable; it’ll disappear.
这位日本作家写了一套很棒的儿童读物,讲述的是追逐一个想法并试图抓住它,它有精美的插图,因为一个想法是漂浮的东西,是你必须抓住并抓住的东西,我真的觉得它抓住了这样的观念:灵感是易逝的;它会消失。
If you just put it back on the shelf and say, “Well, I got to be diligent about this, I got to line up a plan,” you may run out, and then there’s no steam to keep going.
如果你只是把它放回架子上并说:“好吧,我必须勤奋地做这件事,我必须制定一个计划”,你可能会用完,然后就没有动力继续下去了。
I have to ask you about open source.
我必须问你关于开源的问题。
5:32:54 What does it take to run a successful open source project?
运行一个成功的开源项目需要什么?
You’ve spoken about that it’s a misconception that open source is democratic.
您曾说过,认为开源就是民主是一种误解。
It’s actually meritocratic.
这实际上是任人唯贤的。
That’s a beautiful way to put it.
这是一个很好的表达方式。
So there often is a benevolent dictator at the top often.
因此,高层常常有一个仁慈的独裁者。
So can you just speak to that, having run successful open source projects yourself and being a benevolent dictator yourself?
那么,您自己运行过成功的开源项目并且自己是一个仁慈的独裁者,您能谈谈这一点吗?
Which is going to be a bit of a biased piece of evidence here, but-
这将是一个有点有偏见的证据,但是——
Why monarchy is best.
为什么君主制是最好的。
It’s great.
这很棒。
5:33:33 We should definitely have dictators and they should control everything, especially when the dictator is me.
我们绝对应该有独裁者,他们应该控制一切,特别是当独裁者是我的时候。
Now, well, I think I learned very early on that a quick way to burn out in open source is to treat it as a business, as though your users are customers, as though they have claims of legitimacy on your time and your attention and your direction.
现在,我想我很早就了解到,在开源中精疲力竭的一个快速方法是将其视为一项业务,就好像你的用户是客户一样,就好像他们声称你的时间、你的注意力和你的方向是合法的。
5:33:56 Because I faced this almost immediately with Ruby on Rails.
因为我在使用 Ruby on Rails 时几乎立即就遇到了这个问题。
As soon as it was released, there were a million people who had all sorts of opinions about where I ought to take it.
它一发布,就有一百万人对我应该把它带到哪里提出了各种各样的意见。
And not just opinions, but actually demands.
不仅仅是意见,而是实际的要求。
“Unless you implement an Oracle database adapter, this is always going to be a toy.” It was actually more or less that exact demand that prompted me to have a slide at one of the early Rails conferences that just said, “Fuck you.”
“除非您实现 Oracle 数据库适配器,否则这永远只是一个玩具。”实际上,或多或少正是这种确切的需求促使我在一次早期的 Rails 会议上做了一张幻灯片,上面写着“去你的”。
Yeah, I saw that.
是的,我看到了。
I’m not going to do what you tell me to.
我不会做你告诉我的事。
5:34:27 I’m here as a bringer of gift.
我来这里是为了送礼物。
I am sharing code that I wrote on my own time, on my own volition.
我正在分享我在自己的时间、自愿编写的代码。
And you don’t have to say thank you.
而且你不必说谢谢。
I mean, it’d be nice if you did.
我的意思是,如果你这样做就好了。
You can take the code and do whatever you want with it, you can contribute back if you want, but you can’t tell me what to do or where to go or how to act.
你可以拿着代码做任何你想做的事情,如果你愿意,你可以回馈,但你不能告诉我该做什么、去哪里或如何行动。
5:34:51 I’m not a vendor.
我不是供应商。
This is a fundamental misconception that users of open source occasionally step into because they’re used to buying software from companies who really care about their business.
这是开源用户偶尔会陷入的一个根本性误解,因为他们习惯于从真正关心其业务的公司购买软件。
I care about people using my software, I think it’s great, but we don’t have a transactional relationship.
我关心使用我的软件的人,我认为这很棒,但我们没有交易关系。
I don’t get something back when you tell me what to do, except grief, and I don’t want it, so you can keep it.
当你告诉我该怎么做时,除了悲伤之外,我没有得到任何回报,而且我不想要它,所以你可以保留它。
5:35:18 So my open source philosophy from the start has been I got to do this primarily for me.
所以我的开源理念从一开始就是我必须主要为我自己做这件事。
I love when other people find use in my open source.
我喜欢其他人在我的开源中找到用处。
It’s not my primary motivation.
这不是我的主要动机。
I’m not primarily doing it for other people.
我主要不是为了其他人做这件事。
I’m primarily doing it for me and my own objectives.
我这样做主要是为了我自己和我自己的目标。
5:35:35 Because as Adam Smith said, it’s not for the benevolence of the butcher that we expect our daily meat.
因为正如亚当·斯密所说,我们每天吃肉并不是为了屠夫的仁慈。
It’s for his self-interest.
这是为了他的私利。
And I actually find that to be a beautiful thought that our commons increase in value when we all pursue our self-interest, certainly in the realm of open source.
事实上,我发现,当我们都追求自身利益时,尤其是在开源领域,我们的公共资源就会增值,这是一个美好的想法。
5:35:57 This is also why I reject this notion that open source is in some sort of crisis, that there’s a funding crisis, that we have to spend more.
这也是为什么我拒绝这样的观点:开源正陷入某种危机,存在资金危机,我们必须花更多的钱。
No, we don’t.
不,我们不。
Open source has never been doing better.
开源从未做得更好。
Open source has never controlled more domains in software than it has right now.
开源控制的软件领域从未像现在这样多。
There is no crisis.
没有危机。
5:36:14 There’s a misconception from some people making open source and from a lot of people using open source that open source is primarily like commercial software; something you buy and something where you can then make demands as a customer and that the customer is always right.
一些开发开源软件的人和许多使用开源软件的人存在一种误解,认为开源软件主要就像商业软件;您购买的东西以及您可以作为客户提出要求的东西,并且客户永远是对的。
The customer is not always right, not even in business, but certainly not in open source.
客户并不总是对的,即使在商业领域也是如此,但在开源领域当然更是如此。
5:36:35 In open source, the customer as it is, is a receiver of gifts.
在开源中,客户本身就是礼物的接受者。
We are having a gift exchange.
我们正在交换礼物。
I show up and give you my code.
我出现并给你我的代码。
If you like it, you can use it.
如果你喜欢它,你可以使用它。
And if you have some code that fits in with where I’m going with this, I would love to get those gifts back.
如果您有一些代码符合我的目的,我很乐意拿回这些礼物。
And we can keep trading like that.
我们可以继续这样交易。
5:36:54 I give you more gifts.
我给你更多的礼物。
You give me some of your gifts.
你给我一些礼物。
Together, we pool all the gifts such that someone showing up brand new just get a mountain of gifts.
我们一起汇集所有的礼物,这样新来的人就会得到堆积如山的礼物。
This is the magic thing of open source is it increases the total sum value of what’s in the commons when we all pursue our own self-interest.
这就是开源的神奇之处,因为当我们都追求自身利益时,它会增加公共资源的总价值。
5:37:10 So I’m building things for Rails that I need.
所以我正在为 Rails 构建我需要的东西。
And you know what?
你知道吗?
You want me to do that.
你想让我这么做。
You do not want me to build things that I don’t need on behalf of other people because I’ll do a crap job.
你不希望我代表其他人构建我不需要的东西,因为我会做得很糟糕。
I build much better software when I can evaluate the quality of that software by my own use.
当我可以通过自己的使用来评估软件的质量时,我会构建更好的软件。
5:37:28 I need this feature.
我需要这个功能。
I’m going to build a good version of that feature, and I’m going to build just enough just for me.
我将构建该功能的一个良好版本,并且我将构建只适合我的版本。
So I’m not going to bloat it.
所以我不会让它变得臃肿。
I’m not trying to attract the customer here.
我并不是想吸引这里的顾客。
I’m not trying to see some angle.
我并不是想从某个角度来看。
I’m just building what I need.
我只是在构建我需要的东西。
And if you go into open source with that mentality that you’re building for you and everything else is a bonus, I think you have all the ingredients to go the distance.
如果你怀着为自己构建的心态进入开源,而其他一切都是额外的好处,那么我认为你已经具备了走下去的所有要素。
5:37:53 I think the people who burn out in open source is when they go in thinking, “I’m making all these gifts.
我认为那些在开源中精疲力尽的人是当他们想:“我正在制作所有这些礼物。
I don’t really need them myself, but I’m hoping someone else does and maybe they’ll also give me some money.” That’s a losing proposition.
我自己并不真正需要它们,但我希望其他人需要它们,也许他们也会给我一些钱。”这是一个失败的提议。
It never basically works.
它基本上不起作用。
5:38:08 If you want money for your software, you should just sell it.
如果你想为你的软件赚钱,你应该把它卖掉。
We have a perfectly fine model of commercial software that people can make that kind and then they can sell it.
我们有一个完美的商业软件模型,人们可以制作这种软件,然后可以出售它。
But I find a lot of confusion, let’s just call it that politely, in open source contributors who want to have their cake and eat it too.
但我发现,在那些想要鱼与熊掌兼得的开源贡献者中,有很多困惑,让我们礼貌地这样称呼它吧。
5:38:26 They like the mode of working with open source, they maybe even like the status that comes from open source, but they also would like to earn a living for making that open source.
他们喜欢开源的工作模式,甚至喜欢开源带来的地位,但他们也想通过开源谋生。
And therefore, they occasionally end up with the kind of grievances that someone who feels underappreciated at work will develop when others aren’t doing enough to recognize their great gifts.
因此,他们偶尔会感到不满,就像那些在工作中感到不受重视的人一样,当其他人没有做得足够多来认识到他们的伟大天赋时,他们就会产生这样的不满。
And then they might walk away.
然后他们可能会走开。
5:38:47 I wish I had more insight into their mind state of the individual people that are running these projects, if they’re feeling sad or they need more money.
我希望我能更深入地了解运行这些项目的个人的心理状态,如果他们感到悲伤或需要更多的钱。
It’s just such a dark box.
这就是一个黑盒子。
It can be.
可以的。
I mean, of course, there’s some communication, but I just sadly see too often they just walk away.
我的意思是,当然,有一些沟通,但我只是遗憾地看到他们经常走开。
Right.
正确的。
5:39:11 And I think that’s actually part of the beauty of open source.
我认为这实际上是开源之美的一部分。
Is walking away.
正在走开。
You are not obligated to do this code forever.
您没有义务永远执行此代码。
5:39:16 You’re obligated to do this for as long as you want to do it.
只要你愿意,你就有义务这样做。
That’s basically your own obligation.
这基本上是你自己的义务。
Okay, so you might criticize this and push back.
好吧,所以你可能会批评并反击。
5:39:26 You did write a blog post on forever, ” Until the end of the internet” with [inaudible 05:39:32].
您确实在“永远”上写了一篇博文,“直到互联网的终结”[听不清 05:39:32]。
There is a beautiful aspect, and you found a good balance there.
有一个美丽的方面,你在那里找到了很好的平衡。
But I don’t know, you’re bringing so much joy to people with this thing you created.
但我不知道,你用你创造的这个东西给人们带来了很多欢乐。
It’s not an obligation, but there’s a real beauty to taking care of this thing you’ve created.
这不是义务,但照顾好你所创造的东西确实是一种美妙的感觉。
There is.
有。
And not forgetting…
并且不要忘记……
5:39:49 I think what the open source creator is not seeing enough, how many lives you’re making better.
我认为开源创建者还没有看到足够的东西,你正在让多少人的生活变得更好。
There’s certain pieces of software that I just-
我只是-
5:40:00 …
……
lives you’re making better.
你正在让生活变得更好。
There’s certain pieces of software that I just quietly use a lot and they bring my life joy and I wish I could communicate that well.
有些软件我只是默默地经常使用,它们给我的生活带来了乐趣,我希望我能很好地沟通。
There’s ways to donate, but it’s inefficient.
捐赠的方式有很多,但效率低下。
It’s usually hard to donate.
通常很难捐赠。
It is.
这是。
5:40:16 There’s some ways for some people that made it easier.
对于某些人来说,有一些方法可以让事情变得更容易。
GitHub donations is one way of doing it.
GitHub 捐赠是实现这一目标的一种方式。
I donate to a few people even though I don’t love the paradigm.
尽管我不喜欢这种范式,但我还是向一些人捐款。
I also accept that we can have multiple paradigms.
我也承认我们可以有多种范式。
I accept that I can do open source for one set of motivations and other people can do open source for other motivations.
我承认我可以出于一组动机而进行开源,而其他人可以出于其他动机而进行开源。
We don’t all have to do it the same way, but I do want to counter the misconception that open source is somehow in a crisis unless we all start paying for open source.
我们不必都以同样的方式去做,但我确实想反驳这样一种误解:除非我们都开始为开源付费,否则开源在某种程度上陷入了危机。
That model already exists.
该模型已经存在。
It’s commercial software.
这是商业软件。
It works very well and plenty of great companies have been built off the back of it and the expectations are very clear.
它运作得非常好,许多伟大的公司都是在它的基础上建立起来的,而且期望也非常明确。
I pay you this amount and I get this software.
我付给你这笔钱,我就得到了这个软件。
5:40:55 Open source, once you start mixing money into, it gets real muddy real fast, and a lot of it’s just from those misaligned expectations that if you feel like you’re starving artists as an open source developer and you are owed X amount of money because your software is popular, you’re delusional and you need to knock that off.
开源,一旦你开始把钱混进去,它很快就会变得非常混乱,而且很多只是来自那些不一致的期望,如果你觉得作为一个开源开发者你正在挨饿艺术家,并且因为你的软件很受欢迎而被欠了 X 笔钱,那么你就是妄想症,你需要停止这种想法。
Just get back on track where you realize that you’re putting gifts into the world and if you get something back in terms of monetary compensation, okay, that’s a bonus.
只要回到正轨,你就会意识到你正在向世界奉献礼物,如果你以金钱补偿的形式得到回报,好吧,那就是奖金。
But if you need that money back in terms of monetary compensation, just charge for software or go work for a software company that will employ you to do open source.
但是,如果您需要以货币补偿的形式收回这笔钱,只需收取软件费用或为一家将雇用您进行开源的软件公司工作即可。
There’s tons of that.
有很多这样的。
That is probably actually the primary mode that open source software is being developed in the world today.
这实际上可能是当今世界开发开源软件的主要模式。
Commercial companies making open source that they need themselves and then contributing it back.
商业公司开源他们自己需要的资源,然后将其回馈。
So I’m glad you drew some hard lines.
所以我很高兴你画了一些强硬的路线。
5:41:46 Here is a good moment to bring up what I think is maybe one of the greatest open source projects ever, WordPress.
现在是介绍我认为可能是有史以来最伟大的开源项目之一的好时机,WordPress。
And you spoke up in October 24 about some of the stuff that’s been going on with WordPress’s founder, Matt Mullenweg, in a blog post, “Open source royalty and mad kings,” is a really good blog post on just the idea of Benevolent Dictators For Life, this model for open source projects.
你在 10 月 24 日的博客文章“开源皇室和疯狂的国王”中谈到了 WordPress 创始人 Matt Mullenweg 正在发生的一些事情,这是一篇非常好的博客文章,讨论了“仁慈的独裁者终生”的想法,这种开源项目的模式。
And then the basic implication was that Matt, as the BDFL of WordPress has lost his way a bit with this battle with WP Engine.
基本的含义是,作为 WordPress 的 BDFL,Matt 在与 WP Engine 的这场战斗中有点迷失了方向。
So I should also say that I really love WordPress.
所以我也应该说我真的很喜欢WordPress。
It brings me joy.
它给我带来快乐。
I think it’s a beacon of what open source could be.
我认为它是开源的灯塔。
I think it’s made the internet better, a lot of people to create wonderful websites.
我认为它让互联网变得更好,很多人创建了精彩的网站。
And I also think, now you might disagree with this, but from everything I’ve seen, WP Engine just gives me bad vibes.
我还认为,现在你可能不同意这一点,但从我所看到的一切来看,WP Engine 只是给我带来了不好的感觉。
5:43:03 I think they’re not the good guy in this.
我认为他们不是这方面的好人。
I don’t like it.
我不喜欢它。
I understand the frustration, I understand all of it, but I don’t think that excuses the behavior.
我理解这种挫败感,我理解这一切,但我不认为这可以成为这种行为的借口。
There is a bit of…
有一点……
See this kind of counter to a little bit what you said, which is when you have an open source project of that size, there is a bit of a…
看到这种与你所说的相反的情况,即当你有一个如此规模的开源项目时,有一点......
When you’re the king of a project of a kingdom that large, there’s a bit of responsibility.
当你是一个如此大的王国的一个项目的国王时,你就需要承担一些责任。
Anyway, could you speak maybe, to your empathy of Matt and to your criticism?
不管怎样,你能谈谈你对马特的同情和批评吗?
And maybe paint a path of how he and WordPress can be winning again.
也许还可以描绘出他和 WordPress 如何再次获胜的道路。
First, I echo what you said about what a wonderful thing it is that WordPress success, there are not many projects in the open source world or in the world at large that has had as big of an impact on the internet as WordPress has.
首先,我同意你所说的 WordPress 的成功是多么美妙的事情,在开源世界或整个世界上没有多少项目像 WordPress 那样对互联网产生了如此大的影响。
5:43:52 He deserves a ton of accolades for that work.
他的这项工作值得大量赞誉。
So that was my engagement, essentially my premise.
这就是我的承诺,本质上是我的前提。
Do you know what?
你知道什么吗?
I had tremendous respect for what Matt has built with WordPress, what that entire ecosystem has built around itself.
我非常尊重 Matt 用 WordPress 构建的东西,以及整个生态系统围绕其自身构建的东西。
It’s a true marvel, but there’s some principles that are larger than my personal sympathies to the characters involved.
这是一个真正的奇迹,但有一些原则比我个人对所涉及角色的同情更重要。
I agree.
我同意。
The Silver Lake private equity company that’s involved with WP Engine is not my natural ally.
参与 WP Engine 的 Silver Lake 私募股权公司并不是我天然的盟友。
I’m not the natural ally of private equity doing some game with VP Engine.
我并不是私募股权公司用 VP Engine 做游戏的天然盟友。
That’s not my interest in the case.
这不是我对这个案子的兴趣。
My interest is essentially a set of principles and the principles are if you release something as an open source, people are free to use it as they see fit and they’re free to donate code, or resources, or money back to the community as they see fit.
我的兴趣本质上是一套原则,这些原则是,如果你将某些东西作为开源发布,人们可以自由地使用他们认为合适的东西,并且他们可以自由地向社区捐赠他们认为合适的代码、资源或资金。
5:45:10 You may disagree about whether they’ve done enough, whether they should do more, but you can’t show up after you’ve given the gift of free software to the world and then say, “Now that you’ve used that gift, you actually owe me a huge slide of your business because you got too successful using the thing I gave you for free.” You don’t get to take a gift back.
你可能不同意他们是否做得足够,是否应该做得更多,但在你向世界赠送了免费软件的礼物之后,你不能出现然后说:“现在你已经使用了这份礼物,你实际上欠我一大笔生意,因为你使用我免费赠送给你的东西太成功了。”你不能收回礼物。
That’s why we have open source licenses.
这就是我们拥有开源许可证的原因。
They stipulate exactly what the obligations are on both sides of the equation.
它们准确地规定了等式两边的义务。
The users of open source don’t get to demand what the makers of open source do and how they act and the makers of open source don’t get to suddenly show up with a ransom note to the users and say, “Actually you owe me for all sorts of use.” I’m 100% allergic to that kind of interaction.
开源的用户不会要求开源的制造者做什么以及他们如何行事,开源的制造者也不会突然向用户发出勒索信并说:“实际上,你欠我各种使用费用。”我对这种互动百分百过敏。
And I think Matt unfortunately for whatever reason, got so wrapped up in what he was owed that he failed to realize what he was destroying.
我认为不幸的是,无论出于何种原因,马特都沉浸在自己所欠的东西中,以至于没有意识到自己正在破坏什么。
WordPress and Automatic already makes a ton of money.
WordPress 和Automatic 已经赚了很多钱。
5:46:19 This is part of the wonder of WordPress.
这是 WordPress 奇迹的一部分。
This is a project that generates 100s of millions of dollars and Matt didn’t feel like he was getting enough of that.
这是一个能带来数百亿美元收入的项目,但马特觉得自己还没有得到足够的回报。
That’s not a good argument, bro.
这不是一个好的论点,兄弟。
You can’t just violate the spirit and the letter of these open source licenses and just start showing up with demand letters even to characters that are not particularly sympathetic.
你不能仅仅违反这些开源许可证的精神和文字,就开始向那些不太同情的人发出要求信。
This goes to the root of my interpretation of open source in general.
这就是我对开源的总体解释的根源。
The GPL is a particular license that actually demands code from people who use it under certain circumstances.
GPL 是一种特殊的许可证,实际上要求在某些情况下使用它的人提供代码。
I’ve never liked the GPL.
我从来不喜欢 GPL。
I don’t want your shitty code.
我不想要你的垃圾代码。
If you don’t want to give it to me, what am I going to do with that?
如果你不想给我,我该怎么办?
Some code dump that you’ve…
您已经转储了一些代码...
I’m not on board with that part of Stallman’s vision at all.
我根本不同意斯托曼的这部分愿景。
I love the MIT license.
我喜欢麻省理工学院的许可证。
To me that is the perfect license because it is mercilessly short.
对我来说,这是一个完美的许可证,因为它非常短。
5:47:17 I think it’s two paragraphs, three paragraphs, really short and it basically says, “Here’s some software.
我认为这是两段,三段,非常短,它基本上说,“这是一些软件。
It comes with no warranty.
它没有保修。
You can’t sue me.
你不能起诉我。
You can’t demand anything, but you can do whatever the hell you want with it.
你不能要求任何东西,但你可以做任何你想做的事。
Have a nice life.” That’s a perfect open source interaction in my opinion, and that license needs to be upheld.
祝你生活愉快。”在我看来,这是一个完美的开源交互,并且需要维护该许可证。
These licenses in general, even the GPL, even if I don’t like it, we have to abide by them because if we just set aside those licenses, when we in a moment’s notice feel like something’s slightly unfair, we’ve lost everything.
一般来说,这些许可证,甚至是 GPL,即使我不喜欢它,我们也必须遵守它们,因为如果我们只是搁置这些许可证,当我们突然感觉有些事情有点不公平时,我们就失去了一切。
We’ve lost the entire framework that allowed open source to prosper and allowed open source to become such an integral part of commerce too.
我们已经失去了让开源繁荣并让开源成为商业不可或缺的一部分的整个框架。
I mean, back when open source was initially finding its feet, it was at war with commercial software.
我的意思是,当开源最初站稳脚跟时,它与商业软件处于交战状态。
Stallman is at war with commercial software and always has been.
斯托曼一直在与商业软件交战。
5:48:11 Bill Gates was in return at war with open source for the longest time.
作为回报,比尔·盖茨与开源进行了最长的战争。
The open source licenses and the clarity that they provide allowed us to end that war.
开源许可证及其提供的清晰度使我们能够结束这场战争。
Today, commercial software and open source software can peacefully coexist.
如今,商业软件和开源软件可以和平共处。
I make commercial software, I sell Basecamp, I sell HEY, and then I also make a bunch of open source software that I give away for free gifts.
我制作商业软件,我销售 Basecamp,我销售 HEY,然后我还制作了一堆开源软件,我将它们作为免费礼物赠送。
That can’t happen if we start violating these contracts.
如果我们开始违反这些合同,这种情况就不会发生。
No commercial company is going to go, “Let me base my next project off this piece of open source if I’m also running the liability that some Matt maker is going to show up seven years in and demand I give them $50 million.” That’s not an environment conducive to commerce collaboration or anything else and it’s just basically wrong.
没有商业公司会说,“如果我还要承担一些 Matt 制造商将在七年后出现并要求我给他们 5000 万美元的责任,那么让我将我的下一个项目基于这个开源项目。”这不是一个有利于商业合作或其他任何事情的环境,而且基本上是错误的。
I think there’s one analysis that’s all about the practical outcomes of this, which I think are bad.
我认为有一项分析完全是关于这一实际结果的,我认为这很糟糕。
5:49:05 There’s also an argument that’s simply about ethics.
还有一种争论只是关于道德。
This is not right.
这是不对的。
You can’t just show up afterwards and demand something.
你不能事后才出现并要求一些东西。
This is not too dissimilar in my opinion, to the whole Apple thing we talked about earlier, Apple just showing up and feeling like they’re entitled to 30% of everyone’s business.
在我看来,这与我们之前讨论的整个苹果公司的事情并没有太大不同,苹果公司只是出现并感觉他们有权获得每个人 30% 的业务。
No, that’s not right.
不,那是不对的。
That’s not fair.
这不公平。
So I think Matt unfortunately steered himself blind on the indignity he thought was being perpetrated against him because there was all this money being made by BP Engine making a good product and not giving quite enough back in Matt’s opinion, tough cookie.
所以我认为,不幸的是,马特对他认为对他犯下的侮辱视而不见,因为所有这些钱都是由 BP Engine 制造的好产品赚来的,而在马特看来,没有给予足够的回报,强硬的饼干。
I think there, maybe I’m reading too much into it, but there might be some personal stuff too which weren’t not only not giving enough but probably implicitly promising that they will give and then taking advantage of him in that way in his mind.
我想,也许我读得太多了,但也可能有一些个人的东西,这些东西不仅没有给予足够的东西,而且可能含蓄地承诺他们会给予,然后在他的脑海中以这种方式利用他。
5:49:49 Just like interpersonal interaction and then you get interpersonally frustrated.
就像人际交往一样,然后你就会感到人际沮丧。
I get that.
我明白了。
You forget the bigger picture ethics of it.
你忘记了它的大局道德。
5:50:11 It’s like when a guy keeps promising he’ll do something and then you realize you wake up one day a year or two later, “Wait a minute, I was being lied to this whole time,” and that I don’t even know if it’s about money.
这就像当一个人不断承诺他会做某事,然后你意识到一两年后的某一天你醒来时,“等一下,我一直被骗了,”我什至不知道这是否与金钱有关。
I’d get mad too.
我也会生气。
5:50:29 It’s totally fine to get mad when people disappoint you.
当人们让你失望时,生气是完全可以的。
That’s not justification for upending decades of open source licensees and the essential de facto case law we’ve established around it.
这并不是颠覆数十年来的开源被许可人以及我们围绕其建立的基本事实判例法的理由。
This is why I chose to even weigh in on this because I like WordPress.
这就是为什么我选择参与其中,因为我喜欢 WordPress。
I don’t use WordPress.
我不使用 WordPress。
I’m not a part of that community.
我不是那个社区的一部分。
I don’t actually have a dog in this fight.
这场战斗中我实际上并没有养狗。
I’m biased if anything towards Matt just as a fellow BDFL.
如果说我对 Matt 作为一名 BDFL 成员有偏见的话。
I would like to see him do well with this, but I also think there’s some principles that stake here that ring much louder.
我希望看到他在这方面做得很好,但我也认为这里有一些原则更响亮。
I don’t want Rails to suddenly be tainted by the fact that it’s open source and whether companies can rely on it and build businesses on it because wait, maybe one day I’m going to turn Matt and I’m going to turn Matt King and I’m going to show up with a demand ransom letter.
我不希望 Rails 突然因为它是开源的以及公司是否可以依赖它并在其上建立业务而受到污染,因为等等,也许有一天我会转向 Matt,我会转向 Matt King,我会带着一封索要赎金的信出现。
Now screw that.
现在搞砸了。
We have way more to protect here.
我们这里还有更多需要保护的地方。
There’s way more at stake than your personal beef with someone or your perceived grievance over what you’re owed.
比你与某人的私人恩怨或你对自己所欠的东西感到不满更重要。
What would you recommend?
你会推荐什么?
5:51:31 What do you think he should do, can do to walk it back to heal?
你认为他应该做什么,可以做什么才能恢复健康?
Decide.
决定。
5:51:40 This is the curious thing.
这就是令人好奇的事情。
He could decide to give this up.
他可以决定放弃这个。
That’s very, very difficult for driven ambitious people to do, to accept that they’re wrong and to give up and lay down their sword.
对于雄心勃勃的人来说,接受自己的错误并放弃并放下剑是非常非常困难的。
So I had a hope earlier on in this that was possible.
所以我很早就希望这是可能的。
I haven’t seen any evidence that Matt is interested in that and I find that deeply regretful, but that’s his prerogative.
我没有看到任何证据表明马特对此感兴趣,我对此深感遗憾,但这是他的特权。
I continue to speak out when he’s violating the spirit and ethics of open source, but I wish he would just accept that this was a really bad idea.
当他违反开源精神和道德时,我继续大声疾呼,但我希望他能接受这是一个非常糟糕的主意。
He made a bad bet and I think he thought he’d just get away with it, that they’d just pay up and that he could put pressure.
他下了一个糟糕的赌注,我想他以为自己会侥幸逃脱惩罚,他们会付钱,他可以施加压力。
5:52:24 I mean, I know that temptation.
我的意思是,我知道那种诱惑。
When you sit as the head of a very important project, you know that comes with a great degree of power and you really need a great degree of discipline to rein that in and not exercise that power at every step where you feel aggrieved.
当你担任一个非常重要的项目的负责人时,你知道这会带来很大的权力,并且你确实需要很大程度的纪律来控制这种权力,而不是在你感到委屈的每一步都行使这种权力。
I’ve felt aggrieved a million times over in the 20 plus years of Ruby on Rails.
在 Ruby on Rails 的 20 多年里,我已经感到委屈一百万次了。
I’ve really tried very hard not to let those, sometimes petty, sometimes substantial grievances over time seep in to the foundation of the ecosystem and risk ruining everything.
我真的非常努力地努力不让这些有时是琐碎的、有时是重大的不满随着时间的推移渗透到生态系统的基础,并冒着毁掉一切的风险。
As the king of the Rails kingdom.
作为Rails王国的国王。
5:53:03 Has the power gotten to your head over the years?
这些年来,权力是否已经占据了你的头脑?
I’m sure it has.
我确信有。
5:53:07 I mean, who wouldn’t?
我的意思是,谁不会呢?
Do you pace around in your chamber?
你在你的房间里踱步吗?
5:53:10 [inaudible 05:53:12]-
[听不清 05:53:12]-
I do, occasionally, and I do marvel at both what’s been built, what’s been possible.
有时候,我确实会惊叹于已经建成的东西和可能的东西。
5:53:11 Over a million applications have been made with Ruby on Rails by one estimate that I’ve seen.
据我所知,使用 Ruby on Rails 制作的应用程序已超过一百万个。
Businesses like Shopify and GitHub and a million others have been built on top of something that I started.
像 Shopify 和 GitHub 这样的企业以及其他上百万家企业都是建立在我创办的东西之上的。
That’s very gratifying.
这是非常令人欣慰的。
But you really have to be careful not to smell your own exhaust too much and you have to be just as careful not to listen too much to the haters and not to listen too much to the super fans either that you assess the value and the principles of what you’re working towards on its own merits, on your own scoreboard.
但你真的必须小心,不要太多地闻到自己的废气味,你也必须同样小心,不要听太多仇恨者的话,也不要听太多超级粉丝的话,你要根据自己的优点、在自己的记分牌上评估你正在努力的价值和原则。
I try to block that out and then just go, “Well, I’m working on Rails because I love to write Ruby.
我试图阻止它,然后就说:“好吧,我正在开发 Rails,因为我喜欢编写 Ruby。
I love to use Ruby to make web applications.
我喜欢使用 Ruby 来制作 Web 应用程序。
That’s my North Star and I’ll continue to do that and I’ll continue to share all of the open source gifts that I uncover along the ways,” and that’s it.
这是我的北极星,我将继续这样做,我将继续分享我一路上发现的所有开源礼物,”就是这样。
That’s enough too.
这也够了。
5:54:23 I don’t have to get all of it out of it.
我不必把它全部拿出来。
This is sometimes just as with the guy who thought I’d given up on being Jira or something, instead of doing Basecamp, there are people over the years who’ve asked like, “Why didn’t you charge for Rails?
有时就像有人认为我放弃了 Jira 之类的东西,而不是做 Basecamp 一样,多年来有人问过这样的问题:“为什么你们不为 Rails 收费?
Don’t you know how much money had been made off Rails?” If we just look at something like Shopify, it’s worth billions of dollars.
你难道不知道 Rails 赚了多少钱吗?”如果我们只看像 Shopify 这样的东西,它价值数十亿美元。
I’m not a billionaire and so freaking what?
我又不是亿万富翁,那又怎样?
I got more than enough.
我得到的已经足够多了。
I got plenty of my share.
我得到了很多我的份额。
5:54:51 I will say though, I’m also introspective enough to realize that if it hadn’t panned out as well as it did for me on my own business, maybe I would’ve been more tempted.
但我要说的是,我也足够内省,意识到如果它没有像我自己的事业那样成功,也许我会更受诱惑。
Maybe if you see other people build huge successful companies off the back of your work and you really don’t have a pot to piss in, you might be tempted to get a little upset about that.
也许如果你看到其他人依靠你的工作建立了巨大成功的公司,而你真的没有尿处,你可能会对此感到有点不安。
I’ve seen that in the Rails world as well, where there are people who contributed substantial bodies of work and then got really miffed when they didn’t feel like they got enough back.
我在 Rails 世界中也看到过这种情况,有些人贡献了大量工作,但当他们觉得自己没有得到足够的回报时,他们感到非常恼火。
I was fortunate enough that the business that Jason and I built with Ruby on Rails was as successful as it was and I made the money I needed to make that I didn’t need to chase the rest of it.
我很幸运,Jason 和我用 Ruby on Rails 建立的业务非常成功,而且我赚了我需要赚的钱,我不需要追逐其余的钱。
But we should also just make explicit that many people in your position chase the money.
但我们也应该明确表示,许多处于你位置的人都在追逐金钱。
5:55:36 It’s not that difficult to chase.
追起来也不是那么难。
Basically you turned away money, you made a lot of decisions that just turned away money.
基本上你拒绝了金钱,你做出了很多决定,只是拒绝了金钱。
Maybe.
或许。
5:55:53 I also think of this example with Matt.
我也想到了马特的这个例子。
He probably thought there was easy money for the taking and it wasn’t so easy, was it?
他可能认为钱来得容易,但其实没那么容易,不是吗?
It looked like low-hanging dollar bills and they turned out to be some really sour grapes.
它看起来像是低垂的美元钞票,但事实证明它们是一些真正的酸葡萄心理。
It turned out he probably destroyed vast sums of money by undermining the whole WordPress trust and the ecosystem and putting question marks in the heads of folks who would choose to use WordPress or something else going forward.
事实证明,他可能破坏了整个 WordPress 信任和生态系统,并给那些选择使用 WordPress 或其他东西的人们留下了问号,从而损失了大量资金。
So I often think when people think like, “Oh, you left money on the table.” First of all, so what?
所以我经常想,当人们这样想时,“哦,你把钱留在桌上了。”首先,那又怎样?
I don’t have to have all the money, but second of all, maybe the money wasn’t on the table at all.
我不必拥有所有的钱,但其次,也许钱根本不在桌面上。
And maybe the cost, even if you got the money, maybe the cost in other ways like we’ve talked about, would outweigh all the money that you could have possibly gotten.
也许成本,即使你得到了钱,也许像我们讨论过的其他方式的成本会超过你可能得到的所有钱。
5:56:33 I think you said that the thing that makes you happy is flow and tranquility.
我想你说过,让你快乐的是流动和宁静。
Those two things.
这两件事。
Really beautifully put.
真的很漂亮。
And gaining money might assign to your responsibility of running a larger thing that takes away the flow that you gain from being…
获得金钱可能会让你承担经营更大事情的责任,而这会夺走你从……中获得的流量。
Fundamentally for you what flow means is programming and then tranquility is like…
从根本上来说,心流对你来说意味着编程,然后平静就像……
I think you also have a beautiful post of like, “Nirvana is an empty schedule.”
我认为你也有一个漂亮的帖子,比如“涅槃是一个空的时间表”。
When I look at a upcoming week and I see that I have no scheduled meetings at all, which is quite common, or maybe I just have one thing for one hour on one day, I think to myself, “Do you know what?
当我展望即将到来的一周,我发现我根本没有安排会议,这很常见,或者也许我一天只花一小时做一件事,我对自己说,“你知道吗?
5:57:17 This could very easily have been very different.
这很可能是非常不同的。
We could have been running a company of 100s of people or 1000s of people and my entire calendar would’ve been packed solid with little Tetris blocks of other people’s demands on my attention and time and I would’ve been miserable as fuck.
我们本来可以经营一家拥有数百人或数千人的公司,而我的整个日历将被其他人对我的注意力和时间的要求的小俄罗斯方块塞满,我会非常痛苦。
And I look at that and go, “What more can I ask for?” Which is a really nice state of being, I’d actually say.
我看着它,然后说道:“我还能要求什么呢?”事实上,我想说,这是一种非常美好的状态。
I didn’t have this always.
我一直没有这个。
I did have, early on in my career, some sense of I need a little more, a little more security.
在我职业生涯的早期,我确实有一种感觉,我需要更多一点的安全感。
And I remember this really interesting study where a bunch of researchers asked people who had made certain amounts of money, “How much money would it take for you to feel secure?”
我记得有一项非常有趣的研究,一群研究人员询问赚了一定钱的人,“你需要多少钱才能感到安全?”
5:58:14 They’d ask people who had a million dollars net worth, “How much money do you need?” “Probably need $2 million.
他们会问净资产一百万美元的人:“你需要多少钱?” “可能需要 200 万美元。
$2 million, then I’d be good.” Then they asked people with a net worth of $5 million, how much do you need?” “10.
200万美元,那我就很好了。”然后他们问净资产500万美元的人,你需要多少钱?” “10.
I need 10.” Ask people with $10 million, “What do you need?” “20.” Every single time people would need double of what they did.
我需要 10 个。”问拥有 1000 万美元的人:“你需要什么?” “20。”每一次人们都需要双倍的努力。
I did that for a couple of doublings until I realized, “You know what?
我这样做了几次,直到我意识到,“你知道吗?
This is silly.
这很愚蠢。
I’m already where I wished I would be and a million times over, so what less is there to pursue?” Now that doesn’t mean that if more money is coming my way, I’m going to say no to it.
我已经到达了我希望到达的地方,而且已经达到了一百万次了,那么还有什么可追求的呢?”现在这并不意味着如果更多的钱向我而来,我就会拒绝。
Of course not.
当然不是。
But, it does mean that I’m free to set other things higher.
但是,这确实意味着我可以自由地将其他事情设置得更高。
And I also do think you realize, as Jim Carrey would say, “I wish everyone would get all the money that they wished for and they’d realize it wasn’t the answer.”
我也确实认为你意识到,正如金凯瑞所说,“我希望每个人都能得到他们想要的所有钱,但他们会意识到这不是答案。”
5:59:01 That money solves a whole host of problems and anxieties and then it creates a bunch of new ones and then it also doesn’t touch a huge swath of the human experience at all.
这笔钱解决了一大堆问题和焦虑,然后又创造了一堆新的问题和焦虑,然后它也根本没有触及人类经历的很大一部分。
The world is full of miserable, anxious, hurt, rich people.
这个世界充满了痛苦的、焦虑的、受伤的、富有的人。
It’s also full of miserable, anxious, poor people and I’d rather be a miserable, anxious, rich person than a poor person.
它还充满了痛苦、焦虑、贫穷的人,我宁愿做一个痛苦、焦虑、富有的人,也不愿做一个穷人。
But it isn’t this magic wand that make everything go away, and that’s again one of those insights, just like having children, that you cannot communicate in words.
但这并不是这根魔杖能让一切消失,这又是那些洞察力之一,就像生孩子一样,你无法用语言交流。
I’ve never been able to persuade a person who’s not wealthy that wealth wasn’t going to solve all their problems.
我从来没能说服一个不富有的人,财富并不能解决他们所有的问题。
One quote you’ve returned to often that I enjoy a lot is the Coco Chanel quote of, “The best things in life are free and the second-best things are very, very expensive.” And I guess the task is to focus on surrounding yourself with the best things in life like family and all of this and not caring about the other stuff.
我很喜欢你经常引用的一句名言,那就是可可·香奈儿 (Coco Chanel) 的名言:“生活中最好的东西是免费的,次好的东西却非常非常昂贵。”我想我们的任务是专注于让自己生活在生活中最美好的事物中,比如家庭等等,而不是关心其他事情。
I would easily say you can care about the other stuff.
我很容易说你可以关心其他事情。
6:00:07 Just know the order of priority.
只需知道优先顺序即可。
If you are blessed with a partner that you love, some children that you adore, you’ve already won the greatest prize that most humans are able to achieve.
如果你有幸拥有一个你爱的伴侣,一些你喜欢的孩子,那么你已经赢得了大多数人能够获得的最大奖励。
Most humans in this world, if they are of marital age and they have children, if you ask them what’s the most important thing they would all say that, they would all say that, no matter whether they’re rich or poor.
这个世界上的大多数人,如果他们到了结婚年龄,有了孩子,如果你问他们什么是最重要的,他们都会说,他们都会说,无论他们是富有还是贫穷。
It’s easy to lose sight of that when you’re chasing the second-best things because do you know what?
当你追求次优的东西时,你很容易忽视这一点,因为你知道吗?
They’re also very nice.
他们也很好。
6:00:45 I really like that Pagani Sonda.
我真的很喜欢帕加尼桑达。
It was a very expensive car and I would’ve had no chance of acquiring it if I hadn’t become rather successful in business.
这是一辆非常昂贵的汽车,如果我没有在商业上取得相当成功,我就没有机会获得它。
So I don’t want to dismiss it either.
所以我也不想驳回它。
It’s great fun to have money.
有钱真是太开心了。
It’s just not as fun for quite as long or as deep as you think it is.
它只是没有你想象的那么有趣、持续那么久或那么深。
And these other things, having an occupation and a pursuit that you enjoy, being able to carry burdens with a stiff up a lip and with again, a sense of meaning, is incredible.
还有其他的事情,拥有自己喜欢的职业和追求,能够咬紧牙关承担重担,并且再次感受到意义,是令人难以置信的。
To have family, to have friends, to have hobbies, to have all these things that are actually available to most people around the world, that’s winning.
有家人,有朋友,有爱好,拥有世界上大多数人实际上可以获得的所有这些东西,这就是胜利。
And it doesn’t mean you have to discount your ambitions.
这并不意味着你必须放弃你的野心。
It doesn’t mean you can’t reach for more, but it does mean it’s pretty dumb if you don’t realize that it’s not going to complete you in some hocus-pocus woo sense to make more.
这并不意味着你无法获得更多,但它确实意味着,如果你没有意识到,在某种骗人的追求意义上,赚更多的钱并不能让你变得完整,那就太愚蠢了。
It really isn’t.
事实并非如此。
What gives you hope about the future of this whole thing we have going on here, human civilization?
是什么让你对我们这里正在发生的整个人类文明的未来充满希望?
I find it easier to be optimistic than pessimistic because I don’t know either way.
我发现乐观比悲观更容易,因为我不知道这两种方式。
6:02:04 So if I get to choose, why not just choose to believe it’s going to pan out?
所以,如果我可以选择,为什么不选择相信它会成功呢?
“We suffer more in our imagination than we do in reality,” that’s one of the quotes out of Stoicism.
“我们在想象中比在现实中遭受更多的痛苦,”这是斯多葛主义的名言之一。
And I also think we have a tendency, a lot of humans have a tendency to be pessimistic in advance for things they don’t know how it’s going to pan out.
我还认为我们有一种倾向,很多人都倾向于提前对他们不知道结果如何的事情感到悲观。
Climate change, for example, is making a lot of people very anxious and very pessimistic about the future.
例如,气候变化让很多人对未来感到非常焦虑和悲观。
You know nothing.
你什么都不知道。
40 years ago, we thought the problem was that the planet was going to be too cool.
40 年前,我们认为问题是地球会变得太冷。
I happen to believe that it’s probably correct that the planet is getting too hot and that CO2 has something to do with it.
我碰巧相信,地球变得太热并且二氧化碳与此有关,这可能是正确的。
Whether we have the right measures to fix it in time, if that’s even possible or not, is completely up in the air and we don’t know.
我们是否有正确的措施来及时解决这个问题,无论是否可能,这完全是一个悬而未决的事情,我们也不知道。
6:03:03 If you convince yourself with such certainty that the world is going to turn to shit.
如果你如此确信地说服自己世界将会变得一团糟。
It is, right up here in your head, today.
今天,它就在你的脑海里。
Climate change might wipe out this entire species in 200 years.
气候变化可能会在 200 年内消灭整个物种。
It’s not next year.
这不是明年。
It’s not 10 years from now.
现在还不到10年。
Life might become more unpleasant and there might be more negative effects and so on.
生活可能会变得更加不愉快,可能会有更多的负面影响等等。
Yes, okay, but then deal with that hardship when it arrives.
是的,好吧,但是当困难到来时,就去处理它。
Don’t take that in advance.
不要提前接受。
How are you helping earth by just walking around being depressed?
你如何通过沮丧地四处走动来帮助地球?
I think our whole conversation today is also an indication, it’s just two humans talking.
我认为我们今天的整个谈话也是一个暗示,只是两个人在说话。
6:03:36 There’s billions of us and there is something about us that wants to solve problems and build cool stuff and so we’re going to build our way out of whatever shit we get ourselves into.
我们有数十亿人,我们都想解决问题并创造很酷的东西,所以我们要走出自己的路,摆脱我们陷入的任何困境。
This is what humans do.
这就是人类所做的。
We create problems for ourselves and figure out how to build rocket ships to get out of those problems.
我们为自己制造问题,并找出如何建造火箭飞船来摆脱这些问题。
And sometimes, the rocket ships create other problems like nuclear warheads and then we’ll, I hope, figure out ways how to avoid those problems.
有时,火箭飞船会产生其他问题,例如核弹头,然后我希望我们能找到避免这些问题的方法。
And then, there’ll be nanobots and then the aliens will come and it’ll be a massive war between the nanobots and the aliens and that will bring all of us humans together.
然后,将会出现纳米机器人,然后外星人将会到来,这将是纳米机器人和外星人之间的一场大规模战争,这将使我们所有人团结在一起。
The funny thing, just to pick up one of the points you mentioned, the atom bomb, for example.
有趣的是,只是拿起你提到的一点,例如原子弹。
6:04:24 When that was first invented, a lot of people thought we have essentially ended life on earth or maybe we prevented World War III from happening in the past 80 years because assured, neutral annihilation kept the superpowers from attacking each other at least head-on and kept their fighting to proxy wars.
当它第一次被发明时,很多人认为我们基本上已经结束了地球上的生命,或者也许我们在过去的 80 年里阻止了第三次世界大战的发生,因为有把握的、中立的毁灭让超级大国至少不会正面攻击对方,并让他们的战争继续进行代理人战争。
You know what?
你知道吗?
Proxy wars are not great, but they’re probably better than World War III with nuclear weapons.
代理人战争并不伟大,但可能比使用核武器的第三次世界大战更好。
So it’s quite difficult in the moment to tell what’s actually benefit and what’s not, and I think we should be a bit more humble.
因此,目前很难判断什么是真正有益的,什么是没有的,我认为我们应该更加谦虚一点。
I’ve certainly become more humble over time of thinking I know which way it’s going to turn.
随着时间的推移,我知道事情会朝哪个方向发展,我当然变得更加谦虚。
I think the pandemic was a huge moment for a lot of people where there was so much certainty about whether this intervention worked or that intervention didn’t work and most people were wrong.
我认为这场大流行对很多人来说是一个重要时刻,人们非常确定这种干预措施是否有效,但大多数人都错了。
6:05:25 Certainly a lot of very smart people, very qualified people got that just utterly and catastrophyingly wrong.
当然,很多非常聪明、非常有资格的人都犯了完全错误的错误。
So just a little intellectual humility, I think back upon that and go like, “You know what?
所以,只要有一点理智上的谦虚,我回想起来就会说,“你知道吗?
I’m not a PhD in virology,” and I don’t claim that I somehow saw how it always going to play out, but the people who were really experts in it, they’ve got a bunch of it wrong.
我不是病毒学博士,”而且我并不声称我以某种方式看到了它总是如何发展,但那些真正的专家,他们却犯了很多错误。
Nobody knows anything.
没有人知道任何事情。
I keep reminding myself of that every day.
我每天都不断提醒自己这一点。
No one knows anything.
没有人知道任何事情。
We can’t predict the economy a month out.
我们无法预测一个月后的经济情况。
We can’t predict world affairs a month…
我们无法预测一个月的世界事务……
The world is just too complicated.
世界太复杂了。
When I watched the Netflix documentary, Chimp Empire, and how there’s a hierarchy of chimps, all of that looks eerily similar to us humans.
当我观看 Netflix 纪录片《黑猩猩帝国》以及黑猩猩的等级制度时,所有这些看起来都与我们人类惊人地相似。
6:06:03 We’re recent descendants.
我们是最近的后代。
So these experts, some of the chimps got a PhD, others don’t.
所以这些专家中,一些黑猩猩获得了博士学位,另一些则没有。
Others are really muscular.
其他人确实肌肉发达。
Others are beta male kind.
其他人是β雄性。
They’re sucking up to the alpha.
他们正在讨好阿尔法。
There’s a lot of interesting dynamics going on that really maps cleanly to the geopolitics of the day.
有很多有趣的动态正在发生,它们确实清晰地映射到了当今的地缘政治。
They don’t have nuclear weapons, but the nature of their behavior is similar to ours.
他们没有核武器,但他们的行为本质与我们相似。
So I think we barely know what’s going on, but do think there’s a basic will to cooperate as a basic compassion that underlies just the human spirit that’s there.
所以我认为我们几乎不知道发生了什么,但确实认为存在一种基本的合作意愿,作为一种基本的同情心,它是人类精神的基础。
And maybe that is just me being optimistic, but if that is indeed there, then we’re going to be okay.
也许这只是我的乐观态度,但如果确实存在这种情况,那么我们就会没事的。
The capacity is certainly there.
能力肯定是有的。
6:07:03 Whether we choose that capacity or not, who knows and in what situation.
无论我们是否选择这种能力,谁知道,在什么情况下。
I think accepting that we all have the capacity for both ways, for both incredible generosity and kindness and also cruelty.
我认为要接受这样一个事实:我们都有能力实现这两种方式,既有令人难以置信的慷慨、仁慈,也有残忍。
I think, Young, with this whole theory of the shadow was really spot-on that we all have that capacity in us and accepting that it’s our job to attempt to cultivate the better parts of our human nature is weighed against our propensity to some time be the worst of ourselves.
我认为,杨,整个阴影理论非常准确,我们所有人都有这种能力,并接受我们的工作是尝试培养人性中更好的部分,这与我们有时成为最坏的自己的倾向相权衡。
I’m excited to find out what’s going to happen.
我很高兴知道会发生什么。
6:07:41 It’s so awesome to be human.
成为人类真是太棒了。
I don’t want to die.
我不想死。
I want to be alive for a while to see all the cool shit we do.
我想再活一段时间,看看我们所做的一切很酷的事情。
And one of the cool things I want to see is all the software you create and all the things you tweet, all the trouble you get yourself into on Twitter.
我想看到的一件很酷的事情就是你创建的所有软件、你推文的所有内容、你在 Twitter 上给自己带来的所有麻烦。
David, I’m a huge fan.
大卫,我是一个超级粉丝。
Like I said, thank you for everything you’ve done for the world, for the millions of developers you’ve inspired and one of whom is me, and thank you for this awesome conversation, brother.
就像我说的,感谢你为世界所做的一切,感谢你激励的数以百万计的开发者,其中之一就是我,感谢你进行了这次精彩的对话,兄弟。
Thanks so much for having me.
非常感谢你邀请我。
Thanks for listening to this conversation with DHH.
感谢您收听 DHH 的对话。
6:08:14 To support this podcast, please check out our sponsors in the description and consider subscribing to this channel.
为了支持这个播客,请在描述中查看我们的赞助商并考虑订阅这个频道。
And now, let me leave you with some words from Rework by DHH and Jason Fried, “What you do is what matters, not what you think, or say, or plan.” Thank you for listening and hope to see you next time.
现在,让我用 DHH 和 Jason Fried 的《Rework》中的一些话来告别:“重要的是你所做的事情,而不是你的想法、言论或计划。”感谢您的聆听,并希望下次再见。
本集资源与出处
- 视频在 YouTube 收看
- 音频官方 MP3 直链来自 lexfridman.com 官方播客 RSS
- 官网Lex Fridman 官网本集页面
- 文稿官方 Transcript(lexfridman.com)