Live data from Hacker News

Fennel: A Practical Lisp

mattroelle.com

71–80 of 91 posts

Re: Fennel: A Practical Lisp

#71
post #41
post #22

I'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…

> To add: stability and simplicity are choices.

I thought Lua constantly broke compatibility between releases. Several posts about this on HN

Re: Fennel: A Practical Lisp

#72
post #14

Earlier quoted context omitted.

I didn't realize the author of Janet was the author of Fennel, thanks for making the connection.

Yup, same author! Although to my knowledge Calvin has mostly stepped away from the Fennel project at this point. It is primarily maintained by the same dev that made Clojure's Leiningen, technomancy.

I got nothing but respect for technomancy.

Re: Fennel: A Practical Lisp

#73

Side question for all of you who are saying “the Lua language is very stable”: do you mean you're staying on Lua 5.1/5.2? If so, is this driven by LuaJIT essentially freezing everything in place by grabbing so many users and libraries off the PUC-Rio implementation? If not, what counts as stable to you? Lua 5.3 and 5.4 both have dialect incompatibilities with prior versions.

I consider Lua 5.1/5.3/5.4 to be roughly their own language. Somewhat akin to a Python2 vs Python3. Completely manageable transition if you want, but best to stick to an implementation if you can. Within a platform, there are seemingly only ever bug fixes. NeoVim[0] had a few words on this topic. 0: https://github.com/neovim/neovim/wiki/FAQ#why-lua-51-instead...

For anyone who doesn't want to follow the link, the practical gist in that case is indeed that LuaJIT wins and they don't care about later Luas. (Edited somewhat for wording post facto.)

Re: Fennel: A Practical Lisp

#74
I 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 a replacement for JS & the bridge?

Re: Fennel: A Practical Lisp

#75

What kind of possibilities are there for Lua on android and ios app development? Any experiences there?

Love2d, Pico-8, Solar2d (formerly Corona), Cocos2d, Raylib, Defold, Godot to name a few. Here's a few more with a break down[1]

[1]: https://gamefromscratch.com/lua-game-engines/

Re: Fennel: A Practical Lisp

#77
post #42
post #41

Earlier quoted context omitted.

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…

> 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. Anything you wrote in JS twenty years ago probably still works. Tooling has changed, but none of that's an official part of the JS language. The language has only some added features that you can opt to not use. If you're com…

You’re right, the comparison is a bit unfair.

And there are examples in the JS ecosystem that prove me wrong to some extent like htmx, which is a small, simple library written in a straight forward style.

But it’s not entirely unfair either. Reading code is an important part of programming. Integration with libraries often too. You can’t just isolate yourself from churn that easily when everyone else doesn’t. Breaking changes, versioning issues, deprecation etc. happen regardless.

Re: Fennel: A Practical Lisp

#78
post #71
post #41

Earlier quoted context omitted.

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…

> To add: stability and simplicity are choices. I thought Lua constantly broke compatibility between releases. Several posts about this on HN

Thank you for pointing this out. I haven’t touched Lua since a decade and assumed it stayed simple and stable as GP was implying. But the general point and the other examples are still valid IMO.

Re: Fennel: A Practical Lisp

#79

I love Lua and the Lua community, but as a native Windows user, it's historically been a nightmare to use. To this day, I have never gotten LuaRocks to work reliably on Windows. This is very different than Node + NPM, which you can get set up and going in <5 minutes.

I've had issues with LuaRocks on pretty much all platforms. Some libs work fine (at least those without native deps) but the Luarocks native builds mostly lean on handcrafted makefiles. They usually come with hardcoded paths for libraries which is extremely fragile if you are using some other flavor of *nix than the maintainer.

If you need a solid library ecosystem Lua just isn't the best choice.

Re: Fennel: A Practical Lisp

#80
Fennel/Lua was the best option few years ago when I wanted to embed a lispy scripting language in another app. All of the alternatives failed on requirements like not having any global state, ability to replace memory allocators, proper MSVC support and so on.
Post reply on HN