top | item 39876680

(no title)

sp33der89 | 1 year ago

I absolutely don't mind the plugin system being a Scheme. It's a plugin for a text editor, and Steel(https://github.com/mattwparas/steel) seems to be a lot less of a maintenance burden than WASM plugins(besides that I find the WASM tooling to be extremely complex).

But besides all that, Helix learned be that I don't need fancy plugins or endless finicking with config files and toolchains. Using a combination of other tools, like yazi and lazygit, helps me not only inside my editor but outside of it as well. And Kakoune does this even better. In that regard it has been a real eye-opener and refreshing. The downside is, it's hard to go back to other editors!

discuss

order

mbStavola|1 year ago

While I understood the maintainer's arguments for wanting to adopt a Scheme-like for plugins, I can't help but be a bit disappointed.

Helix being written in Rust meant that I felt very comfortable looking at the source code which gave me the confidence that if I wanted to implement something, I could reasonably do so. Furthermore, the idea that plugins could've been in Rust or Rust through WASM meant that I'd have an editor which was completely hackable in the least annoying way possible. Every time I have to learn one of these tool-specific languages I end up breathing a heavy sigh, spending a lot of time relearning things or working around weird quirks, and then ultimately giving up after writing the most basic version of what I want to do.

Ultimately, this is just a me problem and I really can't complain about something I haven't paid for or substantially contributed to. Maybe it'll actually be awesome and I'll change my mind completely, maybe they'll reconsider and add Rust-based plugins. Helix as an editor is awesome and I'm just going to have to trust the developers.

natrys|1 year ago

But you are also speaking as someone who already knows Rust. If we take a step back and imagine someone who knows neither, what's easier to learn, a high level language or a low level one? (I don't think pointing out that Rust has high level aspects alters the relative situation)

Take two programs with historical success in building this kind of plugin system: Emacs and Browser. The number of non-programmers who can write elisp (or javascript) but won't dare to touch C/C++ code in the core layer probably outweighs the opposite by a huge factor.

zozbot234|1 year ago

The original issue wrt. WASM for the Helix project was that WASM currently only exposes a very barebones, C-like FFI for communicating with plugins. This should be solved in the future by the WASM component model, so these choices could well be revisited.

n8henrie|1 year ago

Agreed -- I've been putting in some significant effort to learn helix / break my nvim habits specifically because it's written in rust so I feel like I could hack on it / contribute back.

bobbyskelton41|1 year ago

Steel can load cdylibs (this is used for the integrated terminal POC plugin I think) so Rust plugins are already possible with that PR.

sp33der89|1 year ago

> Furthermore, the idea that plugins could've been in Rust or Rust through WASM meant that I'd have an editor which was completely hackable in the least annoying way possible. Every time I have to learn one of these tool-specific languages I end up breathing a heavy sigh, spending a lot of time relearning things or working around weird quirks, and then ultimately giving up after writing the most basic version of what I want to do.

I very much understand this. However I'd argue using Scheme is a great tradeoff. Because in the end programming is about tradeoffs. Scheme will not overcomplicate plugins for the maintainers, and as a write you have to learn a tiny DSL for configuring your editor.

As we speak, I'm trying to write a plugin for Zed, and as awesome all the niceties about Zed is, plugins are not easy, and frankly speaking, I feel like I wasted my time with all this nonsense about WASM, while in Helix the same plugin (language support) was really, really simple, even as somebody who knew nothing about Rust or Scheme.

nikolay|1 year ago

I do mind and not gonna use Helix just for this alone. Lips is the past (I've used it extensively in the '80s and '90s), not the future!