# Nevow Athena from Scratch, or The Evolution of a Chat Application

## The Chat Tutorial Series

Athena is the JavaScript engine behind Nevow, providing a great deal of resources and power to the developer of asynchronous web applications. To demonstrate this, we are using a web chat application as our primary example in this tutorial. The tutorial is split into several parts: a few introductory pages and then independent (but related) tutorials of increasing complexity.

1. Basics
   - Introduction
   - Concepts of Athena: AJAX, COMET, and Python
   - Setting Up the Tutorial Environment and Running Tutorial Source Code
2. Toy Echo Application
3. Simple Chat and Two-Way Communications

## History

Nevow's predecessor was Woven (and prior to that, WebMVC). Woven had something called `LivePage` that was doing DOM manipulation as far back as 2002. In early 2003, Woven event handlers supported sending JavaScript back to the user's browser, allowing pages to be updated in response to user-generated events. The earliest publicly visible revisions of Nevow made use of XHR (XMLHttpRequest) in early 2004. These facts are notable because Nevow was using AJAX a year before the term was coined in 2005 and had working code in 2002 and 2003 that predated Netscape publishing articles on what they called Inner Browsing where all navigation takes place withing a single page.

Again taking the lead, Athena offers features which developers cannot find elsewhere. In this series, we attempt to expose these excellent qualities to the world of application developers.