Rise of the Plugins

From: Vincent Untz <vuntz gnome org>

To: desktop-devel-list gnome org

Subject: Rise of the Plugins

Date: Thu, 17 May 2007 18:26:58 +0200

Hey,
It's great to see more and more applications creating a plugin
architecture. However, I think it's worth discussing a bit some of the
issues we're facing wrt plugins. I'm just raising three points to start
the discussion, but there are probably other interesting items that are
worth discussing.
Naming
======
Plugin vs extension? It has already been raised on the list [1], but
there wasn't a lot of replies there. Using the same term everywhere is
really the only way to go.
My €0.02: I think that people are getting used to the Extension term,
and it sounds less geeky.
UI and code sharing
===================
Every time a new module is getting the plugin love, I'm seeing this: "I
stole the gedit/epiphany code and integrated it". Wow. Copy and paste?
Would it be possible to share all this code in a library? (maybe it's
not, I don't know: I didn't look at that code)
Also, each module is having its own plugin/extension manager dialog, and
they are all looking the same, but with small variations. Wouldn't it
make sense to standardize this? Again, maybe a library could help.
(And in the future, we might want to get some "update the extensions
from the internet" feature, and we don't want to implement this ten
times, do we?)
Moving features to plugins/extensions
=====================================
(thanks to Baptiste for having raised this specific issue)
One of the first thing people are doing with plugins/extensions is
moving some of the current features there. It often makes sense from the
code point of view, since things will be cleaner. But it doesn't always
make sense for the user.
Some of the features implemented in plugins/extensions should just
always be there, and it's useless to disable the plugin/extension. The
handling of multimedia keys come to my mind (I believe RB is already
doing the right thing in this specific case and always uses this
plugin). Plugins/extensions about integration with the rest of the
desktop are another example.
There could also be some way to automatically enable a plugin/extension
when it makes sense.
It's probably worth considering global settings for various types of
plugins/extensions. Many applications may want to ship a
plugin/extension changing the status in galago. Maybe it's worth
considering the option of having only one place where we say "Enable
galago" instead of having all the applications expose the
plugin/extension. Or they could all expose the plugin/extension, but
only to override the global setting.
All this needs to be discussed, and we can probably determine what makes
sense, and what we can do to make this kind of feature work better in
GNOME.
Thanks,
Vincent
[1] http://mail.gnome.org/archives/desktop-devel-list/2007-February/msg00283.html
--
Les gens heureux ne sont pas pressés.