我点开那份发布公告。白屏。等了四秒,第五秒我已经在干别的了。
JupyterGIS 0.16 的公告,一个用地图工具做的故事地图,notebook 端出来的。递归得挺漂亮,这点我承认——自己的东西发布自己,梗是对的。
关掉这页之后我在想另一件事。
为什么内容格式每换一次代,第一个被搬上去的,总是最不该搬的那类东西。
博客搬进 notebook,文档搬进 notebook,公告也搬进 notebook。这个剧本我看过。上一版叫 wiki,再上一版叫 CMS,现在换了个"故事地图"的壳。换皮不换骨。
慢不是玄学,是笔账
评论区有人说加载慢,问以后会不会改善。
这个问题的方向就不太对。
markdown 是一段文本,浏览器拿过来排版,两毫秒的事。notebook 是一个 app——前端 runtime、一层内核、一堆序列化的输出,再挂几个 chunk。你不是在打开一份文档,你是在启动一个程序。程序启动要多久,你就得等多久。
这不是优化问题。文档换成应用,这笔钱就借出去了,以后还得还。快一点可以,快成文本那样,不行。差价永远在。
有评论提醒移动端用户,这玩意儿跑流量快。太正常了。一篇纯文本博客读完几百 KB,一个带地图 runtime 的页面读完,自己看账单。
我在地铁上看技术文章的次数,比在工位多。这不是什么特殊爱好,这是常态。一个在 4G 上要转圈的内容格式,等于砍掉一半读者——砍掉的还是最有耐心的那一半。
"以后不要 markdown 博客了"
评论区有人看完这种 notebook,说觉得博客可以不要了。
这句我不同意,而且不同意得比较硬。
markdown 能活到今天,不是因为好看,是因为它是少数能同时过几关的格式。它能 grep:
$ grep -r "回滚步骤" ./blog/
./blog/2024/rollback.md:12: 先摘流量,再回滚
它能 diff。它能 curl。它离线能开。三年后你换平台、换公司、换电脑,那堆 .md 还在。
notebook 这几关一关都过不去。你想找自己三年前写过的一段话,先看看能不能搜到那个 cell 再说。你想知道谁哪天改了哪句,diff 出来是一坨图片和输出。
一个不能 diff 的文档系统,在团队手里就是定时炸弹。改错了没人看得见。
这不是纸面上的缺点。我接过的无数次这种电话里,有一类特别典型:某个内部知识库,某次迁移,格式一换,链接全断,历史全丢。半夜有人来问"那条 runbook 在哪",没人答得上。那次丢的不是一场大促,是三年攒下的东西。值班的冤种还是那几张老面孔。
扯远了,回来说公告。
我不认为维护者做错了。用自己造的工具发布自己,这是最好的 dogfooding,比写十页营销稿管用。我只是不觉得这个模式该被推广成"内容平台的未来"。两码事。
滚动叙事,也是个老坑
还有评论说,认同为地图做图形语法的方向,但不希望展示方式依赖滚动。
我站这边。
滚动叙事这套,2014 年那波数据新闻就火过一轮,后来每家都做过一个。做出来好看,看完没人看第二遍。因为它把"读"变成了"操作"——读者得跟着你的节奏走,不能跳、不能复制、不能扫一眼。地图尤其惨,我就想看某个具体位置,你得先带我飞一遍全球。
图形语法这块我是真认同。地图这东西到今天没有一门像样的声明式写法,画个专题图要进 GUI 点半天,点出来的还没法进版本控制。这个方向值得做。值得做的是那门语法,不是那个滚动的壳。
名字和链接的命
再插一件我觉得比加载速度更该早处理的事。
评论区有人提醒:ESRI 已经为非常相似的产品注册了相关术语的商标,建议考虑换个名字。这个提醒是善意的,也及时。
我不聊商标法,我聊链接。
内容平台的命名不是品牌问题,是链接的寿命问题。术语一旦被占,将来就得改名;改名就得改路径;改路径,我书签里那些东西全 404。这不是臆测,这是每次更名之后必然发生的事,见过好几轮了。今天存的那个地址,三年后打开是个空页。
命名应该跟 runbook 一个规矩:起草归谁都行,签字归人。
反过来给自己一刀
写到这里,我得承认一件事:我对"内容都该是 markdown"这个立场,也是偏的。
有的东西天生就该是个 app。交互式地图、能跑的实验、带参数的图表——这些塞进 markdown 里,等于把活物做成标本。JupyterGIS 做这一类内容是对的。它不是拿来做公告的。
所以真问题不是"notebook 好不好",是"你把哪一类内容搬了上去"。公告、changelog、发布说明,这类东西的要求就四条:快、能被搜到、能被引用、能活很久。它们要的是文本的命。把它们装进 application 里,等于拿跑车运砖头——能运,但每一趟的油钱和修车钱都得你付。
评论区还有人在问能不能跟 Drupal 或者别的 CMS 集成,也有人说自己夏天用 Wagtail 搭过类似的东西,没发布,但觉得可行。
这两个方向反而是我最看好的。别自己造一个内容平台——内容平台已经够多了,多到每个团队都有三个。把地图嵌进已有的 CMS 里,让它当一个组件,别当整栋房子。
本期教训:挑内容格式的时候先问一句——这东西在别人的 4G 手机上、在三年后某个陌生搜索引擎里、在一个只会 curl 的脚本手里,还能不能打开。三关都能过,用;有一关过不去,别把要紧的东西放进去。