Live data from Hacker News

TimL: Clojure-like Lisp dialect that runs on and compiles down to Vimscript

github.com

41–43 of 43 posts

Re: TimL: Clojure-like Lisp dialect that runs on and compiles down to Vimscript

#41
post #36
post #29

Earlier quoted context omitted.

How do Neovim and Emacs startup times compare when using Emacs 28’s native compilation of elisp? Obviously hard to compare because they don’t run the same packages but would still be interesting to see ballpark figures of setups with roughly equivalent functionality.

Are these startup times even significant enough to actually be noticeable anyway?

If people are bothered by Emacs startup times they usually just use Emacs Daemon. I let systemd start it for me at boop, for example.

Re: TimL: Clojure-like Lisp dialect that runs on and compiles down to Vimscript

#42
post #30

Earlier quoted context omitted.

Some people like Clojure syntax rather than S-expressions. Personally I don't get it, having arbitrary lists that require square instead of round brackets, arbitrary lists where pairs which belong together aren't grouped, and arbitrary lists where commas are interpreted as optional whitespace gives me a headache; but to each his own.

Clojure still uses S expressions, it just has more than just lists available. Square brackets don't make lists, they make vectors. Commas are always optional. I don't know what you mean by "arbitrary lists where pairs which belong together aren't grouped", but maybe you mean maps or sets, which are also not lists but a different data type. user=> (type []) clojure.lang.PersistentVector user=> (type '()) ; gotta quote…

The example that most typifies my issues with Clojure syntax is let-binding. In Lisp it's very clearly structured:

  (let ((foo bar)
        baz
        (quux frob))
    ...)
In Clojure not only are the bindings unstructured, they are thrown into a vector. Not a list, not a map (for which Clojure has dedicated syntax, mind), a vector.

  (let [foo bar baz quux frob]
    ...)
And that is one of the only two places I know of where Clojure arbitrarily uses a vector when it uses lists everywhere else:

  (defn foo [bar] ...)
Instead of either of:

  (defn foo (bar) ...)
  [defn foo [bar] ...]

Re: TimL: Clojure-like Lisp dialect that runs on and compiles down to Vimscript

#43
post #34

Earlier quoted context omitted.

I've said this before but I think fennel is one of the most impressive languages around. Lua has a good reputation but I've used it professionally and find it one of the more practically painful languages to work in. Apparently fennel's author agrees, because fennel is laser-focused on correcting exactly its worst problems. AND/BUT one of fennel's impressive things is that it sticks rigidly to lua runtime semantics.…

The same author also wrote Janet, which is also a nice language from what I’ve played around with. Especially the idea of forgoing Regex entirely and going with PEGs, as well as having “defs” inside functions bind local variables instead of “let” (though let is also idiomatic), very interesting. Small languages like that give a very nice feeling of learning them in a single day.

I looked into that language for exactly that reason and like it quite a lot. It's very good for scripting, though that is a crowded niche these days. It's also not much harder to integrate than lua, so I've used it a few times for an integrated scripting language when I didn't actually need a teeny tiny runtime.

And yeah you end up really missing PEGs in other languages. There are libraries, but having it built in is another thing especially with how well they fit into s-exp syntax.

Post reply on HN