为什么我为这个博客选择 Lua • AndreGarzia.com

主要观点:

  • 曾用基于 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 虽不无聊但能确保系统简单易维护。
阅读 8
0 条评论