• Stars
    star
    727
  • Rank 62,329 (Top 2 %)
  • Language
    Go
  • License
    Apache License 2.0
  • Created over 10 years ago
  • Updated over 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Escher: A language for programming in metaphors http://escher.io

Escher in language

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