Author Topic: neovim (major vim refactoring)  (Read 2357 times)

0 Members and 1 Guest are viewing this topic.

Offline hashbaz

  • Grand Ancient One
  • * Moderator Emeritus
  • Thread Starter
  • Posts: 5057
  • Location: SF Bae Area
neovim (major vim refactoring)
« on: Thu, 29 May 2014, 16:28:49 »


I just learned about the neovim project today, which is an "aggressive refactoring" of the vim codebase.

From the bountysource and github pages, the major goals/benefits are:
  • First class support for embedding
  • New plugin architecture and extensibility in any programming language
  • Support for modern GUI front-ends, without modifications to the core
  • Compatibility with existing vim plugins
  • Simplification of maintenance that will encourage contributions

I've toyed with the idea for years of attempting a major rework/rewrite of vim, and I think it's desperately needed.  I'm very glad to see a major effort underway to make it happen.  Even if it fails, perhaps it will spin off other projects and/or kick Bram in the pants to think about modernizing the mainline.

Thoughts?

Offline daerid

  • Posts: 4276
  • Location: Denver, CO
    • Rossipedia
Re: neovim (major vim refactoring)
« Reply #1 on: Thu, 29 May 2014, 16:38:59 »
I've heard about it, but I'm not very optimistic. Vim is a huge codebase, with 30+ years of work put into it.

However, if they're not out to replace vim, but merely provide another text editor based on vim, then they might have a shot. I'll give it a shot if they support surround.vim (I can't live without it).

Offline osi

  • Posts: 964
Re: neovim (major vim refactoring)
« Reply #2 on: Thu, 29 May 2014, 17:04:33 »
Using vim daily, I can't say that I have any real complaints. Having said that, it's rare occasion when a vim session will creep beyond 2 hours for me.

Something I wouldn't mind to see would be a more human friendly command structure for common tasks such as find and replace. We all know the sed syntax but c'mon man!!

I'm interested to hear your annoyances and what you were thinking of changing?




Offline hashbaz

  • Grand Ancient One
  • * Moderator Emeritus
  • Thread Starter
  • Posts: 5057
  • Location: SF Bae Area
Re: neovim (major vim refactoring)
« Reply #3 on: Thu, 29 May 2014, 17:12:03 »
Mostly what interests me is the expansion of what plugins can do and how they can be created.  Fast, asynchronous plugins in any language with access to vim's full internal data model and API will allow some sweet stuff.  Cleaning up and modernizing the codebase will make for better extensions, lower the barrier to entry, and attract more devs.  I  would also love to see vim become seamlessly embeddable in other environments such as debuggers and IDEs. 

I would like to see core development move forward eventually as well.  Seems like vim development underwent a large spurt several years ago with the addition of tabs and folding, and has stagnated since.  There is a new generation of innovative editors out there, and incorporating their advances into vim plugins has been difficult.

Offline riotonthebay

  • Cherry Peasant
  • * Destiny Supporter
  • Posts: 2048
  • Location: Raleigh, NC
  • keycult.com
Re: neovim (major vim refactoring)
« Reply #4 on: Thu, 29 May 2014, 17:14:37 »
* riotonthebay uses Emacs.

* riotonthebay leaves thread.

Offline osi

  • Posts: 964
Re: neovim (major vim refactoring)
« Reply #5 on: Thu, 29 May 2014, 17:43:48 »
Vim is a huge codebase, with 30+ years of work put into it.

If they're not out to replace vim, but merely provide another text editor based on vim, then they might have a shot.

This  ^^^

A complete rework of a core program such as vim could be seen as anti-unix in some circles. In fact, they may suggest to get a mac. :) . Doesn't bother me one bit either way personally. 


Mostly what interests me is the expansion of what plugins can do and how they can be created.  Fast, asynchronous plugins in any language with access to vim's full internal data model and API will allow some sweet stuff.  Cleaning up and modernizing the codebase will make for better extensions, lower the barrier to entry, and attract more devs.  I  would also love to see vim become seamlessly embeddable in other environments such as debuggers and IDEs. 

I would like to see core development move forward eventually as well.  Seems like vim development underwent a large spurt several years ago with the addition of tabs and folding, and has stagnated since.  There is a new generation of innovative editors out there, and incorporating their advances into vim plugins has been difficult.

Having drop in plugins would that are easy to build would be great and ahhhhh, isn't folding great?

The biggest struggle I believe will be attracting enough of an audience to achieve proper dev attention. I imagine that a younger generation would automatically cast vim aside as other editors are available and have smaller learning curves. There are essences of youth from VIM like the chrome plugin that may be able to create sparks of interest but it may be futile.

You just might have to write it up yourself afterall :D

Offline hashbaz

  • Grand Ancient One
  • * Moderator Emeritus
  • Thread Starter
  • Posts: 5057
  • Location: SF Bae Area
Re: neovim (major vim refactoring)
« Reply #6 on: Thu, 29 May 2014, 18:09:16 »
I think the goal is to win over existing vim users, not create a new vim-ish editor that will attract new users.  If the project achieves its goals of increased performance and compatibility with existing plugins, and improved/asynchronous API, the plugin development community will have a compelling reason to embrace it.  And if they embrace it I can see a significant portion of the userbase embracing it too.

Again, it's all about the plugins.

Offline mkawa

  •  No Marketplace Access
  • Posts: 6562
  • (ツ)@@@. crankypants
Re: neovim (major vim refactoring)
« Reply #7 on: Thu, 29 May 2014, 18:16:47 »
Quote
New plugin architecture and extensibility in any programming language
this is huge.

is it backwards compatible with vimscript garbage though?

to all the brilliant friends who have left us, and all the students who climb on their shoulders.

Offline hashbaz

  • Grand Ancient One
  • * Moderator Emeritus
  • Thread Starter
  • Posts: 5057
  • Location: SF Bae Area
Re: neovim (major vim refactoring)
« Reply #8 on: Thu, 29 May 2014, 18:21:44 »
They're talking about writing a compatibility layer that compiles vimscript into lua to maintain compatibility with existing plugins.  Not sure about existing plugins that are written in Python, Ruby, and friends.

Offline daerid

  • Posts: 4276
  • Location: Denver, CO
    • Rossipedia
Re: neovim (major vim refactoring)
« Reply #9 on: Fri, 30 May 2014, 00:30:53 »
any programming language? really? That's a bit ambitious.

Can I write extensions in ocaml? cobol? whitespace? BRAIN****? HUH CAN I?!?!?

Offline hashbaz

  • Grand Ancient One
  • * Moderator Emeritus
  • Thread Starter
  • Posts: 5057
  • Location: SF Bae Area
Re: neovim (major vim refactoring)
« Reply #10 on: Fri, 30 May 2014, 13:13:44 »
I believe the plan is that plugins will run in separate processes and communicate with neovim through an IPC protocol.  So yeah, as long as brain**** has a sockets library you should be good to go.

Offline daerid

  • Posts: 4276
  • Location: Denver, CO
    • Rossipedia
Re: neovim (major vim refactoring)
« Reply #11 on: Sun, 01 June 2014, 14:30:58 »
I believe the plan is that plugins will run in separate processes and communicate with neovim through an IPC protocol.  So yeah, as long as brain**** has a sockets library you should be good to go.

Ok, that's friggin cool