Maverick 的命运
我在 2019 年 12 月自己写了一个静态博客生成器,名叫 Maverick,使用它实现了我的个人博客完全自主化,一度是我最自豪的作品之一。但它现在久缺维护,似乎已经走到了生命的尽头。
想来这事很有意思。2016 年前后我开始接触个人博客,从公开的服务(简书,Medium,etc.)到自托管的博客程序(WordPress,Typecho,Hexo,etc.)统统玩了一个遍,最终停留在 Typecho 上,输出了一些内容,也写了一两个还算过得去也有人用的模板和若干插件。到 2019 年达到了一个小高潮:终于决定要自己写一个静态博客程序。
那时候我刚大四毕业,整天有无穷的精力和时间探索学习。和很多后来被证明是伟大创新的项目一样,我从自己的观察总结出发,写了面向自己需求的 Maverick。我承认,不是没有一瞬间,我希望这个项目被很多人用上,因为它真的解决了我许多需求:比如编写博客时图片引用的问题,比如对许多有用功能(RSS,搜索,图片排版等)的原生实现。事实上我也确实用它作为我的博客引擎直到今年。当 Maverick 第一版问世时,我心想:
写个静态博客生成器也不是那么难嘛。
现在再思考这句话,技术上依然是没问题的。一个静态博客生成器要做的无非是解析本地文件,生成对应的 HTML 网页罢了。可是,想写一个「大家都能用的」工具,其难度非凡。
虽然我时常对友人自夸说,Maverick 用起来可太舒服了,我觉得我是天才,只可惜没人用。后来明白,我至少搞错了两件事情。
第一,我混淆了「自己需要」和「大家需要」这两件事情。这便是技术人士想做产品的主要陷阱之一。基本功能(模板,插件)支持不全面,但却在一些偏门功能上过度设计,这让 Maverick 并算不上合格的工具。不过,对于一个非科班、没什么经验的学生来说,这些方面的问题是可以原谅,并且也是可以改进的。
第二,我沉迷在「发布」的快感中,却没有做到长期稳定的迭代与维护。毕竟一个所谓的开源项目,「发布」意味着 star,意味着热闹的评论区,意味着大量的夸赞,最重要的,意味着令人愉快的成就感;而「维护」意味着什么呢?意味着枯燥地修一个又一个的 bug,意味着没有任何背景知识的用户不着边际的反馈,甚至意味着一些没来由的批评与攻击。
上文中第二点更致命。因为它可以扩展到方方面面,其实说的就是做工作是否有长性,是否扎实。
现在回头看 Maverick 的代码设计,自然是非常糟糕。但我不会觉得羞愧,因为那就是当时的我能做到的最好。但人在进步,Maverick 却还是小孩子的模样,这是我觉得惭愧的地方。现在我忙于工作,更没有时间去维护 Maverick。我大概要归档这个项目了,让它作为我成长过程中的历史资料吧。
上周末花了些时间,重新写了这个博客的代码,业已上线。这一次一切都变得更加简约,更加面向自己,并且暂时也没有大张旗鼓放出来供大家把玩的意向。我已经认识到,开源不只是开源而已,还有面向用户与社区的责任。这个责任心不是被强加的,而是我认为一个有开源志向的作者应当具备的。
在这里 shout out to 那些多年坚持维护、更新,或成为整个数字世界基石、或成为每个长情用户心头好的项目:刚过完 30 岁生日的 VIM,可能是被侵权最多的项目 FFmpeg,最近又开始更新的 Typecho... 数不胜数,这个世界因为这些项目变得更好,hopefully,会持续变好。