闲聊时间、Bun 的进化以及更多精彩内容!

MMaximilian Schwarzmüller
Computing/SoftwareBusiness NewsInternet Technology

Transcript

00:00:00[静音]
00:00:21好的。
00:00:22[静音]
00:00:27回来了。
00:00:28让我们看看现在的画质如何。
00:00:33[静音]
00:00:43等大家连接进来,然后看看画质怎么样。
00:00:48[静音]
00:00:57所以我希望。
00:00:58好的。
00:00:59很好,很好。
00:01:01所以,是的。
00:01:02欢迎大家回来。
00:01:03抱歉刚才的情况。
00:01:04不确定是怎么回事。
00:01:06我希望现在的连接能保持稳定。
00:01:11有趣的是,帧率(FPS)还是很低。
00:01:15还是不行。
00:01:16噢,好吧。
00:01:17哇。
00:01:18这真让人失望。
00:01:21是的,我可以试试我的手机。
00:01:24[静音]
00:01:28好吧。
00:01:30还是卡顿。
00:01:31等一下。
00:01:33[静音]
00:01:39看看。
00:01:40[静音]
00:01:51这一切都很烦人。
00:01:54[静音]
00:02:13好的。
00:02:14让我们来看看。
00:02:18真的很烦人。
00:02:25如果你能看到或听到我,请告诉我。
00:02:31看看现在是否好一点了。
00:02:34可能还是不行。
00:02:53我的问题是我现在在线吗?
00:03:04好的。
00:03:05你们能听到我。
00:03:06视频还是卡顿。
00:03:08好的。
00:03:09我现在切换到手机了。
00:03:11完全不同的网络。
00:03:15是的,如果是网络摄像头源的问题就很奇怪,因为我其实,所以现在也卡吗?
00:03:24视频卡顿。
00:03:25是只有我的脸卡,还是其他部分也卡?
00:03:30屏幕。
00:03:35真奇怪。
00:03:36设置还是和往常一样。
00:03:39所以看起来不是互联网连接的问题。
00:03:43好点了。
00:03:44好点了。
00:03:45好的。
00:03:46好的。
00:03:47谢谢。
00:03:48是的。
00:03:49谢谢大家的耐心。
00:03:50这很烦人。
00:03:51是的。
00:03:52希望现在好了。
00:03:57是的。
00:03:58好的。
00:03:59是的。
00:04:00如果变糟了或者对你们中的某些人仍然很差,请告诉我。
00:04:04音频没问题。
00:04:05视频还是卡顿。
00:04:07好的。
00:04:08对某些人来说是好的。
00:04:09对某些人来说很卡。
00:04:11所以我现在用的是不同的网络。
00:04:13我切换到手机了。
00:04:16理论上,这不应该是网络问题了。
00:04:21至于屏幕录制,我的意思是,是的,理论上当然可能是 OBS 之类的问题,
00:04:28但我没有更改那里的任何设置。
00:04:34整个视频流都在卡顿,但似乎不是网络问题。
00:04:42连接。
00:04:44YouTube 显示我的连接状态良好。
00:04:47不管那代表什么。
00:04:49我想够用了吧。
00:04:51有时会卡,但大部分时间还可以。
00:04:53是的。
00:04:54我非常抱歉。
00:04:58是的。
00:04:59我现在先这样继续。
00:05:01非常抱歉。
00:05:02直播结束后我会调查一下。
00:05:05真的很奇怪。
00:05:06我换了网络,画质还是很差。
00:05:09我可能会更新 OBS 并仔细检查我的设置,尽管这些设置我已经用了一年多了。
00:05:15所以,好吧。
00:05:17希望一切顺利。
00:05:18非常感谢你们一直陪着我。
00:05:21如果情况再次变糟,请告诉我。
00:05:24所以,是的。
00:05:26我想谈谈 BUN。
00:05:29我不想重复所有内容让你们感到无聊。
00:05:32但 BUN 当然是 Node.js 的替代品,而且他们获得了风险投资。
00:05:39所以 BUN 面临的一个问题是,他们当然需要赚钱。
00:05:44那么,怎么赚钱呢?
00:05:47嗯,这些公司中的许多人都有一个想法,就是他们想推出某种托管产品。
00:05:55他们也尝试过,或者我想他们想尝试一下。
00:06:00我不确定。
00:06:01但后来 Anthropic 收购了 BUN。
00:06:03Anthropic 收购 BUN,我想主要是因为这个单文件可执行文件的功能,
00:06:08因为使用 BUN,你可以将 TypeScript 程序编译成一个可以在终端运行的单文件可执行文件。
00:06:16而 Claude Code 正是这样一个程序。
00:06:19Claude Code 是一个单文件可执行文件,或者说它归根结底是一个 BUN 程序、一个 TypeScript 程序,
00:06:25但它很可能使用了 BUN 的 API,并且肯定利用了单文件可执行功能编译成了 CLI 工具。
00:06:35所以 Anthropic 收购了 BUN。
00:06:39这在 BUN 的发展中开启了一种不同的趋势。
00:06:45这就是我觉得有趣的地方,因为你会说,好吧,BUN 是一个 JavaScript 运行时,对吧?
00:06:50它是 Node.js 的替代品,这很好,也很棒。
00:06:56但你对这样一个 Node.js 替代品有什么期待呢?
00:06:59嗯,你会期望它兼容 Node.js,并期望它能跟上 Node.js 的发展,
00:07:07然后再进行一些改进,比如更好的性能,而这正是 BUN 一直提供的。
00:07:14所以这很棒。
00:07:15而且在大多数情况下,BUN 的兼容性相当好。
00:07:22他们这里有表格吗?
00:07:25BUN 与 Node.js 的兼容性。
00:07:29他们的兼容性非常好,只是有些冷门功能还没有完全支持。
00:07:37但总的来说是非常不错的。
00:07:40但有趣的地方在这里。
00:07:42如果你看一下现在的文档,你会发现 BUN 已经内置了像 SQLite 客户端、
00:07:51SQL 客户端、S3 客户端和 Redis 客户端这些东西,我个人觉得这非常有用。
00:07:59而且这些功能已经内置相当长一段时间了。
00:08:03这里的想法当然是,这让你更容易构建一个程序,比如构建一个 Web 服务器,
00:08:10用到 SQLite 或 S3。
00:08:12我在很多服务中都经常使用这些。
00:08:15我觉得这真的很方便。
00:08:17但你还会发现一些东西,比如,在哪呢?
00:08:22WebView。
00:08:24这里的 WebView。
00:08:25在我看来这很有趣,因为这个 WebView 是一项功能,一个 BUN API,
00:08:34如果你用 BUN 运行代码,你可以在 JavaScript 和 TypeScript 代码中使用它。
00:08:39它允许你启动一个无头浏览器,然后在里面进行点击和操作。
00:08:46本质上就是你可以用 Playwright 做的事情。
00:08:49当然,Playwright 是一个端到端测试工具。
00:08:54Playwright 背后的主要理念是,你可以,或者我应该说原本是,你可以用它进行端到端测试。
00:09:04所以你基本上可以编写测试来测试你的网站、测试某些用户流程等等。
00:09:13现在有了 AI,情况发生了变化。
00:09:15现在 Playwright 经常通过他们的 MCP 服务器被使用,
00:09:22这样像 Claude Code 或 Codex 之类的工具就可以测试它们编写的代码。
00:09:29所以一个应用程序正在构建,不,是 Claude Code 正在构建像 React 应用这样的东西。
00:09:40为了测试它,它可以使用像 Playwright MCP 这样的东西来打开浏览器,
00:09:47点击查看内容是否按其预想的方式运行和显示,从而完成所谓的闭环。
00:09:54智能体(Agent)可以验证其输出。
00:09:56这就是 Playwright MCP 之类工具背后的理念。
00:09:59所以像 Playwright 这样的工具实际上已经发生了一些转变,它们不再仅仅是端到端测试工具,
00:10:05虽然你仍然可以这么用,但现在更多是作为 AI 智能体用来验证其更改的工具。
00:10:15这就是现在关于 BUN 的有趣之处。
00:10:17在聊天中,Kevin Ury 说道,在他看来,像 WebView 这样的东西不属于运行时。
00:10:22这是一个很好的观点,因为这也是我在 BUN 身上看到的有趣之处。
00:10:29它曾是一个 JavaScript 运行时。
00:10:32它最初主要用于构建,嗯,不只是主要用于,但一个主要应用场景是你可以用它来构建 Web 服务器。
00:10:43但现在突然之间,你可以构建复杂的应用程序或 CLI 工具,例如,可以启动 Web 服务器。
00:10:52正如我刚才所说,一个用例是 AI 智能体可以验证它们的工作,它们可能会通过 MCP 来实现。
00:11:01但你猜怎么着?
00:11:02正如我所说,是 Anthropic 收购了 BUN。
00:11:05Anthropic 拥有 Claude Code,所以突然间 Claude Code 拥有了内置的 WebView 也是合情合理的,
00:11:13这样 Claude Code 就可以直接打开浏览器并点击,而不需要 Playwright MCP 或任何其他提供浏览器功能的 MCP。
00:11:24使用专门的工具可能仍有某些好处。
00:11:29它们可能有更多的功能,但当然,Anthropic 也有很强的动力将这些功能内置到 BUN 中,
00:11:40我认为原因显而易见,因为这让他们更容易构建 Claude Code。
00:11:45因此,我们可以很公平地假设,越来越多的功能最终会被内置到 BUN 中,你也可以在自己的应用中使用它们,
00:11:59但这些功能是专为 Anthropic 和像 Claude Code 这样的 AI 智能体的需求而构建或专门优化的。
00:12:08我不确定这是否一定是坏事或问题,因为你可以选择不用,但这确实让 API 表面变得臃肿。
00:12:19它当然也占据了一些资源,一些本可以用于开发 BUN 传统部分的开发者资源,
00:12:32当然你也可以争辩说,有了 AI,生产力更高了,所以你可以同时处理更多事情,
00:12:39但这仍然是一个有趣的趋势。而且你在其他领域也能看到这种现象。
00:12:45如果你关注 BUN 的 X 账号,你可以看到他们仍然在发布性能改进等更新,
00:12:58但现在他们还推出了这个:一个允许 BUN 处理图像的 API。
00:13:09当然,你可以使用 ImageMagick 之类的工具来做到这一点。那是你可以通过 CLI 调用的工具。
00:13:21你好。所以你可以安装这样的工具,并使用它以编程方式或通过 CLI 来转换图像。
00:13:31现在,类似这样的功能突然要内置到 BUN 中了。
00:13:37同样,我不一定认为这是坏事或问题,我正在看聊天室里的评论,待会儿再回复,但再次强调,这很有趣。
00:13:49现在,这个功能也许你可以用于某些 Web 应用或 CLI,
00:13:56但对于 Claude Code 来说,这当然也是一个很有趣的功能,
00:14:01因为这些智能体不仅能生成图像,还能分析图像。
00:14:08所以让 Claude Code 能够原生调整图像大小或裁剪图像会非常有意义。
00:14:15还有更多类似的东西。我记得还有些关于 Markdown 渲染的内容。
00:14:25我想明确一点,仍然有很多新增加的功能很可能不是专门为 Claude Code 构建的。
00:14:33我也想明确一点,我很喜欢 BUN,但这仍然是他们正在采取的一个有趣方向。
00:14:40是的,我没找到,但不久前也有关于终端 Markdown 渲染的内容,以及 BUN 是如何内置该功能的。
00:14:51就是这类东西。
00:14:55因此,长话短说,我认为我们可以清楚地看到,在 Anthropic 收购 BUN 之后,它正在变成 Anthropic 的工具。
00:15:06显然它不再是一个独立的运行时了。
00:15:13相反,它只是,是的,它仍然是那个运行时。
00:15:18而且我认为,从大家能看到的来看,他们仍然在认真对待它,但它肯定也是 Anthropic 的一个工具。
00:15:26是的,很遗憾听到视频似乎又卡了。
00:15:30我们之前遇到过这个问题,不幸的是已经切换了网络,不知道是怎么回事。
00:15:36直播结束后我会调查的。我希望它很快能稳定一点。
00:15:43刚才还好转了一些。
00:15:46所以,是的,现在我看到聊天里说,我唯一高兴的原因,
00:15:53噢,看到你在用 Mac OS,这让我想起我和同事视频通话时总是卡顿,结果发现是内存不足,所以他后来关掉了一些浏览器标签页。
00:16:01噢,可能就是这个原因。
00:16:05是的,让我关掉一些浏览器标签页。也许这就是灵丹妙药。
00:16:11关掉一些浏览器标签,也许这会有所改善。非常感谢。如果这有帮助,那就太棒了。
00:16:19我唯一庆幸 BUN 存在的原因是它让 Node 发展得更快了。说得好。
00:16:26很高兴见到你,希望你一切都好,非常感谢你的工作。
00:16:33是的,归根结底,这就是我想分享的关于 BUN 的看法,我觉得这很有趣,我想看看 BUN 未来会朝哪个方向发展。
00:16:44因为我个人认为它是一个非常棒的运行时,是 Node.js 的极佳替代品。我基本上所有的项目都是用 BUN 构建的,仅仅是因为速度的提升以及好用的内置功能(如 SQLite 或 S3 客户端),这意味着更少的额外依赖,特别是在现在这种供应链攻击频发的时代,我觉得这非常有价值。
00:17:13现在只有 1 帧(FPS)了。好吧,我现在关了一堆标签页,关了一堆工具。说实话,已经没什么能关的了。
00:17:34现在除了 OBS,我几乎关掉了所有东西。
00:17:43所以也许这会有所帮助。真烦人。
00:17:50连接质量又变差了。
00:18:00看看会不会好点。
00:18:03初级开发者应该学习哪种数据库和身份验证库?Postgres 和 Better Auth 吗?
00:18:09是的,我认为 Postgres 和 Better Auth 都是不错的选择。
00:18:14为什么不直接 fork 仓库并集成他们需要的工具呢?
00:18:18你是说 Anthropic fork BUN 吗?为什么他们不 fork?我想他们收购 BUN 也是因为不想让 BUN 倒闭,而且对他们来说,拥有 BUN 团队的技术实力也是很有价值的。
00:18:34这样构建 BUN 的人就能继续开发它,因为即使有了 AI,拥有了解该工具底细的人也是非常有价值的。
00:18:50是的,我现在几乎关掉了所有的 Electron 应用。已经没有什么在运行了。
00:19:02所以现在我的系统上应该没有太多占用内存的东西了。让我看看活动监视器。
00:19:13是的,我有很多空闲内存。
00:19:37那应该没问题。现在也没有运行任何智能体。
00:19:47当你进行大量导航操作时,视频就开始卡顿死机。我的意思是,内存问题的观点非常有道理。只是我真的已经关掉了一切。
00:20:05我的系统里已经没有什么在消耗内存的东西了。
00:20:15所以这就是奇怪的地方。
00:20:22这就是奇怪的地方。
00:20:31嗯,是的,我很想——我的意思是,这当然也可能是 OBS 本身的问题。不过活动监视器显示它还不算太糟。
00:20:49不,看起来都正常。我不知道。我不知道问题出在哪里。
00:21:01为了找工作值得学习 BUN 吗?我不认为是网站的问题。
00:21:11如果是 BUN 官网导致的问题,那就太搞笑了。
00:21:17好的,让我关掉。我的意思是,这个网站我在其他直播中也打开过,希望不是它的问题。
00:21:26我的意思是,我可以做一场不演示任何内容的直播。
00:21:29但是的,我现在关掉了所有这些标签页。让我们看看吧。
00:21:38既然如此。让我把第二个屏幕上的标签页也关掉,但那里其实也没开多少东西。
00:21:57好的。我这辈子从来没有开过这么少的标签页。不,后台没有任何下载任务。
00:22:08没有。德国可以使用星链(Starlink)吗?我想是可以的。
00:22:13但网络似乎没问题。网络其实看起来很好。
00:22:17而且反正我已经切换了网络。我从本地网络切换到了手机网络,问题依然存在。
00:22:29看起来没问题。但有趣的是,OBS 显示我完全没有问题,没有丢帧,什么都没有。
00:22:39所以我在 OBS 这里的统计数据很完美。但我能看到 YouTube 上显示连接不佳。
00:22:50这很有意思。
00:22:54但我没主意了,因为我真的没有改动过这里的任何设置。你可以试着问问 AI 为什么会卡。
00:23:10我想我可以。让我们试试吧。我通过 OBS 直播很卡。
00:23:26为什么?看看 AI 有没有用。
00:23:33不,第二个屏幕应该不是问题。我一直都开着它,而且我需要它。如果关掉,我就没法看聊天信息了。
00:23:41这就是我的笔记本电脑。那是另一个我用来录屏的屏幕。
00:23:48因为有一部分。丢帧。不,我没有丢帧。零跳帧。
00:24:01是的,我不知道。
00:24:09顺便问一下,Twitch 上的问题也一样吗?
00:24:22看起来像是 YouTube 的团队代码出了点问题。
00:24:28所以,是的,我真的关闭了一切。
00:24:32它显示我的状态很完美。

Key Takeaway

Anthropic 通过收购 Bun 将其从通用的 JavaScript 运行时转变为专为 AI 智能体和 CLI 工具优化的生态系统,重点集成 WebView 和图像处理等原生 API。

Highlights

  • Anthropic 收购 Bun 后将其整合为核心工具,主要用于构建 Claude Code 等 CLI 工具。

  • Bun 具备将 TypeScript 程序编译为单文件可执行文件的功能,这在开发 Claude Code 时起到了关键作用。

  • Bun 运行时已内置 SQLite、S3 和 Redis 客户端,旨在减少 Web 服务器开发中的第三方依赖。

  • 新加入的 WebView API 使 Bun 能够启动无头浏览器,方便 AI 智能体直接进行端到端测试。

  • Bun 正在增加原生图像处理和终端 Markdown 渲染功能,专门优化 AI 智能体分析与展示信息的能力。

  • Bun 的竞争压力促使 Node.js 加快了开发迭代速度。

Timeline

直播技术故障处理

  • 直播过程中出现了明显的画质卡顿和低帧率问题。
  • 切换到手机网络并关闭多个浏览器标签页后,OBS 统计数据仍显示连接正常但 YouTube 端显示不佳。
  • 网络环境和设备内存可能不是导致视频流卡顿的唯一原因。

直播开始后画质稳定性极差,尝试通过更换网络连接和监控活动监视器来排除故障。即便在切换网络和关闭大量 Electron 应用后,视频流在导航操作时依然会出现死机现象。OBS 内部统计显示零丢帧,表明问题可能出在 YouTube 的接收端或 OBS 本身的配置。

Anthropic 对 Bun 的收购与整合

  • Bun 作为 Node.js 的高性能替代品,因其风险投资背景而面临盈利压力。
  • Anthropic 收购 Bun 的核心动机是利用其单文件可执行文件的编译功能。
  • Claude Code 作为一个单文件 CLI 工具,本质上是基于 Bun API 构建的 TypeScript 程序。

Bun 的发展方向在被 Anthropic 收购后发生了偏移。由于 Bun 能够将复杂的 TypeScript 项目打包成独立运行的二进制文件,这满足了 Claude Code 等终端工具的发布需求。虽然 Bun 继续保持与 Node.js 的高兼容性,但其重心已转向服务于母公司的 AI 产品矩阵。

内置 API 的扩张与 AI 智能体优化

  • Bun 内置了 SQLite、SQL、S3 和 Redis 客户端,降低了构建 Web 服务器的复杂性。
  • 新增的 WebView API 允许代码原生启动无头浏览器,执行类似 Playwright 的操作。
  • 这些功能旨在让 AI 智能体能够直接验证其生成的代码,实现闭环测试。

Bun 的 API 表面积正在快速膨胀,其中 WebView 等功能被认为超出了传统运行时的范畴。这些 API 的增加是为了让 Claude Code 无需依赖额外的 MCP 服务器即可操作浏览器。这种“内置化”趋势虽然会导致运行时变得臃肿,但显著提升了 AI 智能体在图像处理和自动化测试方面的生产力。

Bun 的未来定位与行业影响

  • Bun 已经从独立的通用运行时转变为 Anthropic 的专用基础设施工具。
  • 原生图像处理 API 和 Markdown 渲染功能的加入,增强了智能体分析与输出的能力。
  • Bun 的存在迫使 Node.js 提升了性能优化和功能更新的频率。

尽管 Bun 正在变成一个“专供”工具,但其团队依然在发布性能改进更新。在供应链攻击频发的背景下,使用 Bun 内置的客户端(如 SQLite 或 Better Auth)可以有效减少外部依赖。Node.js 在竞争下也展现出了更强的生命力,两者在技术特性上的博弈最终使开发者受益。

Community Posts

View all posts