Skip to content
This repository has been archived by the owner on Oct 26, 2021. It is now read-only.
Lars Gersmann edited this page Jun 18, 2013 · 11 revisions

What is it ?

Ampere can be best described as a evolving pattern for writing applications.

It combines common patterns like modules, states, transitions and views as semantic contexts of your application.

All these things may sound really abstract but will give you a change to build scalable applications.

Fortunately Ampere delivers not just vaporware, but also a production ready implementation based on

usable in the most modern browsers.

Why

Every developer has its individual style of programming. Tell 10 developers to code the same application and you will get 10 completely different code bases back. And you know what happens if developer takes over the application source from another developer : he needs a lot of time to get a clue how and why the original author was writing code this way.

Ampere cannot prevent that 100% - but it can help developers to think in the same manner by providing a application infrastructure implementing a few core patterns.

The patterns behind Ampere evolved within the last decade while I did web application development. Nevertheless the philosophy matches almost any application environment from mobile apps to heavy weight desktop applications.

Some of the patterns are from the Pleistocene of computer programming era, but they are like a mathematics - always true. Others like Promises are only a few years old. Both combined give you much more freedom to concentrate on application logic.

There are many other frameworks on the market trying to solve the gap. Most of them give your application a structure by providing some kind of routing. But : applications have also a state.

What else ?

Ampere

  • will give developers a standardized way implement their application logic.
  • let you place your code in semantical contexts like states and transitions
  • makes your application modular
  • makes your code a lot smaller
  • the structural architecture of Ampere applications makes it possible to develop a browser based RAD environment for applications (see d3 example folder of Ampere RAD for current progress).
  • developer teams will love Ampere! Because of the separated semantical contexts many peaple can easily working in parallel on a application.
  • Writing tests for Ampere is easy ! The graph based user interaction of Ampere makes it very easy to test our application logic also out of the browser.
  • Undo/Redo support is a built in feature of Ampere. The Ampere architecture results in infinite Undo/Redo support without any hassle.
  • Everything of Ampere is assumed to be a Promise. That means that everything can be done in a deferred manner. You don't even need to take care of async operations like ajax calls - Ampere supports it natively.
  • Cross sematic context messaging is supported by ampere events. Ampere is triggering events for almost everything you want to know.
  • Ampere is expression based. Most properties like enabled etc. can be defined using functions returning the real property.

Because of its natural appearel Ampere applications are understandable by non programmers (not everybody, but at least your manager / customer).

Clone this wiki locally