I would like to respectfully suggest you have it backwards.
I agree a lot of that stuff would be nice with vim, don't get me wrong, but I think we don't need an IDE layered on top of vim, so much as we to do some work on DEintegrating the development environment.
I'm not advocating for getting rid of all-in-one tools, I've seen the power of VS and IntelliJ etal in competent user's hands, they are fine envrionments, if that is your preference and it makes you productive, then awesome.
What I think the programming environment world needs (not just vim) is a standard way for user interfaces to talk to tools. Right now if you come up with a great way to auto refactor code, or do inline static analysis or build tool chains or whatever, you have to target a specific environment, or redo a lot of work to have it work available in multiple tools. However if there was a standard api or protocol, the same code would work for all developers and you could focus your effort on making the tool that much better.
It isn't immediately obvious to me how this would work, and I've been thinking about it off and on for a while now, but I think it could be a major benefit to the world, in the way http/html have freed up a lot of the nonsense around programming interfaces for users in a cross-platform way. My thinking right now is being largely influenced by the git model of "plumbing" and "porcelain" command setup, where the "porcelain" is the editor/environment tool.
Anyway, I probably did a poor job of explaining my thinking, it being saturday morning and all.
> What I think the programming environment world needs (not just vim) is a standard way for user interfaces to talk to tools.
Brilliant, that way the ultimate IDE is simply your desktop.
Coming from linux, given the choice between an IDE and a bunch of shell windows running vim, gcc/g++, make, gdb, etc., I've always picked the latter. But it's missing tool communication. Now if we had some standard based on IPC that vim/gcc/g++/make/gdb/other-tools could all recognize...
This is basically all that emacs provides: glue between programs, and maybe a really thin GUI layer for interacting with them.
Which, as I'm sure many will ravenously point out, leads back to the "encapsulated environment" problem; emacs then integrates these disparate programs so tightly that I'm now locked into it.
I agree a lot of that stuff would be nice with vim, don't get me wrong, but I think we don't need an IDE layered on top of vim, so much as we to do some work on DEintegrating the development environment.
I'm not advocating for getting rid of all-in-one tools, I've seen the power of VS and IntelliJ etal in competent user's hands, they are fine envrionments, if that is your preference and it makes you productive, then awesome.
What I think the programming environment world needs (not just vim) is a standard way for user interfaces to talk to tools. Right now if you come up with a great way to auto refactor code, or do inline static analysis or build tool chains or whatever, you have to target a specific environment, or redo a lot of work to have it work available in multiple tools. However if there was a standard api or protocol, the same code would work for all developers and you could focus your effort on making the tool that much better.
It isn't immediately obvious to me how this would work, and I've been thinking about it off and on for a while now, but I think it could be a major benefit to the world, in the way http/html have freed up a lot of the nonsense around programming interfaces for users in a cross-platform way. My thinking right now is being largely influenced by the git model of "plumbing" and "porcelain" command setup, where the "porcelain" is the editor/environment tool.
Anyway, I probably did a poor job of explaining my thinking, it being saturday morning and all.