<!-- title: 四大老工具，海外全换了继任者 -->
<!-- domain: new-tools -->

先说个扎心的事实：你电脑里的 Git 用了21年没换过，LaTeX 40多年了，Jupyter 也十多岁了。它们当然还能用，但海外开发者社区这几年悄悄完成了一轮“换代”——四件新工具已经把老三件最疼的点一个个拔掉了，而国内中文教程圈对它们的覆盖还停留在零星几篇翻译稿。今天这四件都是开源免费货，不绑订阅、不用科学上网就能本地跑，属于典型的“工具就在那里，90%的人不知道”型信息差。每件我都给到官网、上手命令和适合谁，看完就能动手。

## 一、Jujutsu：Git 没坏，但jj让你回不去了

**官网**：<https://jj-vcs.github.io/jj/>　**价格**：免费开源

先回答最关键的问题：**这不是让你迁移仓库**。Jujutsu（简称 jj）由谷歌工程师 Martin von Zweigbergk 主导开发，用 Rust 写的，设计目标就是“直接操作你现有的 Git 仓库”。进入项目目录敲一句 `jj git init --colocate`，它就和 `.git` 共存了，远程照旧推 GitHub，同事用 Git 不受任何影响——这一点对国内大量用 GitLab 私服和 Gitee 的团队极其友好。

它治的是 Git 三个经典痛点：

1. **改一半不敢动**。Git 里你写了一半的脏工作区是“不存在”的，切分支、rebase 都要先 stash 一把梭。jj 的核心设计是**工作副本本身就是一个提交**，每敲一条命令自动快照存档。你随时 `jj new` 开新坑，之前的半成品永远躺在历史里，`jj log` 一眼能看到。
2. **冲突是二等公民**。Git 遇到冲突会把仓库卡死逼你当场解决；jj 把冲突状态当成一等公民存进提交里，你可以先提交一个带冲突的变更，逛吃完午饭再 `jj new` 出来慢慢解——工作流上这是质变。
3. **手滑没后悔药**。jj 有操作级别的 `jj undo`，不是恢复某个文件，是把上一步版本操作整个回滚。

日常最高频的三个命令：`jj describe -m "说明"` 写提交信息、`jj split` 把一坨改动按文件拆成多个提交（code review 前神器）、`jj squash` 把改动并进上一个提交。习惯了“先干活后整理历史”的思路之后，很多人表示回不去了。

**国内对比**：国内开发者桌面端主流还是 TortoiseGit、Fork、SourceTree 这类 GUI，解决的是“命令行记不住”，但没解决“历史不可逆、冲突卡死”这两个模型级问题。jj 是少数能在不改变团队协作方式的前提下个人先上车的新一代 VCS。

**适合谁**：天天和 Git 分支搏斗的后端/客户端工程师、维护多分支发布节奏的运维，以及所有被 rebase 搞出过冷汗的人。

```mermaid
flowchart TD
    S["jj git init 加 colocate"] --> T["继续用现有远程仓库"]
    T --> U["正常写码随手改"]
    U --> V["jj 自动快照存档"]
    V --> W{"这坨改动怎么处理"}
    W -->|全要| X["jj describe 写说明"]
    W -->|只要一半| Y["jj split 挑文件"]
    X --> Z["jj new 开新坑"]
    Y --> Z
    Z --> AA["jj git push 上传"]
    U --> AB["手滑写崩了"]
    AB --> AC["jj undo 整步回滚"]
```

## 二、Typst：LaTeX 的编译时间，从泡面变泡茶

**官网**：<https://typst.app>　**价格**：编译器开源免费；网页版有免费档，协作等高级功能收费，具体以官网为准

写论文的人对 LaTeX 的恨是具体的：TeX Live 装几个 G、改一个标点重编译等半天、报错信息像天书。Typst 是用 Rust 重写的一整套排版系统，官网口号就是“一种新的文档排版方式”，最直观的体验差异是**编译速度从秒级/分钟级降到毫秒级**，配合 `typst watch` 命令，保存即出稿，边写边看，写作体验直接对齐了写代码。

但真正让它可能取代 LaTeX 的是**可编程性**。它是一门正经语言：`#let` 定义变量、`#for` 写循环、`#set` 和 `#show` 定制全局样式。也就是说，格式不再是一堆反斜杠咒语，而是可以封装、复用、传参的函数。数学公式语法也比 LaTeX 干净，`$x^2 + y^2 = z^2$` 这种直接写。

模板生态在 **Typst Universe**（官方包仓库）里已经初具规模，论文、海报、简历、幻灯片模板都能搜到；中文用户需要注意配一下中文字体（社区通用做法是 `#set text(font: "Noto Serif CJK SC")` 这类声明，GitHub 的 typst/typst 仓库讨论区有现成配置可抄）。

**国内对比**：国内学术圈模板资产几乎全押在 LaTeX 上，导师给的是 `.cls` 文件，短期换不掉，这是事实。但三个场景 Typst 现在就能用：**课程报告/实验报告**（没人管你用什么排）、**简历**（毫秒级出 PDF，改一版投一个岗位）、**技术文档和内部规范**（比 Markdown 排版强一个量级，比 Word 可版本管理）。另外 Typst.app 网页版对 Overleaf 也是个备用方案。

**适合谁**：研究生、写技术方案的基础设施工程师、需要批量产出格式统一文档的任何人。

## 三、Marimo：Jupyter 的“隐形状态病”，终于有人治了

**官网**：<https://marimo.io>　**源码**：<https://github.com/marimo-team/marimo>　**价格**：核心开源免费，云端托管服务按需付费，以官网为准

每个用过 Jupyter 的人都中过这个招： Notebook 从上到下跑了一遍，中间某格改了变量，下面全变成陈年旧值，`df` 到底是哪个版本没人说得清，换个同事的机器直接跑不通。这不是使用不当，是 Notebook 模型的原生缺陷——**单元格顺序和依赖顺序是两回事**。

Marimo 的解法很硬核：把 Notebook 建成**响应式依赖图**。你改了某个单元格，它自动重跑所有依赖它的下游单元格、清掉失效输出，从头到尾保证“你现在看到的，就是当前代码算出来的”。想瞒也瞒不住——变量重名、循环依赖它会直接报错拦下，等于给数据实验加了一个编译器。

另外三个特性戳中工程化痛点：

- **Notebook 就是 `.py` 文件**。不再是恼人的 `.ipynb` JSON，git diff 干净可读，能进 code review，还能直接 `python your_notebook.py` 当普通脚本跑——数据管道和实验笔记从此是一个东西。
- **`marimo run` 一键变应用**。它内置滑块、下拉框、按钮、数据帧筛选器等 UI 元素，加上参数，笔记本立刻变成一个可以发给不会写代码的同事用的网页小工具。
- **能导出成纯静态网页在浏览器里跑**（Wasm 模式），演示成本接近零。新版还内置了 SQL 单元格，数据查询也能进依赖图。

上手只要两条命令：`pip install marimo`，然后 `marimo edit`。

**国内对比**：国内数据岗的主流仍是 Jupyter 加各家云厂商的 Notebook 发行版，解决的是“算力和环境”，但都没动“状态错乱”这个病根本身。Marimo 是目前把“实验代码工程化”走得最干净的方案，而且存储格式对 Git 友好，正好补上国内团队“模型实验没法 review”的空白。

**适合谁**：算法工程师、数据分析、教机器学习的老师（学生交作业再也不是一坨跑不通的输出）。

## 四、Val Town：跑段小代码，不该先实名绑卡开云账号

**官网**：<https://www.val.town>　**价格**：有免费档，超出额度转付费，具体以官网为准

前三件是“替换”，这件是“从零到一”——它填的是一个国内空白：**个人随手跑代码的地方**。

想在国内云上跑个几十行的定时脚本，路径通常是：注册云账号、实名认证、开通函数计算、理解触发器和权限体系、担心账单。而 Val Town 把这整条流程压成了：打开浏览器，新建一个 val，写代码，保存。完事。

它本质是一个“社交化的 Serverless”：每段 TypeScript/JavaScript 代码片段（val）自动获得一个 URL。四种玩法覆盖了绝大多数个人自动化场景：

- **HTTP val**：存盘即部署，立刻有一个公网 API 可调，写个 webhook 接收器只要五行代码；
- **Cron val**：定时代码，抓汇率、盯价格、爬榜单、每天给自己推日报；
- **Email val**：收到邮件触发代码，自动解析附件回执；
- **内置 SQLite**：每个账号自带数据库，小工具连数据库都不用外接。

更妙的是它内置了 AI 助手 Townie，用自然语言描述“帮我写个每小时抓 Hacker News 头条存进 SQLite 的 val”，它直接生成可跑代码。对不想在前端配置上耗着的独立开发者来说，这是把“想法到上线”的距离压到了分钟级。

**国内对比**：国内云函数（阿里云 FC、腾讯云 SCF）能力强、能扛生产，但门槛决定了没人拿它写“跑着玩”的脚本；绑定自定义域名还涉及备案。Val Town 定位就是个人级快速验证——要注意它的服务器在海外，**别拿它处理敏感数据，也别指望低延迟**，它就是个 scratchpad 加轻量后端。

**适合谁**：独立开发者、出海做小产品的、想给工作流加自动化但懒得开云账号的所有人。

## 信息差总结

| 你以为的 | 实际情况 |
|---|---|
| Git 是唯一选择，痛点只能忍 | jj 可以直接操作现有 Git 仓库，个人先上车，团队零迁移 |
| 学术排版只有 LaTeX，装环境等半天 | Typst 毫秒级编译，样式可以当函数写，报告/简历场景即刻可用 |
| Jupyter 是数据分析标配，状态乱是常态 | Marimo 用响应式图根治，且笔记本就是可 review 的 .py 文件 |
| 跑段小脚本必须开云函数走实名流程 | Val Town 浏览器即写即部署，HTTP/定时/邮件/SQLite 四件套全内置 |

## 行动指南

1. **今晚就试 jj（15分钟）**：`brew install jj`（或 `cargo install jj-cli`，Windows 用户去 release 页下预编译包），进一个不重要的项目执行 `jj git init --colocate`，敲 `jj log` 看看工作副本变成提交长什么样，再试试 `jj describe` 和 `jj undo`。原 Git 工作流完全不受影响。
2. **周末试 Typst（30分钟）**：直接打开 typst.app 网页版不用装任何东西；想本地化就 `cargo install typst-cli`，找一个 Universe 里的报告模板改内容，体验 `typst watch` 的秒出稿。
3. **下一个实验用 Marimo（10分钟）**：`pip install marimo && marimo edit`，把手头一个旧 Notebook 的逻辑搬进去，故意改一个上游单元格，观察下游自动重跑——这一眼值回票价。
4. **本周给 Val Town 一个真实任务**：注册后让 Townie 帮你写一个 Cron val，比如每天早上把某个网页的变动抓下来存 SQLite 再发到自己邮箱。记住：不涉敏感数据。

## 参考来源

1. Jujutsu 官方文档与教程：<https://jj-vcs.github.io/jj/>
2. Typst 官网（在线编辑器与文档）：<https://typst.app>
3. marimo 官网：<https://marimo.io>
4. marimo 开源仓库：<https://github.com/marimo-team/marimo>
5. Val Town 官网：<https://www.val.town>

---
> 本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵**爱卫生**（微信ID： gprshome201101）维护。
> 聚焦5G/6G核心网、3GPP标准、AI工具实战。知识星球「51学通信」提供深度技术答疑和行业洞察。

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
