(I tagged this in the “Corner Bar” category, I hope you don’t mind.) I use “extension” when writing or speaking formally, because that is the term used by SketchUp’s user interface. I often think “plugin” to myself, however.
I hadn’t really thought about it, but I guess I carried the term “plugins” with me from other software instead of what the SU developers officially call them.
In SketchUp, Plugins is the old name. There was a Plugins Menu in SketchUp 8. I don’t remember when it changed, but it’s now Extensions. There’s still some traces of this with the folder still called Plugins and the menu is still called Plugins in the Ruby API for backward compatibility.
hmm. The nomenclature suggests to me that one is a third party creation that works within the program to some ambiguous degree and one is an officially approved addition meeting some standards set by the program administrators.
I’m not familiar enough with either to even know how they compete.
Technically they are different things. Extensions are a subset of plugins, meaning every extension is a plugin but not every plugin is an extension.
Any Ruby file loaded into SketchUp could be a plugin but an extension needs a certain loader script, that tells SketchUp of the extension metadata such as author and description. An extension must have all its other files in single directory, by the same name as the loader script, otherwise it is not a valid extension. Other plugins sometimes have all their support files directly in the plugin folder, making it hard to fully uninstall them as you may not know what plugin a certain file belongs to, and risking clashes in case multiple plugins have support files by the same name.
Does this explain an essential difference between extensions in the EW and “extensions” obtained from other sources like Sketchucation? In short, anything on the EW is an extension whereas others may be plugins or extensions?
Everything in Extension Warehouse is an extension. Non-extensions don’t pass the requirements. SketchUcation and other sources can have any kind of plugins, but it seems most developers nowadays make their plugins extensions.
No doubt everything has been classes and passed to be called an extension, because it is the extension warehouse after all. But I’m pretty sure there are ‘extensions’ there that are ‘plugins’ elsewhere.
However you are quite correct in that you’ll only get Extensions from the Ewarehouse but can get both from Sketchucation.
This is a “rectangle vs square” situation. Every extension is a plugin, but not every plugin is an extension.
Plugin is the (older) generic term for Ruby code that SketchUp automatically loads as it starts.
Extension is the (newer) more specific term for a plugin that is structured in a particular way using some classes and mechanisms that were created long after plugins were added to SketchUp.
These mechanisms help SketchUp to manage the plugin code. For example, SketchUp can enable and disable extensions without any changes to the files involved. It can embed security signatures and loading policies that reduce the risk of tampering. An extension has author and similar information that can be presented in the SketchUp Extension Manager. All plugins from the Trimble Extension Warehouse are extensions (required for approval there).
For simple plugins, the equivalent (again older) technique to disable a plugin is to rename the Ruby file to something that the SketchUp loader will not recognize as valid Ruby code, e.g by changing the file extension to .rb!. A generic plugin has none of the extra information used by the Extension Manager.
I voted for “Extension” because, conceptually, Ruby code - whether packaged in a way acceptable for the Extension Warehouse or not - extends the functionality of SketchUp. “Plugin” just doesn’t connote that - at least to me!