Escher language

Web pages and links form a graph. Datacenter computers and cables form a graph.
Application processes and connections form a graph. Facebook users and
friendships form a graph. Facebook groups and memberships form a graph.
Neurons and synapses form a graph. Threads and shared data structures form a graph.
Processes and sockets form a graph.

Not only are all of the above situations visually described by graphs, but also
their essential behavior (as best as we understand it) is the same in all cases:
Independent processing units, pairwise-interlinked by sequential channels—both channels
and processors emerging and disappearing asynchronously.

Three decades ago, before the above examples were within practical reach,
a British gentleman—named Tony
Hoare—had noticed that this essential behavior was exhibited by virtually
all identifiable interacting physical (as well as man-made abstract) entities: People interacting with people,
people interacting with vending machines, components of vending
machines interacting with each other, animals interacting with animals,
cells interacting with cells, proteins interacting with proteins, and so on.

He called this high-level behavioral model of the world (or discernable subsystems thereof)
Communicating Sequential Processes.
Hoare's model is nothing more and nothing less than a minimal abstraction of how
we see and understand (and subsequently will to control) the world from an
observer—i.e. third person—point of view.

I prefer to call such systems circuits both for brevity and for the fact that
electrical circuits were probably the first man-made manifestation of communicating sequential
processes that was rich, flexible and not present in untouched nature.

Today's connected Internet services and devices are no different than electrical components on
a circuit: They are independent processing units communicating via sequential streams of
data, as opposed to sequential streams of changes in electrical voltage. The difference
between circuits analog and digital is entirely linguistic: It is the difference between a
floating-point number (the voltage) and a data structure (a digital message).

If it is indeed the case that most things that we program or that we program about
are circuits at the end of the day, then it is only appropriate to complement Hoare's
model of everything with an appropriate programming language. This is the goal of Escher.