Escher: A language for programming in pure metaphors
Escher is a simple syntax for representing generic labeled graphs called circuits, much like XML is a (not-so-simple) syntax for representing generic labeled trees.
Escher graphs can also be interpreted as executable circuits of independent processing units. In this way, Escher circuits (used as code) can manipulate Escher circuits (representing data), thus achieving linguistic uniformity between algorithm and data.
In contrast, the standard language for manipulating XML—JavaScript—being designed after-the-fact, constitutes an altogether unrelated semantic and syntax compared to XML.
The analogy between Escher programs manipulating Escher circuits and JavaScript programs manipulating XML is not co-incidental. The Escher Runtime is, in fact, our proposal for a new “headless browser”, which we sometimes also call the “backend browser”, because with Escher one is able to manipulate entire data centers the way one manipulates the DOM of a webpage.
Escher was designed to enable a new programming paradigm for software that needs to control large heterogenous distributed systems consisting of failing components and connections.
With Escher, one views the entire technology stack of a typical Internet company (backend services, mobile apps, outsourced cloud apps, and so on) within a single program.
Sponsors and credits
- DARPA XDATA initiative under the program management of Dr. Christopher White, 2013–2014
- Data Tactics Corp, 2013–2014
- L3, 2014