Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

It's not an implementation from scratch, do you know the history of the projects?

Neovim started out as a large clean up and refactor of Vim code, plus the addition of async code.

That's a huge amount of work, partially re-implemented by Vim (Bram implemented his own version of async).

Actually, after the Neovim launch a lot of the Vim features were just Bram chasing after Neovim features. Vim9script, :term, etc.

I think there was bad blood there with Bram, I'm not sure how deep the emotional rift was between the 2 groups. From the outside a lot of it looked like stubbornness on the Vim side, at least 60% of the time..



I don't think there was bad blood with Bram. Rather, vim was always Bram's baby, even with contributions from the community, and he was very opinionated about how things should be implemented. IIRC, he found the new features of neovim interesting enough to want to implement them his own way, and a couple times commented that he thought that neovim's approach to certain features was "wrong," to his way of thinking.

His choices were always a bit idiosyncratic, but the success of vim justified them, so it was never a problem... until he died, and now there are two projects, one of which is very modern, both in terms of the codebase and how the project is managed, and the other is likely to become something of a legacy project unless someone as dedicated as Bram is found to take over.


Bram evidently had his own way, since he didn't let anyone else make commits to the project. That's fair, and in that situation forks are expected.


I’ve seen some reports that he did allow commits but he would “re”-commit them as part of his workflow. I’m not sure about the reasoning there.


>Neovim started out as a large clean up and refactor of Vim code, plus the addition of async code.

I don't think that is actually true.

As far as I remember Justin and Thiago (I think) wanted to implement the ':term' into vim and Bram just shut them off because he didn't wanted to lead Vim into the road that Emacs went.

And this was what prompted the Neovim fork. And they took the oportunity to also make a big refactor in the codebase.


It was async that Justin and Thiago tried to add to vim, and spent several months wrestling with Bram to get their patch included. At the end, they concluded that they weren't going to get it in and that a fork was necessary. Including the terminal followed quickly after neovim was set up and organized.




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: