This documents aims to provide a common lexicon for terms used to refer to artifacts.
Our technology space is filled with overloaded words like package, module, and bundle.
Despite the potential for confusion, we can make our documentation, APIs, and all forms of written and spoken communication clearer by carefully selecting and qualifying the terminology that we use.
If this document succeeds, we should end up having a documentation where each object/artifact has one single term to designate it. In other words, Wittgenstein should be proud of us (see Tractatus Logico-Philosophicus).
Note that we also include an appendix section listing the canonical spelling and casing for used trademarks or product names.
- Frontend realm:
- JavaScript module: a generic JavaScript module in any format (AMD, CommonJS, ...).
- AMD module: a JavaScript AMD module (the
.js
file or its logical representation at runtime). - CommonJS module: a JavaScript CommonJS module (the
.js
files used in node). - ES module: a module written in ECMAScript 6+ format (i.e.:
import from
syntax). ESModule: use ES module instead.ECMAScript module: use ES module instead.Harmony module: use ES module instead.JavaScript module: use ES module instead.
- AMD module: a JavaScript AMD module (the
- npm package: a JavaScript package (those described by a
package.json
file). - webpack bundle: a
.js
file created bywebpack
, containing several bundled.js
files.
- JavaScript module: a generic JavaScript module in any format (AMD, CommonJS, ...).
- Backend realm:
- Java package: a Java package as defined by the language.
- OSGi bundle: the JAR file deployed to DXP or its logical representation at runtime
Bundle
. - OSGi module: the source project for an OSGi bundle. Sometimes people use OSGi module when they refer to an OSGi bundle (in Liferay and in the outside world) so we don't consider it incorrect, though we recommend using OSGi bundle for the physical artifact (JAR file) to make it more evident (see the Wikipedia for a nice description).
- Portlet: atomic units of UI handled by DXP. They are deployed inside OSGi bundles.
- Widget: a marketing synonym for portlet.
- Ambiguous terms (only to be used in contexts where no ambiguity arises):
- Module: a JavaScript module.
- Package: a Java package or npm package.
This section lists the names to be used in common language as well as commands.
When the product name is used to denote a command-line executable, we use the correct case (as Unix-like CLIs are usually case sensitive) and enclose it inside backticks (`).
For example: Yarn is the product name, while yarn
is the command.
Product Name | Command | Remarks |
---|---|---|
DXP | See also Liferay Portal CE | |
ECMAScript | ||
Java | ||
JavaScript | ||
Liferay JS Toolkit | ||
Liferay npm Bundler | liferay-npm-bundler |
|
Liferay Portal CE | See also DXP | |
Liferay Themes Toolkit | ||
Node.js | node |
|
npm | npm |
|
npm Registry | This is https://npmjs.com | |
OSGi | ||
webpack | webpack |
|
Yarn | yarn |