by dviola on 2/23/14, 9:26 PM with 147 comments
by mekoka on 2/24/14, 2:44 AM
To Diego: Prove him wrong. I suspect that Bram has been maintaining the code base for so long, that he might need a bit more than a mere message to warm him up to the idea of a refactoring to the scale that you're undertaking. Also, you might not be the first person to contact him with such a proposal. I wonder how long it took for others before they gave up. Build something tangible and contact him again later with proof of concept, something that would make this more than just a fleeting dream.
To people questioning Bram's position: You need to look a bit further than your nose. The fact that you want to create plugins or extensions does not put you in the mainstream as a Vim user. It's an extremely popular editor of almost religious proportion, with lots of existing plugins and extensions. So we know that people use it and making plugins is possible. With all of its annoyances it gets the majority of the job done for most users. One can't just wake up one day and say that they'll change things, not even Bram at this point.
The most desirable outcome in my opinion would be to have Neovim be a continuation of Vim (Vim 10.0?) rather than just another fork, and for that, having Bram on board would be a boon. His longevity as a maintainer is impressive.
by CJefferson on 2/23/14, 10:19 PM
People who basically want him to never change (and that is fine) can be happy with mainline. There are others who would like to see some significant updates, particularly allowing better threading support.
by sramsay on 2/23/14, 10:11 PM
http://www.joelonsoftware.com/articles/fog0000000069.html
I realize Neovim is being characterized as an "aggressive refactor," but I'm sure that's the way Netscape thought of it as well.
tl;dr Things you should never do: rewrite the code from scratch.
by bachback on 2/23/14, 10:13 PM
http://www.theregister.co.uk/2003/09/11/bill_joys_greatest_g...
And there is no reason we could ever improve on that 35 years later. we need those optimizations...
"It took a long time. It was really hard to do because you've got to remember that I was trying to make it usable over a 300 baud modem. That's also the reason you have all these funny commands. It just barely worked to use a screen editor over a modem. It was just barely fast enough. A 1200 baud modem was an upgrade. 1200 baud now is pretty slow.
9600 baud is faster than you can read. 1200 baud is way slower. So the editor was optimized so that you could edit and feel productive when it was painting slower than you could think. Now that computers are so much faster than you can think, nobody understands this anymore. "
by hglaser on 2/23/14, 10:20 PM
Bram's conservatism makes perfect sense for someone who has to maintain this huge, consequential, intimidating codebase. Why hasn't he gotten some help?
by ayosec on 2/24/14, 12:47 AM
Some people forked Sodipodi, and created Inkscape. I can remember that one of their first tasks was to make the code compatible with a C++ compiler.
Nowadays, Inkscape is a very good tool, and I hope that Neovim has a great success too.
by kzrdude on 2/24/14, 12:28 AM
Main flaws: Apart from implementation issues, non-authenticated encryption susceptible to bitflipping.
by perlgeek on 2/23/14, 10:19 PM
I don't think there's a way to learn that except by making the same mistake yourself, possibly more than once.
by ageofwant on 2/24/14, 12:33 AM
As for Bram, he can, and most likely will continue his good work on vim. I am kind of disappointed that he is not more supported of this effort though.
by typicalbender on 2/23/14, 10:15 PM
by jbranchaud on 2/24/14, 3:26 AM
- Excerpt from http://en.wikipedia.org/wiki/Bram_Moolenaar
by jballanc on 2/24/14, 9:52 AM
Or, at least, I think that's the best way to summarize the essential miscommunication between these two camps. Vim is, in the spirit of Unix, a single purpose tool: it edits text. Why would it need threading? async? background jobs? You can't type in two places at once, right?
NeoVim wants to be something like an IDE-lite. Text editing, yes, but with the ability to do background compilation/syntax checking, a bit of debugging here, some REPL-ish things there. For that you need a better async story, better process control, etc.
So, in the end, I don't actually see a problem here. Vim will cater to one audience, NeoVim to another. For my money (or donation to Uganda), I'm happy using tmux splits, sending text between vim windows and REPL windows, and keeping Vim primarily as a text editor with syntax highlighting. I would appreciate if some events could be backgrounded (e.g. syntax check on file save), but I don't think this needs a complete refactor.
by edanm on 2/23/14, 10:44 PM
Of course, Bram knows the codebase and I don't, and I may well have misunderstood the neovim plan, so I'm not sure which of us understands.
by z3phyr on 2/24/14, 4:47 AM
"I’ll take this opportunity to coin Carmack’s Law, as follows: Fight code entropy. If you have a new fundamental assumption, throw away your old code and rewrite it from scratch. Incremental patching and modifying seems easier at first, and is the normal course of things in software development, but ends up being much harder and producing bulkier, markedly inferior code in the long run, as we’ll see when we discuss the net code for QuakeWorld. It may seem safer to modify working code, but the nastiest bugs arise from unexpected side effects and incorrect assumptions, which almost always arise in patched-over code, not in code designed from the ground up. Do the hard work up front to make your code simple, elegant, great—and just plain right—and it’ll pay off many times over in the long run."
by ChuckMcM on 2/24/14, 4:57 AM
by huherto on 2/24/14, 2:22 AM
That may be a problem for vim but not for neovim. Neovim doesn't have a legacy user base, they can focus on the currently used systems.
by tambourine_man on 2/23/14, 11:09 PM
I really love this business model, the developer works on something he is passionate about, we can support the project and influence its future, all while strengthening the community around it.
by chimeracoder on 2/23/14, 10:35 PM
As a Go programmer, I feel a bit sad/ashamed to be saying this, but look at Plan 9 - it failed to usurp Unix (and its descendants) as the dominant OS, because the latter was "good enough", and was already more widely supported and used.
Plan 9 vs. Unix is a very different comparison than Vim vs. Neovim, and there are a lot of other factors at play, but the same principle actually holds. Improving or extending an existing system in a compatible way is a lot easier than trying to establish mindshare with a completely new tool.
The tradeoff is that extending existing systems leads to cruft and bloat. So if you can establish mindshare with a new tool, you have an opportunity to make a much more elegant one. But that's a big "if".
EDIT: I think a better analogy may be an attempt to refactor the Linux kernel into a microkernel. I'd certainly love it if this magically happened - microkernels are much easier to work with, and much more elegant. But it'd be hard to make the case that that'd be a worthwhile endeavor at this point, given the costs of doing so.
by sigzero on 2/24/14, 12:55 AM
by keyle on 2/23/14, 10:45 PM
by chris_wot on 2/24/14, 9:22 AM
However, it's sure easier to refactor than start from scratch! At least LO has a working product. Best of luck to the Neovim guys :-)
by codelap on 2/23/14, 10:34 PM
by lukasm on 2/23/14, 11:11 PM
by thetxef on 2/24/14, 8:44 AM
All Thiago got was: being ignored, one of the worst ways of disdain. Not just even a 'thanks but not interested'.
Other two guys who tried to provide patches to be merged on the same area also suffered from being mostly ignored (he replied to them but just once I think).
by _pmf_ on 2/24/14, 9:03 AM
by bakul on 2/25/14, 12:35 PM
by dylnclrk on 2/23/14, 10:39 PM
by general_failure on 2/24/14, 6:43 AM
by est on 2/24/14, 1:30 AM
by farginay on 2/24/14, 10:18 AM
by jijji on 2/24/14, 2:22 AM
2. :%s/vim/neovim/g
3. profit!?!?!?!?!?
by tinco on 2/23/14, 10:21 PM
Seriously, screw that guy.
edit: Yes I know who 'that guy' is and it's great he's been working on Vim for all these years, but he certainly has his head up his ass if he thinks Vim users would not benefit from some big refactorings, a more accessible code base and some dropped platforms. If all those Amiga programmers love Vim so much, why would they be disappointed with an eternal Vim7.4?
It's not too late for Vim to lose the editor wars.