# Echo (framework)

Echo is a web application framework created by the company NextApp. The latest iteration, Echo3, allows writing applications in either server-side Java or client-side JavaScript. Server-side applications do not require developer knowledge of HTML, HTTP, or JavaScript. Client-side JavaScript-based applications do not require a server, but can communicate with one via AJAX.
It is free software licensed under the terms of the Mozilla Public License (MPL).

## Echo2

Echo originally started as a request-response web application framework that leveraged the Swing object model to improve the speed of application development. Through the use of the Swing model, Echo was able to employ concepts such as components and event-driven programming that removed much of the pain of web application development.
In late 2005, NextApp formally announced the release of their new Ajax based web application platform, "Echo2". This framework built on the concepts of Echo (well known API, total web abstraction) but delivered the additional benefit of being an Ajax environment. NextApp believed that this approach brought the framework extremely close to the capabilities of rich clients. NextApp also claimed that this reincarnation of the Echo framework provided dramatic performance, capability, and user-experience enhancements made possible by its new Ajax-based rendering engine.

## Echo3

During 2007, development on a third generation of the framework, Echo3, began. The focus of this evolution was to move away from generating markup on the server side, and instead to implement rendering peers as native JavaScript objects, with an XML-based state synchronization protocol between client (web browser) and server. This was developed in tandem with a core JavaScript framework, providing the ability to define inheritance hierarchies in JavaScript in a way familiar to developers of object-oriented languages.

## Competitors

Echo is often compared to frameworks such as Google Web Toolkit (GWT) as both Echo and GWT (among others) offer a programming model that completely abstracts users from the web tier. However Echo differs substantially from GWT in the way it interacts with JavaScript. GWT essentially implements a subset of the Java API in JavaScript, and as such, Java code is compiled to JavaScript and fully executed on the client side. On the other hand, Echo has offered a dual-stack approach since version 3. Applications can be written in JavaScript (client-side) or Java (server-side) or in mixed forms.
Comparable frameworks include Vaadin, RAP, ZK, OpenLaszlo, ICEfaces, ThinWire, Apache Wicket, and jSeamless.

## Associated projects

Echo2 has inspired various add-on projects including:
* EchoPoint: "Next Generation": The most well known 3rd party component library for Echo2
* Hibernate-Spring-Echo: An effort to provide an out of the box application framework that includes Echo2
* Google maps for Echo2
* Google maps v3 for Echo2
* Gantt Charting for Echo2
* Echo2Faces: An effort to provide XML markup for Echo2 UI layouts
* jZeno: A full-stack application framework that uses a highly optimized version of the original Echo framework as rendering engine.
* Aejaks: A Jacl layer on top of Echo2 to easily create rich web applications.