This is the perennial argument that IMHO is based on a fallacy. If the vim people suddenly stopped working on vim, it doesn't mean all their effort would go to neovim. People work on what they want to work on in open source. Also the two projects have very different goals/philosophies. The code bases have also gotten pretty different in architecture because neovim did a monstrous refactor. It's open source working as intended that we have both.
One little thought is, has there been much drama between the vim and neovim communities? (I guess community can be defined broadly enough that the answer to that question is always “yes,” but I haven’t seen much). They both seem completely happy to just do their own thing. I think the perennial argument just exits in the mind of some fans.
It is nice to see a pair of projects with so much potential for competition coexisting peacefully. Plenty of room on the internet I guess.
Technically, Neovim started because the author wanted to add multi-threading to Vim but the patch was rejected. So they did try to contribuir to Vim first.
Not that I agree with your parent comment or anything (I don’t), I use Helix so don’t really have a dog in this fight, I think it’s fine for them all to coexist.
But they're separate highly maintained projects, and there will always be tradeoffs. It's like saying that Ubuntu is better than Debian, or that Fedora is better than RockyLinux.
well the library ecosystem, developer tooling, and gradual typing support for lua is far ahead of what’s available for vimscript. in my experience lua is #2 behind javascript/typescript’s #1 when it comes to scripting language LSP stuff. both python and ruby suffer from a profusion of alternative type checkers and whatnot that cause pain and fragmentation when it comes to tooling.
it’s pretty great to have my vimconfig give red squiggle in editor if i’m doing it wrong before i save & reload.
but i’ve not followed vim9 script as its evolved perhaps there’s a good type checker for it at this point?
even before neovim, there were vim extensions written in lua so it feels gravity of lua code has been considerable for a long time.
to me vim9script feels like perl5/raku split - evolution too late to grow new users, a remnant for a niche that will fade to oblivion slowly over the next 10 years.
well the lua setup has enough type checker going on that’s it’s really useful, besides language familiarity i honestly don’t miss much; there’s great docs and autocomplete for the lua stuff built in to the lazynvim distro.
With vim9, just like C and perl, the focus is to write small programs. And you don't need a typechecker if your program is only a few hundreds lines. And locality of behavior is at most one screen tall. For scripting languages, I'd rather a good documentation system (vim, emacs,..) than having a full lsp client in the background.
This is the perennial argument that IMHO is based on a fallacy. If the vim people suddenly stopped working on vim, it doesn't mean all their effort would go to neovim. People work on what they want to work on in open source. Also the two projects have very different goals/philosophies. The code bases have also gotten pretty different in architecture because neovim did a monstrous refactor. It's open source working as intended that we have both.
I agree with you.
One little thought is, has there been much drama between the vim and neovim communities? (I guess community can be defined broadly enough that the answer to that question is always “yes,” but I haven’t seen much). They both seem completely happy to just do their own thing. I think the perennial argument just exits in the mind of some fans.
It is nice to see a pair of projects with so much potential for competition coexisting peacefully. Plenty of room on the internet I guess.
There was a decent amount of drama in the early days, but at this point it seems like it's gotten pretty friendly.
Could say the same thing about people working on neovim
Technically, Neovim started because the author wanted to add multi-threading to Vim but the patch was rejected. So they did try to contribuir to Vim first.
Not that I agree with your parent comment or anything (I don’t), I use Helix so don’t really have a dog in this fight, I think it’s fine for them all to coexist.
Do you know why it was rejected?
It’s been too long, I no longer recall specifics. Wikipedia links to the patch’s discussion on Google Groups, if you care to read it.
https://groups.google.com/g/vim_dev/c/65jjGqS1_VQ/m/fFiFrrIB...
Vim 8 did add support for asynchronous jobs, due to the pressure of Neovim fork.
https://lwn.net/Articles/713114/
https://news.ycombinator.com/item?id=7279358
NeoVim has a fundamentally better architecture and healthier ecosystem.
But they're separate highly maintained projects, and there will always be tradeoffs. It's like saying that Ubuntu is better than Debian, or that Fedora is better than RockyLinux.
Honestly curious, what are the tradeoffs with vim9 / vimscript?
well the library ecosystem, developer tooling, and gradual typing support for lua is far ahead of what’s available for vimscript. in my experience lua is #2 behind javascript/typescript’s #1 when it comes to scripting language LSP stuff. both python and ruby suffer from a profusion of alternative type checkers and whatnot that cause pain and fragmentation when it comes to tooling.
it’s pretty great to have my vimconfig give red squiggle in editor if i’m doing it wrong before i save & reload.
but i’ve not followed vim9 script as its evolved perhaps there’s a good type checker for it at this point?
even before neovim, there were vim extensions written in lua so it feels gravity of lua code has been considerable for a long time.
to me vim9script feels like perl5/raku split - evolution too late to grow new users, a remnant for a niche that will fade to oblivion slowly over the next 10 years.
Oh man imagine if NeoVim had been TypeScript. I would've switched then.
neovim does have some support for nodejs plugins through its providers https://neovim.io/doc/user/provider.html#_node.js-integratio...
well the lua setup has enough type checker going on that’s it’s really useful, besides language familiarity i honestly don’t miss much; there’s great docs and autocomplete for the lua stuff built in to the lazynvim distro.
With vim9, just like C and perl, the focus is to write small programs. And you don't need a typechecker if your program is only a few hundreds lines. And locality of behavior is at most one screen tall. For scripting languages, I'd rather a good documentation system (vim, emacs,..) than having a full lsp client in the background.