Front End Jargon Buster

With so many tools and packages out there I thought I'd try to wrangle together some sort of coherent list.

This is by no means exhaustive but covers the things I use and have heard off but not got to experiment with yet.

Frameworks

AngularJs -
Google's front end MV* framework.

React -
Facebooks Front end framework

Elm -
A nice functional front end framework. It's inspired some of the content going into Angular2. It's a functional framework inspired (I beleive) by Haskell.

Backbone -
Backbone.js gives structure to web applications by providing models with key-value binding and custom events, collections with a rich API of enumerable functions, views with declarative event handling, and connects it all to your existing API over a RESTful JSON interface.

Ember -
Handlebar templates. A framework that is accessible and focused on making developers productive.

Package Managers

Bower - Front end dependency management. Used in build process with, most likely, Grunt or Gulp.

NPM - Node package manager for front end tools/components used during build / test.

JSPM - Load any module format (ES6, AMD, CommonJS and globals) directly from any registry such as npm and GitHub with flat versioned dependency management. Any custom registry endpoints can be created through the Registry API.

Webpack - Webpack is a module bundler.
webpack takes modules with dependencies and generates static assets representing those modules.

Browserify - Browserify lets you require('modules') in the browser by bundling up all of your dependencies.

Module Types

Universal Module Definition (UMD) - Module definition pattern that allows for AMD and CommonJS modules, where the module system is determined at runtime. Can be used on server or browser.

Asynchronous Module Definition (AMD) - Module definition pattern with RequireJS being most popular implementation. Mainly used in browsers.

CommonJS - Module definition pattern similar to the one used by Node. Mainly used on the server.

ES2015 Modules - Module system as defined in EcmaScript 2015, potentially removes need for UMD as ES2015 become new standard.

Further reading:
http://exploringjs.com/es6/ch_modules.html
http://jsmodules.io/cjs.html

Functional Libraries / Extensions

lodash - Functional utility library, similar to underscore.js.

RxJS - A set of libraries to compose asynchronous and event-based programs using observable collections and Array#extras style composition in JavaScript.

Patterns

Flux - A pattern that relies on a single directional data flow makes it easy to understand and modify an application as it becomes more complicated.

Redux - Redux evolves the ideas of Flux, but avoids its complexity by taking cues from Elm.
Whether you have used them or not, Redux only takes a few minutes to get started with.

Streams - See RxJS...

Linting

ESLint - Linter allowing custom rules to be defined and more...

JSLint - The original Javascript linter developed by Douglas Crockford.

JSHint - A fork of JSLint.

Testing

Jasmine - A BDD test framework for Javascript.

Karma - A test runner for Javascript.

Protractor - End to end testing for AngularJS.

Animation / Visualization

GreenSock - Comprehensive library for javascript animations.

Velocity - Lightweight animation library.

D3 - Library for creating data visualizations.