Hacker News new | ask | show | jobs
by teacup50 4224 days ago
Bulk churn is the kind of easy task that gives the impression of progress while providing very little actual value.

In 8 months, here's what NeoVim has done:

1) Reformatted all the code.

2) Deleted a lot of working, old code.

3) Raised a good chunk of cash.

4) Published a very shiny website.

5) Released nothing.

There's nothing wrong with simplifying a code base, but if you run around trying to do that independent of any reasonable technical direction, you're just making noise.

Given that NeoVim's technical direction is extremely poorly considered (while also disparaging Bram's work), I can't help but think highly of Bram for being polite -- at all -- to such a disrespectful fork.

6 comments

Your comment seems to consist of some things that aren't true, and some true things accompanied with baseless insinuations.

1. The code was reformatted because Vim's codebase is a mess. It mixes tabs and spaces willy-nilly. It uses different indentation rules in different parts of files. These issues may seem cosmetic, but they make the code harder to follow and increase the likelihood of bugs. Indentation can be especially misleading when control flow lacks braces (a common occurrence in Vim). The change didn't require much effort and it made it easier for people to contribute to Neovim.

2. Actually, quite a bit of Vim's old platform-specific code is broken. It's just that nobody uses an SGI IRIS or Amiga, so nobody complains about it. In some cases, Neovim removed ifdef'd code that could never possibly be included[1].

3. People have donated less than $40k to Neovim. That's not even the salary of a single developer for the 8 months it's been around. The contributors aren't in it for the money. They simply want to build a great editor.

4. A very shiny website? It's just static pages hosted on Github. If you look at the commit history[2], you can see it's insignificant compared to work done on the Neovim codebase.

5. Nothing? There's an entire repository of working code. Right now you can clone Neovim, compile it, and it will run almost all Vim plugins without issue. The team is very conservative about declaring software stable. They may not have a tagged release, but to call the existing work "nothing" is unreasonable. It's at least as stable as Atom.

You also neglected to mention all the other work done on Neovim, such as replacing ad-hoc cross-platform compatibility and event handling with libuv. Then there's the improved plugin APIs which allow features that aren't possible in Vim.[3] And of course, plugins can be written in any language. No more VimL shims needed.

Lastly: Disparaging? Disrespectful? It's hard to find any criticism the Neovim contributors have made towards Bram or Vim. They like Bram. They like Vim. Thiago tried to contribute to Vim multiple times, but was discouraged or ignored.[4][5] Instead of complaining or giving up, he and the other contributors are trying to improve the editor and the community around it. There's no malice or greed involved.

1. https://github.com/neovim/neovim/pull/814

2. https://github.com/neovim/neovim.github.io/

3. https://github.com/benekastah/neomake

4. https://groups.google.com/d/msg/vim_dev/QF7Bzh1YABU/02-YGr7_...

5. https://groups.google.com/d/msg/vim_dev/65jjGqS1_VQ/fFiFrrIB...

"Right now you can clone Neovim, compile it, and it will run almost all Vim plugins without issue."

Easy compile? (I'm at work and no git clone/compiling here!) Might try later on tonight.

Pretty easy (`make install`). You need Cmake with ssl and a not-too-old gcc (>4.3). This should be the case on a modern system.

I recently compiled it on CentOS 5 and had to build my own cmake.

https://github.com/neovim/neovim/wiki/Installing

https://github.com/neovim/neovim/wiki/Building-Neovim

Yup, just used the Ubuntu instructions on Trisquel.
Thiago sent two unfinished, non-guidelines-compliant, non-cross-platform and non-working patches to the mailing list. That's his entire history of contributing to Vim.

Neovim is an emo-fork created by a frustrated little princess. Nothing more, nothing less.

There's a lot of work to do on Vim itself; forking it and building a completely incompatible code base is not going to help in any way.

How is forking an open source project disrespectful? For the past eight months I have only seen Neovim folks being very professional, open, and quick to respond to user input. They have been keeping their heads down quietly working on extremely hard problems.

Natively supporting Lua/LuaJIT and Python in writing asynchronous plugins, this alone is worth the wait. I am willing to give them A LOT MORE than 8 months if they can pull just this single feature off.

The request for Python integration has been sitting at the top of Vim's voting list for many years. It must be a very very difficult task, otherwise it could be done years ago. http://www.vim.org/sponsor/vote_results.php/

Other than the new plugin infrastructure, Neovim's GUI and embedding systems will be awesome. Anyway, I applaud people who explore and try to make progress (like from Vi to Vim, a natural process). In the mean time, I am happily using Vim which is both extremely powerful and stable.

TL,DR; I can wait.

> For the past eight months I have only seen Neovim folks being very professional, open, and quick to respond to user input.

They've done even more than that. They have gone to great lengths to be helpful. For example, tarruda created an issue on our own issue tracker to let us know they updated their python plugin architecture so that we could fix our Neovim plugin. He didn't have to do this.

https://github.com/Floobits/floobits-neovim/issues/10

tarruda has shown himself to be a very productive engineer and a great steward of a growing Neovim community.

Our experience with Neovim and Vim has been night and day. The reality is that with Neovim you can build plugins that do more than you can with vim, painlessly. I don't really want it to be a vim versus neovim thing, but Bram strikes me as someone who at the very least doesn't understand Neovim's goals. I certainly hope that Neovim's changes are not backported into vim, Neovim is much more open about contributions whereas with vim there's a single gatekeeper with limited time to address big changes.

As someone who has worked Neovim and written Neovim plugins, can you comment on how ready it is for "production" use? Could I switch over to it from Vim now, while using all my old Vimscript plugins? Could I right now use it and write plugins that do work on a separate thread from Vim? Is the msgpack API ready and/or documented? etc.
Before we get another rage post[1] I would like to emphasize that using Neovim requires that you keep up with the changes.

I use it full-time on supported platforms (everything except Windows), but breaking changes will require occasional reconfiguration, recompilation, or remorse.

[1] http://www.reddit.com/r/neovim/comments/2mo54n

>In 8 months, here's what NeoVim has done: 1) Reformatted all the code.

Even if they had done JUST that and the deprecation of old code, it would be MORE than enough.

> 5) Released nothing.

I've been tracking the neovim repo for a while, and my feeling is that they could have easily made a couple of releases with stability matching some other notable projects, but they have intentionally chosen to be conservative and wait.

If you want an example of one area where there has been work and improvement, check out the Wiki page on the updated clipboard integration: https://github.com/neovim/neovim/wiki/Python-plugins,-clipbo... . Yeah, it's different, and not yet as capable as Vim's built-in clipboard integration. But if they are headed toward a goal of more generalized integration points, then this is a strong step in the right direction.

I don't really see any problems here, they haven't made any promises either to release anything either before they are up to speed with where they want to be, just looking at their Github repo shows that there's a lot of activity going on. I'm really looking forward to seeing where they are going. In eight months things may have changed drastically, who knows, but I think that NeoVIM is going to be great. Besides, this is a bit like complaining about vim being a fork of vi, it's how things goes with open source software.
original vi was not free software. vim is a clone, not a fork.
In that case I stand corrected on that point, however I still feel like it's a bit of the same thing. :)
neovim is in the process of several major under-the-hood refactorings to enable larger scale changes. If it's not immediately apparent to you what the team is working on, you can see the project goals and progress thereupon on the project tracker.

https://waffle.io/neovim/neovim

I often refer to these two pieces when debating rebooting a project from scratch:

Joel Spolksy Things You Should Never Do Part 1 http://www.joelonsoftware.com/articles/fog0000000069.html

Darmesh Shah How To Survive a Ground-Up Rewrite Without Losing Your Sanity (a response to essay #1 13 years later) http://onstartups.com/tabid/3339/bid/97052/How-To-Survive-a-...

It's not always cut and dry when you should start over, but if you are make sure you are doing it in a way that starts presenting customer/user value ASAP.