Ambitious web applications are not documents

They are as interactive with a seemless UX as native apps. Without the need to rendering the whole page for interaction.

Ambitious web applications are statefull

We’ve used URL-encoded state variables, cookies and the like to keep track of what the user has done and is doing across multiple HTTP requests.

Ambitious web applications are long-lived

Modern web applications are now “long-lived,” meaning the application could be open in a browser instance for hours at a time without reloading the page. The upside, as we’ve celebrated, is that you can load gobs of additional data from the server without having to reload your application every time. The downside is that you now have to manage those gobs of data. If you simply keep adding data, without releasing any of it, you will fill up your RAM in short order, locking up the browser and showing your user a “busy” cursor.

Ambitious web applications have architecture

For software architecture, design patterns could give us a middle ground—between object and implementation—to talk about common feature-sets and requirements. One of the more popular patterns to come out of this movement was the “Model-View-Controller” (MVC) pattern.