主要观点:
- 曾用基于 Racket 的栈运行博客,后意识到该设置不利,因静态生成器试图模拟动态网站,存在诸多摩擦。
- 决定重写博客为更简单系统时面临选择栈的困境,虽 Javascript 常用但不适合,与朋友交流发现很多人维护自己的博客系统多年后面临挑战,如语言栈更新快于代码库。
- Lua 是一种美妙且灵活的语言,进化缓慢,与 Javascript 相比变化小,仅需 C89 编译器即可启动,博客需求简单时能轻松处理。
- 博客使用 cgi-bin 脚本运行,是动态网站,用 SQLite 数据库存储数据,每个请求一个进程,虽 NodeJS 可处理更多请求但目前需求无需。
- 因选择 Lua 依赖少,能将整个博客系统记在脑中,可确保未来十年或二十年无需太多更改就能运行,无需追逐新框架,保持简单。
关键信息:
- 原博客栈基于 Racket 及 Pollen 等,后决定重写为更简单系统。
- Lua 5.1 2006 年推出,5.4 2020 年推出,变化缓慢。
- 博客用 cgi-bin 脚本、SQLite 数据库和 Mustache 模板,每个请求一个进程。
- 选择 Lua 是因其小巧、易理解、可自建引擎、资源需求少、易与第三方库接口。
重要细节:
- 朋友的 Ruby 2.0 博客系统维护困难。
- 浏览器对 1995 年网页兼容性好,但 NodeJS 生态中依赖易过时。
- 作者自己实现了一些功能,如 Micropub 和 IndieAuth 等,目前在努力实现 WebMentions。
- 作者博客用 29 个 Luarocks 库,不仅用于博客还有其他项目。
- 作者从 2001 年开始博客,多次选择不当导致内容无法随软件更新,而从 JS 到 Racket 再到 Lua 逐渐简化。
- 强调选择“无聊”语言的智慧,如 Lua 虽不无聊但能确保系统简单易维护。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。