@ngdoc overview
@name Developer Guide: Introduction
@description

Angular is pure client-side technology, written entirely in JavaScript. It works with the
long-established technologies of the web (HTML, CSS, and JavaScript) to make the development of
web apps easier and faster than ever before.

One important way that Angular simplifies web development is by increasing the level of abstraction
between the developer and most low-level web app development tasks. Angular automatically takes
care of many of these tasks, including:

  * DOM Manipulation
  * Setting Up Listeners and Notifiers
  * Input Validation

Because Angular handles much of the work involved in these tasks, developers can concentrate more
on application logic and less on repetitive, error-prone, lower-level coding.

At the same time that Angular simplifies the development of web apps, it brings relatively
sophisticated techniques to the client-side, including:

  * Separation of data, application logic, and presentation components
  * Data Binding between data and presentation components
  * Services (common web app operations, implemented as substitutable objects)
  * Dependency Injection (used primarily for wiring together services)
  * An extensible HTML compiler (written entirely in JavaScript)
  * Ease of Testing

These techniques have been for the most part absent from the client-side for far too long.

## Single-page / Round-trip Applications

You can use Angular to develop both single-page and round-trip apps, but Angular is designed
primarily for developing single-page apps. Angular supports browser history, forward and back
buttons, and bookmarking in single-page apps.

You normally wouldn't want to load Angular with every page change, as would be the case with using
Angular in a round-trip app. However, it would make sense to do so if you were adding a subset of
Angular's features (for example, templates to leverage angular's data-binding feature) to an
existing round-trip app. You might follow this course of action if you were migrating an older app
to a single-page Angular app.
