做为一个程序员,有两个东西是我们必需的.一个是搜索,另一个则是记录.
当我们遇到不会或解决不了的困难点时,我们会第一时间使用搜索(如Google)来寻找解决方案,而当我们积累与在技术上有任何心得时,我们会记录它.
因而,寻找一个合适的笔记软件,对程序员非常重要.
一)
程序员需要的笔记软件需要什么样的特性?
基于我个人的想法,我认为一个适合程序员的笔记软件,至少要满足以下要素:
支持Markdown
也许你还记得使用Word时费劲心思排版的经历,至少我对调整大学毕业论文格式的经历仍记忆犹深,完成论文相当部分时间并不是花在写出更好的内容上,而是排出符合规定的版式要求上.
幸好,对于程序员来说,有了更简洁专注的Markdown格式,Markdown能让我们更专注于内容而非格式上
所以,一个好的适合程序员的笔记软件,最优先的需要满足Markdown格式
易于搜索
很容易理解吧,程序员可能会记录成千上万的笔记, 如果没有搜索能力,那是不可想像的
多设备同步
没有哪个程序员只使用一个设备. 我们经常在公司设备,个人家庭设备,手机等不同设备上切换.
那一个好的笔记软件要支持不同设备的同步,这样我们能随时随地的访问到这些信息
易于备份与恢复
没有任何群体比程序员更在意备份与恢复这件事. 我们非常清楚数据的重要性及易于丢失性. 我们在设计软件架构时,备份与恢复永远是必不可少的架构特性.
所以,我们记录的那些笔记,我们希望能随时随地的备份,不用担心出现意外情况导致的数据丢失
可靠性
我们清楚,没有永远免费的服务. 那些承诺免费的东西很可能会变更承诺或提供服务的软件商不再存在
这意味着那些开源的,标准的存储方式的笔记软件,我们会更喜欢. 因为这意味着稳定与可靠.
二)
事实上,很难有完美的解决方案, 至少这些年我也一直在尝试与使用不同的方式来尽量满足上述要求. 总会有一二个点你发现难以满足.
做为程序员以来,我先后使用过以下的方案
Evernote/印象笔记
很多年前,当你在互联网上搜索笔记软件时,很可能你最主要能搜索到的就是Evernote
这款软件了
这也是我最先使用的笔记软件. 事实上它是一款商业的软件, 对个人提供有限度的免费.
但是,它不支持Markdown,而后又变更了免费服务范围,限制只支持同步2台设备等,做为程序员,把它做为最主要的笔记软件已经无法满足了.
有道云笔记
在Evernote免费服务变更范围后,我印象中国内的一些软件,如有道云笔记,就趁机推出,无论是从其免费范围还是从同步的网络速度上都非常占优势.
有道云笔记也对Markdown提供了支持.
但我个人认为在有道云笔记上编写Markdown并不是个很好的体验,甚至非常糟糕.
Typora iCloud
后续个人电脑从Windows切换到了MacOS, 又基于对Markdown的偏爱, 又希望能同步. 就使用上了这个搭配.
使用Typora,是因为我认为它是MacOS上非常优秀的Markdown软件,在它收费后我甚至购买了它的收费版本; 而iCloud则是苹果设备自带的同步能力,使用它最方便.
这个搭建并不易于搜索,Typora虽然编写Markdown非常优秀,但搜索并非它的强项,它也很难对所有笔记进行集中式的展现
备忘录 iCloud
相当长的一段时间,由于一直没有找到满意的Markdown相关的笔记软件, 我把一些与技术不相关的笔记记录在苹果自带的备忘录
中
至少解决了同步与多设备支持
Notion
如果你从没听说过或使用过Notion这个在线笔记服务,那我非常建议你尝试与使用它.
它非常强大,光是笔记类型除了支持页面Page,还有数据Database,todoList等非常多丰富的类型,它甚至还有REST API去操作你的笔记内容,也支持Markdown
我使用过它一段时间,但考虑到国内访问这个服务的速度与不可靠性,再加上它并不是开源或标准的存储方案,把所有东西放在它上面,会有供应商绑定的问题.
如果后续它变更了服务策略,这会使得迁移笔记非常麻烦与成本非常高.
三)
当然,除了上述这些,我也调研与使用过其它一些非常多的笔记软件.
比如为知笔记,支持Markdown及自托管的开源Joplin,甚至在与一些程序员朋友讨论时,基于docusaurus来做一个在线的笔记网站
说明
: docusaurus是Facebook开源的一款以专注于内容的建站工具,以支持Markdown为主,特别适合你基于它来构建一个开源产品的介绍以及文档网站. https://myddd.org 官网就是使用它构建
但它们都各有问题,这些问题使得它们难以较好的满足一个程序员的笔记软件
四)
前段时间,发现了Obsidian这个笔记软件,发现它具有相当多优点,令我觉得挺满意的.
优点
原生支持Markdown,体验较佳
与有道云,Notion等类似只是支持Markdown不同,Obsidian只支持Markdown方式记录,并且其Markdown体验与Typora非常类似,所见所得.
光是这一点,就非常适合程序员
以文件进行存储,支持借助iCloud等方式同步
使用Obsidian记录的所有笔记,都是以markdown格式存储在本地文件系统. 而如果你需要同步能力, 那你可以借助iCloud或OneNote等第三方同步的能力,进行及时的备份与同步
这意味着使用Obsidian, 无须担心任何供应商绑定问题.
搜索能力强,UI美观,插件支持
非常方便基于内容与标题进行搜索,而且UI也比较简洁美观(个人观点)
它也有插件,比如主题,你可以切换喜爱的不同主题
缺点
非开源软件
它并不是一个开源的软件,但考虑到它是基于本地文件系统 Markdown的方式实现的,使用它你不需要担心供应商绑定问题.
不支持Web
有桌面版本以及移动App, 但不能Web在线使用.
五)
如我所言,寻找一个完美的适合程序员的软件并不容易,甚至可能并不存在.
对于笔记软件,各人各有偏好,我的选择与喜好不意味着否定其它软件的优点及优秀性.
所谓萝卜青菜,各有所爱,如是而已.