尽管笔记软件领域早就充满了如 Evernote, OneNote, Joplin 等巨头, 这五六年来仍然不断地有新的竞争者出现: 从 Ulysses 到 Bear 到 Notion, 后面更是有 Roam research, Obsidian 等怪物崛起. 这些软件中的大多数我都尝试过但是又很快卸载, 因为它们都或多或少有些不完全满足我的要求, 而我还有 Evernote. 然而在 Evernote 声明自己全面转向 electron 以后, 我不得不重新思考: 笔记软件以后会怎么发展, 我该如何选择一款适合自己的, 可以长久使用的笔记软件?

取舍

虽然乐意尝鲜, 但是对我而言, 一款优秀的笔记软件必须包括一些优点:

看重的点

  1. 数据要能完全离线访问或者至少能完全备份到本地
  2. CPU占用不要太高
  3. 能方便地导出 Textbundle 或者 PDF 格式
  4. 有一个较为方便和美观的操作界面
  5. 能在苹果全家桶上运行, 如果能跨操作系统更好
  6. 支持数学公式渲染
  7. 最好是买断而非订阅制
  8. 能导入网页内容

如果以上优点都包含, 那么下面这些点我可以忽视:

不看重的点

  1. 多人协作
  2. 插入特殊类型的内容: 文件附件, 视频等

写作还是记录?

众多的笔记 app 可以被大概分为两类: 专注于写作 or 专注于记录. 专注于写作的 App 有 MWeb, Bear, Ulysses 等, 而专注于记录的有 Evernote, Notion, OneNote, Roam Research 等. 前者注重完整的写作体验, 时刻让用户感觉在写一篇完整的文章. 在这方面把体验做到极致的应该就是 Ulysses 了. 而后者则试图打破写作和其他信息收集的界限, 要混合“写”和“采”的体验. 比如 OneNote 支持涂鸦和文本块的互相叠加, 自由度极高. Notion 则直接把自己变成一个结构化的数据库, 每个节点都可以插入任意的更多节点, 而一个节点可以包含的内容类型既可以是文本, 也可以是视频或者文件. 通过打通不同的内容类型, 以 Notion 为代表的这类软件可以说真正实现了 “hyper-text 编辑”. 然而, 无论这种缝合的体验多么优秀丝滑, 由于其始终依赖 “块”(block) 编辑作为操作基本单位, 用户的输入体验和在纸上写作是截然不同的. 不过在这方面有一个例外: Craft. Craft 最初是面向 iPad 的应用, 现在发布到 Mac app store 的也是从其 iPad 版本导出的 universal binary. 由于在 iPad 上用户多采用手指来进行交互, 因此基于块的拖拽编辑体验可能是要优于基于光标选择的“剪切-粘贴”操作的.

本地还是云端?

本地优先

不像上一个话题, 这个问题的答案只有一个: 本地必备、本地优先. 本地保有数据的必要性是无论如何强调都不为过的. 抛开内容审查不可控 (wolai, 一个 Notion 的模仿者在未经允许的情况下删除用户的内容) 和分享困难 (印象笔记中国版一度禁止分享笔记公开链接) 不谈, 一个断网就可以让纯粹的 Web app 无法使用了. 在性能之外这也是我绝对无法接受 Evernote 转向 electron app 的原因之一.

云存储不是不可以有, 而是任何时候都要保证我能有一份较为及时的本地/第三方备份. 在这一点上 MWeb 做的非常优秀: 首先所有的存储都是本地的, 然后提供了一个 external mode 和一个 library mode (可以在本地或者 Cloudkit 存储方便多端同步). Craft 做的还行, 因为他们最近提供了 local workspace. Notion 则做的差强人意, 只有一个 export workspace可以用, 而且由于导出过程长, 实际上点击操作只是出发了后台的一个调用而已, 真正收到导出的包得等不少时间.

内容格式

如果采用云存储的话, 绝大多数的 Note taking app 都是采用定制的数据格式. Evernote 和 OneNote 用的都是某种类型的 XML. 而 Craft 和 Quiver 的本地数据为 json 格式. 这些数据结构都不同程度上难以导出, 因此其跨平台的能力也被限制了. 与此相反, MWeb 和 Ulysses 等这些纯粹的写作软件在这方面则简单得多: 你可以导出 md 或者 textbundle 格式. 我更喜欢 textbundle 模式, 因为它连图片资源也一起集中打包了.

原生还是 Web app?

绝大多数的笔记 app 都要面对一个跨平台使用的问题, 最直接的解决方案是使用Web app, 然后对每个平台打包一个 electron app. 然而这种打包一方面意味着没有网络的话基本上无法访问内容, 另一方面也导致了性能下降: 本质上安装一个 Web app 到本地等价于多开了几个 Chrome 进程. 能真正把 Web app 的体验和性能做到和几乎原生的地步的软件目前只有宇宙第一编辑器 VS Code 和 Typora (Typora 还差点意思). 因此, 如果有可能, 无论在哪个操作系统上, 尽量选择原生开发的 app. 这方面做的最好的是 Craft, 原生开发但是却提供了 Web 版本.

不过我比较担心, 会不会最后 Craft 和 Evernote 一样, 全面走向Web?

买断还是订阅

如果看了上面关于云端和本地存储的讨论, 那么可以猜到答案会是买断. 是, 买断制的软件作者仍然可以通过大升级来甩开老用户 (MWeb2.x 到 3.x 就这么干过), 但是起码你不会因为没有续费而用不了 2.x. 相反, 订阅制则始终给人一种脖子被扼在开发者手中的感觉: Craft 在没有开启订阅的情况下不允许用户创建本地文件. 因此如果有可能, 一定是优先选择买断制.

数学公式渲染

无论是笔记还是草稿, 经常需要渲染公式的用户一定离不开 $$$$$$. 那些不支持这个功能或者支持较弱的软件比如 Ulysses 和 Bear 则因此几乎无法使用. 而支持的软件也分支持的力度: FSNote 的mathjax 版本过低; MWeb 的markdown下划线问题问题解决的并不好; Craft 不支持快捷键直接插入行内公式, 多行公式的编辑器体验也不好. 相反, Notion 在这方面却做的相当不错.

导入内容与内容管理

一直以来使用 Evernote 几个很大原因之一就是其强大的 Web clipper. 这个插件的简化和导入效果远超其他同行. 然而最近我发现 Notion 也提供了 Safari extension 用来直接将网页内容转换成 Markdown 并导入, 而且实际效果非常不错. 与此相同的我只见过 Quiver, 然而 Quiver 已经多年不更新了, 上一个版本还是2019年发布的…… 其他软件在这个方面则做的差强人意.

All-in-One 还是 Composition, 如何选择?

在写这篇草稿之前, 我花了不少时间去尝试各个软件, 并没有得到什么明确的结果. 但是在打字的过程中答案却逐渐浮出水面: 即要有优秀便捷的写作(注意不是编辑)体验, 又要能大量管理信息的话, 最好莫过于组合使用一个纯粹关注写作的软件和一个极度丰富的内容管理工具. 我的组合是 MWeb + Notion. MWeb 的写作体验非常不错, 然而其管理内容的能力却较为薄弱. Notion 可以补充这个不足, 用来充当剪切的收件箱, 项目的短笔记和管理组织工具, 甚至也可以和他人共享编辑. Craft 因为面面俱到但是面面俱软无法深得我心: 编辑体验原生但是总是差点意思 (Code与公式的编辑和预览是分开的独立窗口); 不按月交钱不让开文件让人恼火; CPU消耗并不低; 跨平台目前还不成熟; Inline tex 支持居然要选中才能进行而不能直接识别 $$. 而 Roam research 和 Obsidian 这些激进的双相链接笔记app, 由于它们对我来说灵活性大于组织性, 也暂时不予考虑.