I've been really impressed by the growing number of software platforms that let outside developers contribute code through a pluggable architecture (plugins/extensions).
I've been studying which platforms have the best plugin communities...
Excellent Plugin Architectures with thriving plugin communities:
Then there are platforms with less active plugin communities:
(For the sake of focus, let's put aside or ignore platforms that enable full-fledged software apps, like Microsoft Windows, iPhone, and Facebook.)
What would you say gives a software platform a successful plugin architecture with lots of plugins, versus another platform with a smaller or inactive developer community?
Just to get things started, here's a partial list:
What kind of things can a platform developer do to create a pluggable architecture that encourages lots of outside developers to create plugins?
Personally there's 3 major contributers to whether I learn to (and do) write apps for any given system:
Is the system very useful so that I'd want to use it enough to be motivated enough to extend it?
Is the system using a language that I'm familiar with, or is easy to learn as opposed to some obscure or proprietary or otherwise overly complicated solution (see elisp)?
Is the plugin system extremely well documented in clear language so that I can go about the work of writing my plugin and not spending hours (or days) deciphering the system?
If these things are all true, the only reason you would not want to develop for a platform is that somebody else has already written plugins for all your ideas. :)
I think it's also extremely helpful/important to have a central and well known repository to house user contributed plugins (as per your example projects). I hate having to scour the web to find individual, possibly low quality or even possibly malicious add-ons for something I'm trying to do. This should be a website or wiki as even forums or mailing list archives can be annoying and time-consuming to dig through.