Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 343772 - Rename "plug-in" to be "extension"
Summary: Rename "plug-in" to be "extension"
Status: RESOLVED WONTFIX
Alias: None
Product: Orion
Classification: ECD
Component: Client (show other bugs)
Version: 0.2   Edit
Hardware: PC Mac OS X - Carbon (unsup.)
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-04-25 16:18 EDT by Boris Bokowski CLA
Modified: 2011-08-30 10:22 EDT (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Boris Bokowski CLA 2011-04-25 16:18:26 EDT
I would like to get rid of the term "plugin" in the UI (and ultimately, in the code, too). Since the extensibility mechanism in Orion is quite different, I believe we should not be using the term "plug-in".

My suggestion would be to use "extension" instead. Any other suggestions?
Comment 1 John Arthorne CLA 2011-04-25 17:12:02 EDT
+1 for rename. What we are really talking about is a "thing that contributes services and extensions". I.e., the unit of reuse and extensibility is individual services and extensions. Contrast with eclipse desktop where bundle/plugin is the basic unit of reuse/composition.

A plugin in Orion today represents a host or domain that is contributing a particular set of services and extensions. I was thinking along the lines of "Site", "Contributor", "Provider", "ExtensionSite", "ServiceProvider", "ExtensionProvider", "ContributionHost", etc. The key difference is that it is "a thing making contributions" rather than a "a thing that is being contributed". Actually come to think of it, our JS API uses the term "provider" already so maybe that is a good fit.
Comment 2 Boris Bokowski CLA 2011-04-25 17:15:57 EDT
Currently these are "things" that contribute services. Which is why I suggested "extension" as the name for the "things". Makes sense?
Comment 3 Susan McCourt CLA 2011-04-26 17:59:05 EDT
(In reply to comment #2)
> Currently these are "things" that contribute services. Which is why I suggested
> "extension" as the name for the "things". Makes sense?

+1.

Providers can define extensions which cause new behavior/function to appear in Orion.  These extensions are implemented in a service registry.  

One thing I'm not clear on.
Today we have some services in the registry (20 things, etc.) that are "core" to Orion and are not documented anywhere as an extension.  Do we call these things services instead of extensions?  Do we not mention them at all?  Or do you think the term "extension" applies to any behavior in what we now call the service registry?
Comment 4 John Arthorne CLA 2011-04-27 09:22:30 EDT
A couple of worries about using "extension":

 - If we ever introduce an extension registry in Orion, the name would obviously be confusing. We wouldn't be able to use the term "extension" the way it is used in Equinox today. I don't know if Simon is still considering an Orion extension registry

 - There is still a terminology overloading for those familiar with Eclipse. In Eclipse and "extension" is a singular contribution rather than an entity that makes many contributions.

Extension is a fine term, but if the purpose of moving away from "plugin" is to avoid confusion with Eclipse terms, I don't think it accomplishes that.
Comment 5 Boris Bokowski CLA 2011-04-27 09:32:05 EDT
(In reply to comment #4)
>  - If we ever introduce an extension registry in Orion, the name would
> obviously be confusing. We wouldn't be able to use the term "extension" the way
> it is used in Equinox today. I don't know if Simon is still considering an
> Orion extension registry

My assumption has been that services are what you can contribute - where each service, in effect, is a JavaScript object that can have properties and functions. I don't see why we would also need a concept similar to Eclipse extensions. Simon?
Comment 6 John Arthorne CLA 2011-04-27 10:28:23 EDT
(In reply to comment #5)
> My assumption has been that services are what you can contribute - where each
> service, in effect, is a JavaScript object that can have properties and
> functions. I don't see why we would also need a concept similar to Eclipse
> extensions. Simon?

Simon and I just chatted about this. Effectively what we have today is a hybrid between OSGi services and Eclipse extensions.  Because of its declarative aspect and lazy loading ability, we effectively already have something like the classic Eclipse extension registry so I agree we wouldn't need to introduce another concept.
Comment 7 Simon Kaegi CLA 2011-04-27 10:38:00 EDT
Apparently I'm slow on the trigger...

http://en.wikipedia.org/wiki/Plug-in_(computing)#Compared_to_extensions

--
To be honest after waffling I think I'm ok with either "orion plugin" or "orion
extension" as the top-level concept so I'm sort of -.1 here but only because of
churn.

I also like the term "provider" and think it makes sense on the implementation-
side as the main term and is John points out that's already reflected in the
API. (e.g. write a PluginProvider/ExtensionProvider to contribute a
plugin/extension).


As far as something like a desktop style extensionregistry goes I think we will
not need it and frankly I would like to avoid the service/extension confusion
again. What we have is a hybrid along the lines of OSGi declarative services
and I think we can handle the same sorts of lazy-loading and metadata that were
valuable.
Comment 8 Boris Bokowski CLA 2011-04-27 10:52:32 EDT
"add-on"?
Comment 9 Susan McCourt CLA 2011-04-27 16:28:35 EDT
I think I misunderstood before.  
By suggesting the word "extension," I thought you were looking for a word for a particular contribution (service/extension) but you are looking for a word for "the unit of contribution of one or more services/extensions."  In other words, what do we call that html page + code that someone adds.  Yes?

If so, then I think extension is a misleading word due to past usage (it confused me as to what you were trying to name).

(In reply to comment #8)
> "add-on"?

Better than "extension."  The downside is possible confusion by FF users who think that we are referring to true FF add-ons (Tools->Add-ons).  But we are going to have that possible confusion if we use any existing/known term (plug-in, extension, service, add-on).  And it doesn't seem useful to invent a new term to avoid confusion with the existing ones.  (tools for Orion's toolbelt?)

So I like "add-on" the best
Comment 10 John Arthorne CLA 2011-05-11 09:27:48 EDT
As we start to write more documentation in the coming weeks, we need to close on this. In the end the term we use isn't important to me, but it is important that we pick words that we use consistently throughout or documentation, discussions, etc. Knowing that the "contributed things" will always be called "services" simplifies the problem for me. Whether the thing that contributes services is called a plugin, extension, or add-on, doesn't much matter to me. The worry about confusing existing Eclipse developers is probably not so important in the end - our target users will be more familiar with browser add-ons/extensions than Eclipse plug-ins. Maybe hold a vote in the planning call tomorrow?
Comment 11 Simon Kaegi CLA 2011-06-20 22:37:33 EDT
We're using plugins for now.