Glossary

The words of these pages, in alphabetical order. Each entry says what the word means here and where the pages show it.

.amd.json. A small file that tells the loader where a module’s files are. Every Amber library has a local.amd.json that maps its namespace to its src. A project adds a name.amd.json for a JavaScript library that has none. The amdconfig task gathers them all into config.js. Libraries.

AMD. Asynchronous Module Definition, the module format of requirejs. Every compiled Amber package is an AMD module, named by its namespace and its package name, such as amber-helloamber/HelloAmber. Your project’s files.

amber. The command of @ambers/cli: amber init, amber serve, amber config, amber repl. The command line.

amberc. Amber’s compiler, in @ambers/sdk. It reads .st files and writes .js files. The amberc grunt task and the amberc command both drive it. Build, test and deploy.

Announcement. Amber’s event mechanism, in the kernel. An Announcer keeps the subscriptions; announce: sends an announcement to every block that on:do: registered for its class.

Brush. In Web, the object that stands for one HTML element while a page is rendered. html div with: [ ... ] makes a div brush and renders into it. '#output-list' asBrush wraps an element that is already on the page. Building the page with Web.

Chunk format. The text format of a .st file. Chunks of source are separated by !, and an exclamation mark inside a chunk is doubled. Helios writes it, amberc reads it, and git diffs it well.

Class side. The methods of a class object, as opposed to its instances. start in HelloAmber class is one. The “Class” switch under the browser’s columns shows them. Working in Helios.

Commit. In Helios, writing a package to disk through amber serve: its .st and its .js into src/. Not a git commit. Working in Helios.

config.js. The generated loader configuration of a project, one require.config call. Helios needs it; the deployed application does not. Your project’s files.

deploy.js, testing.js, devel.js, lambda.js. The four lists of packages a project loads: for the application, for its tests, for development, for the backend. Your project’s files.

Domite. A thin library over the DOM: a cursor that is both an element and a place to insert into it. Silk builds on it, and its snippets registry serves Web too. Libraries.

Extension method. A method a package adds to a class of another package. It sits in a protocol named after the package with a star, *HelloAmber, and is committed with that package. Working in Helios.

grunt. The task runner that builds a project. Gruntfile.js defines the tasks; grunt-cli runs them. Build, test and deploy.

grunt-init. The project generator that amber init drives, with Amber’s template @ambers/grunt-init-amber-project. Install.

Helios. Amber’s IDE, in @ambers/helios. It runs in a browser window of its own, on the running application. Working in Helios.

Image. The running Smalltalk program, with every class and method it holds. In Amber the image lives in the page, and dies with the reload; the files are what persists.

Import. A module a package needs. The package’s definition lists them; the compiled .js requests them from the loader before the package is ready. An import of the form 'name' -> 'module' binds the module to a name. Libraries.

inlineJS:. The pragma that makes a method’s body JavaScript. Amber and JavaScript.

JSObjectProxy. The wrapper Amber puts around a JavaScript object it does not know, so that messages become property reads and calls. Amber and JavaScript.

Legacy IDE. The older IDE, in @ambers/contrib-legacy, which opens inside the page. Install.

Namespace. The prefix under which a project’s or a library’s modules are addressed, amber-helloamber for the sample. local.amd.json maps it to a directory. Your project’s files.

Node.js. The JavaScript runtime that runs Amber’s tools, the tests, and a backend. Amber needs version 14 or newer.

npm. Node’s package manager and registry. Amber’s libraries are npm packages in the @ambers scope. Libraries.

Package. Amber’s unit of code: a named set of classes and extension methods, with its imports. One package is one .st file and one .js file. Your project’s files.

Print it, do it, inspect it, browse it. The four things to do with a selected expression in Helios. Print shows its result after it, do runs it, inspect opens it in an inspector, and browse opens a browser on it. Working in Helios.

Protocol. The named group a method belongs to inside its class, accessing, action, starting. The third column of the browser. A protocol starting with a star marks extension methods.

requirejs. The AMD loader a page uses in development, and the optimizer that builds the.js. Build, test and deploy.

sdk. @ambers/sdk: the compiler, the grunt tasks and the Node.js test runner.

Silk. A page library on Domite. An element is a stream of its children, << puts things into it, and aSilk DIV: { ... } makes elements. Building the page with Silk.

Snippet. A piece of HTML marked data-snippet="name". It is taken off the page when Amber starts and cloned on demand, with a data-snippet-caret where contents go. Domite keeps the registry; Web and Silk use it. Snippets, markup from the page.

SUnit. Smalltalk’s unit test framework, in Amber’s kernel. A test is a method starting with test on a subclass of TestCase. Build, test and deploy.

the.js. The one script a project’s page loads. For development it holds the loader and loads every package from its file; for release it holds the whole application. Your project’s files.

Transcript. Smalltalk’s log. Transcript show: 'text' writes to the pane under the workspace in Helios, and to the console under Node.js.

Web. The original page library, @ambers/contrib-web, with brushes, canvases and widgets in the style of Seaside. Building the page with Web.

Workspace. An editor in Helios for code that belongs to no method. Type an expression, select it, and print, do, inspect or browse it. Working in Helios.