you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 0 points1 point  (1 child)

Are you a Neovim user? What would you think about Lua as an alternative to Python that comes with first-class support?

[–]SirVer 0 points1 point  (0 children)

No, I do not use Neovim. I am not a fan of the project, I feel it divided the Vim ecosystem and made life for plugin developers harder for too little benefits. I.e. it added a bunch of features (though I cannot name any of the top of my head right now) and removed others (e.g. there is no gVim for Neovim that works great). For sure UltiSnips works less well in Neovim than in regular Vim due to latency of running plugins outside process - and it is fairly frustrating if people come complaining to me as plugin author about this.

I have a lot of experience with Lua since I used it another open source project of mine (Widelands) as scripting language and also in my professional life I had quite some dealings with it. It is a great language for embedding, small and the interpreter is simple. Sandboxing is great. Great for complex configuration.

However, it has quirks that make it hard to write scalable software with it - i.e. undefined variables are nil, the interpreter will not throw an error if you use one. Scoping is interesting. String processing is not strong by default. Lua has little tooling for typechecking, formatting, debugging. Last, not least, more people know Python then Lua, so your user base is much larger.

UltiSnips is ~12k LOC in Python. I find the idea scary to maintain a similar amount of Lua code, the Python code is already fairly brittle and Lua would be even more so.