Fennel: A Practical Lisp
81–90 of 91 posts
Re: Fennel: A Practical Lisp
#82I've been considering rewriting a bunch of my stuff in Fennel since it has two other advantages the article doesn't point out: both Lua and Fennel are _very_ stable and unlikely to go through major changes over, say, the next five years or so. That kind of thing also has a lot of value when you only want to write something once.
Agreed, stability is a big plus. I recently decided to take the plunge and start learning Common Lisp, and now it's my favorite language despite some warts. Being an ANSI standard with multiple cooperative implementations, it's unlikely to change any time soon.
Re: Fennel: A Practical Lisp
#83Earlier quoted context omitted.
I have plenty of reasons to move away from Windows, and also plenty of reasons to stay. :) But I think it's overall a net-negative that there is no simple way to use LuaRocks on Windows. I don't believe in gatekeeping, especially when so many programmers still begin their journey on Windows.
It’s not gatekeeping. Maintaining for Windows is a huge cost to damn near everyone involved.
Re: Fennel: A Practical Lisp
#84Earlier quoted context omitted.
Not anymore! If you use Neovim, you can use Conjure: https://conjure.fun/
That looks pretty cool. When I want to fiddle with things, might even use that to replace my setup around vim-slime + other minor plugins https://gist.github.com/mhitza/a00d7900571e9f13bac2bbf4a203d... (example setup for Guile, but I use the same thing for Chicken). Hopefully it's not Neovim exclusive!
Conjure itself is definitely Neovim-exclusive and heavily uses Neovim Lua APIs.
However I think several of the REPL "server" implementations use various independent protocols. Clojure uses nREPL, Common Lisp uses SWANK, etc. So maybe some of that logic (or even the Lua code) can be reused and ported to other editors.
As much as I love Jupyter, the system of starting and connecting to kernels is kind of a pain, and I believe implementing a proper Jupyter client is nontrivial (and often involves calling out to the reference implementation in Python). It is an "N+1" tool that solves the "NxM problem" (like LSP, DAP, and Tree Sitter), but it doesn't have the same adoption as those other tools.
Re: Fennel: A Practical Lisp
#85Re: Fennel: A Practical Lisp
#86Fennel is really cool, and the fact that it builds on Lua—an already-popular language—is a huge win; Fennel gets access to the entire Lua ecosystem. Importantly, Lua is pretty easy to embed in native applications. I haven’t found a Lisp or Scheme as easily-embeddable as Lua(+Fennel). It’s also a good drop-in replacement for Lua. I write my Hammerspoon config in Fennel, and hopefully my Neovim config soon as well.
Janet is surprisingly similar to s7 in many ways. I've been keeping my eyes on it as well, I sure hope it continues! Schemes are so flexible that moving from one to another is just not that hard.
Re: Fennel: A Practical Lisp
#87Fennel is really cool, and the fact that it builds on Lua—an already-popular language—is a huge win; Fennel gets access to the entire Lua ecosystem. Importantly, Lua is pretty easy to embed in native applications. I haven’t found a Lisp or Scheme as easily-embeddable as Lua(+Fennel). It’s also a good drop-in replacement for Lua. I write my Hammerspoon config in Fennel, and hopefully my Neovim config soon as well.
s7 Scheme is as easy to embed as Lua, you might like it. I used it for Scheme for Max and Scheme for Pd and it's been wonderful - it was the easiest to embed of a bunch of lisps I tried. It's not well known because it came out of the computer music world, but it has also been used in games and other media tools. Janet is surprisingly similar to s7 in many ways. I've been keeping my eyes on it as well, I sure hope it…
Re: Fennel: A Practical Lisp
#88I've been considering rewriting a bunch of my stuff in Fennel since it has two other advantages the article doesn't point out: both Lua and Fennel are _very_ stable and unlikely to go through major changes over, say, the next five years or so. That kind of thing also has a lot of value when you only want to write something once.
That's a very good point. To add: stability and simplicity are choices. Compare Lua to JS for example which started out similarly but Lua was kept simple and stable, while JS introduced massive churn and tooling complexity, much of it being unnecessary in my eyes. I don't use Lua anymore but it has a special place in my heart. I started learning it to use Love2d and then got my first job as a developer out of sheer l…
If you have not tried Elixir I would say it also has these qualities. (In its own way.) It is very pleasant to use.
Re: Fennel: A Practical Lisp
#89I have an Objective-C/Cocoa project that uses Javascript as it’s embedded language. That’s because the bridge is right there and makes interacting with Objective-C objects trivial. That said I dislike JS as a language and the environment is restrictive. The only way to support debugging is console messages or through Safari web inspector. I’d love to do better. How would something like Fennel work in this context as…
Re: Fennel: A Practical Lisp
#90I have an Objective-C/Cocoa project that uses Javascript as it’s embedded language. That’s because the bridge is right there and makes interacting with Objective-C objects trivial. That said I dislike JS as a language and the environment is restrictive. The only way to support debugging is console messages or through Safari web inspector. I’d love to do better. How would something like Fennel work in this context as…
You could have a look at Hammerspoon as an example of a Cocoa app that embeds/bridges to Lua.