5 ms·
And, oddly, they chose to do their own Scheme implementation for it. Not that I'm against Scheme in particular, but a lot of other people justifiably seem to be
by _7tgr 2y ago
And, oddly, they chose to do their own Scheme implementation for it. Not that I'm against Scheme in particular, but a lot of other people justifiably seem to be. It doesn't have the speed or learn-it-in-10-minutes of Lua (nvim) or the historical excuse of Elisp/Vimscript (emacs/vim) or the ecosystem of Typescript (vscode). Strange choice.
- ulbu 2y agoscheme is a group of languages, it doesn’t have its speed. some implementations are very quick. and quick-to-learn, too. helix looks like a passion project, so i thoroughly understand their wish to tend towards what they enjoy doing.
- _7tgr 2y agoI mentioned speed because they're writing their own instead of using Chez or Gambit or something (which have taken a while to get into 'performant' territory). Writing and maintaining a fast(!) Scheme is hard. Having spent time with r5/r6/r7rs (many variants for the latter) and their quirks I'd honestly say Lua is simpler by a wide margin, but some of this is down to preference. The Lua execution model, if nothing else, is a lot easier to understand than call/cc for instance. And the language does force you to write things functionally, practically speaking. I'm also not a huge fan of syntactic macros. Also things like dynamic binding which, in fairness, are just SRFIs but end up being implemented by most Schemes. I do respect their willingness to do what's fun for them, though :) that's what it's all about.
- imjonse 2y agoThey already have Scheme based config files and I'd say it is simpler that Lua.
- brabel 2y agoIt can't really be simpler than Lua, come'on. Maybe if you already know Lisp, but for people who know C-like languages (Java, Javascript, C++) Lua should be much more "obvious".
- deleted 2y ago[deleted]
- petre 2y agoWhat are you talking about? It uses TOML for config files and some S-expressions for queries, which is actually a consequence of using tree sitter. https://docs.helix-editor.com/configuration.html https://docs.helix-editor.com/configuration.html
- imjonse 2y agoI should have specified internal config files for the runtime queries that you mention. Those are .scm files.
- _7tgr 2y agoI wouldn't really count that as editor config. Every editor with treesitter support will have configs for treesitter, for instance: https://github.com/nvim-treesitter/nvim-treesitter/blob/master/queries/ada/highlights.scm https://github.com/nvim-treesitter/nvim-treesitter/blob/mast...
- imjonse 2y agoMy comment is in the context of 'their own Scheme implementation'. Since they already handle some .scm files internally it's not that wild to pick Scheme over other languages as the base for plugins. It's a power user editor, Scheme should not scare them.
- pkkm 2y agoScheme makes sense to me (better semantics than Lua), but I'm surprised that they didn't choose an established and fast implementation like Guile.
- _7tgr 2y agoYeah, that was mostly my thinking. I like lisp!