Monday, March 24, 2014

Re: Poll: What's good about plugin managers?

Excerpts from Gary Johnson's message of Mon Mar 24 18:19:54 +0000 2014:
> How do you know whether or not a plugin is "actually used"?

VAM calls the command:
VAMUninstallNotLoadedPlugins (old name: UninstallNotLoadedAddons)

Thus VAM cannot and does not know - well - even VAM has an alternative
now: passing a list of "plugins which might be used" to fix this issue.

It looks like this allowing to tag plugins:
- you have a list of plugins to keep
- you also can tag plugins, and then activate all beeing tagged by
"c-dev" for instance [1]

The idea was to move this list of plugins into a text file so that you
can replace the plugin implementation. Eg installing plugins in parallel
could be implemented in python trivially. Additional keys could be
added, too.

However the uninstall commands haven't been updated yet.

Again - I think NeoVim and how those patches turn out are at least as
interesting as the "plugin manager" discussion - because the plugin
management solution has been solved at least 3 times - and all solutions
work reasonably well for most use cases - and at least I don't want to
be better than the 20/80 rule (20% effort should yield 80% of value
which is linux philosophy).

I cannot speak for the other plugin manager solutions.

Why did I start VAM?
- need to distribute my own code focusing on
- code reusing (thus minimal dependency support)
- being declarative
- allowing to "guide" the community, thus VAM was implemented by
introducing two projects: the plugin manager and the pool
of known plugins, which is vim-pi now. (Note that you can opt-out
trivially or replace it by your own plugin sources)

This was driven by some questions on #vim about "why doesn't plugin X
work" - and the solution was sometimes to tell people to use plugin Z.

My goal was to automate this guidance.

vim-pi also knows about where to put files, eg some plugins on
vim.sf.net don't have a proper directory structure - thus managers
have to guess or know whether plugin-file.vim is a color,syntax or a
plugin file (the plugin type on vim.sf.net is set incorrectly
often).


Somewhen ZyX joined the project improving documentation (due to git
after all now at least half of the code was which is in the project
was written by him)

My goal was only "to be good enough - never to be perfect".

Since then Vundle was written, forked (=> NeoBundle), proposals/
prototypes were written using ruby gem system or python package
managers to manage vim plugins - but I don't think they ever got many
users. They are all listed at the vim-wiki page. Of course other users
just wrote a set of shell scripts to be "minimal" and the like.

Very interesting is why some tools like "Pathogen" are still that
popular. I guess one reason is that many plugins (eg ruby plugins)
have had pathogen install instructions, and many people copied them
when writing new plugins (Again a failure of not having a central place
to document such install instructions IMHO).

Last but not least there are alternative projects trying to be
(what I'd call the kitchen think?), plugin collections:
http://vim-wiki.mawercer.de/wiki/topic/plugin-collections.html
They want (do ?) provide a sane set of plugins which just work.

I told some of those authors about VAM long time ago, but AFAIK none
adopted it (switched to vundle/pathogen or such ).

Personally I got tired about this topic, I'd like to focus on more
important aspects in my life. Plugin management has been solved
reasnoably well IMHO. I've been way too passionate about these things in
the past.. :/ I cannot fix the world. I've learned this lesson. :)

And if we are at discussing this topic I'd like to remind its very very
hard to think about "ratings/stars" and the like. If they don't have a
decay (they don't have at github/vim AFAIK ..) they might be worthless -
as worthless as facebook likes - worth would be likes per visits or
such. Thus I still believe that manually maintained guides could be more
valuable than automatic tools - which might be biased in favour of the
past. (Again - my view).

Eg massive downvoting happend on the vam vim.sf.net plugin page for
whatever reason (drchip removed his plugins form vim.sf.net for a
similar reason). This is just a reminder for those who missed the
happenings in the past.

Marc Weber

[1]

Sample code:
let scripts = []
call add(scripts, {'name': 'plugin_c', 'tag': 'c-dev'})
call add(scripts, {'name': 'plugin_ruby', 'tag': 'ruby-dev'})
call add(scripts, {'name': 'script-povray', 'filename_regex':'\.pov$'})
call add(scripts, {'name': 'script-php', 'ft_regex':'^\.php$'})

" tell vam about the scripts and activate c-dev
call vam#Scripts(scripts, {'tag_regex': 'c-dev'})
" activate all
call vam#Scripts([], {'tag_regex': '.*'})

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments: