Why Fennel?

Fennel in real use (Neovim, games, Lua embedding)

  • Several commenters enjoy Fennel for Neovim configs and plugins, praising pattern matching, structural decomposition, and macro power.
  • Others reverted their configs back to Lua, arguing Fennel adds complexity without enough benefit for simple configuration, especially given weaker tooling.
  • Fennel is seen as a good fit where Lua is already embedded: Love2D, Pico‑8/TIC‑80, and Lua-embeddable systems (e.g., servers with Lua scripting). Some highlight hot-reload workflows with Neovim + Conjure.
  • There’s interest in stronger typing or gradual typing for Fennel; one runtime-typed extension exists, but nothing mature for static checking yet.

Tooling, LSPs, and adoption

  • A recurring theme: niche languages often lack mature tooling (especially LSPs), which hinders broader adoption.
  • For Fennel, existing language servers are described as weaker than the mainstream Lua LSP and “Fennel-only,” making mixed Lua/Fennel projects awkward.
  • Some argue that for many niche languages, domain-focused tooling or REPL workflows matter more than LSPs.

Lua-targeting alternatives and related languages

  • Janet is mentioned frequently: liked for small personal projects and embedding, but criticized for choices like no persistent data structures and unhygienic macros without namespaces.
  • Other Lua-layer languages: MoonScript, YueScript, and ML-on-Lua projects (e.g., LunarML) are suggested for people who want different syntaxes or type systems over Lua.

Lisps: appeal vs skepticism

  • Non-fans find Lisp syntax visually noisy and “paren-heavy,” preferring C-like languages and richer parsers to serve the user.
  • Lisp fans counter that symbol counts are comparable or lower than C-like code; the real advantages cited are:
    • Homoiconicity and macros (easy code generation and DSLs).
    • REPL-centric, incremental development against a running system.
    • Structural editing (paredit-style) that manipulates code as trees, not text.
    • Uniform syntax making data and code share the same representation.
  • Multiple explanations and learning resources (SICP, HtDP, etc.) are suggested for understanding Lisp’s appeal.

Editors and “too much freedom”

  • A large subthread debates Emacs vs Neovim:
    • Some find Emacs overly fragile and time-consuming to configure, with plugin breakage and noise; they prefer Neovim’s faster, plugin-manager-centric model.
    • Others emphasize Emacs as “a Lisp REPL with a built-in editor,” capable of far more than editing code, and see its extensibility as a major strength rather than a liability.

Fennel’s positioning and design

  • Commenters note the main site’s one-line elevator pitch (Lisp syntax + Lua’s simplicity/speed/reach) should appear on the “rationale” page for clarity.
  • One critique: Fennel claims to make “different things look different” (e.g., splitting for/each), yet function calls and macros look identical, potentially undermining that goal, especially with powerful or scope-altering macros.

Miscellaneous

  • Discussion touches on how easy it is today to build new languages (interpreters, transpilers), with references to small domain-specific languages and books on implementing languages.
  • Light jokes appear about fennel (the spice), language naming trends, and “keeping other Lisps to oneself.”