The [Prime] programming language theory states that
there is only one language for any given computational architecture. So, then,
for any given language (if we design that first to meet our desires for
[elegance] and [expressivity]), we may then ask "What is the engineering
to make this language most efficient?". This may be a more satisfying
engineering trajectory than the standard von-neumann process of making a fast
processor and giving it access to lots of memory.
The Church-Turing thesis states that all computers (satisfying some minimal
requirement like "Turing completeness") are equivalant, however, despite this,
there can be very different desires for computation, as the Turing
completeness doesn't account for the timing in which we want things done or
the work required. These are the practical concerns of the engineer and
these different concerns can end up with very different hardware designs.
Consider asynchronous computing, whereby one simple computational event
triggers another, without a cl0ck, sometimes called "event-driven"
programming, but implemented (poorly perhaps) on standard synchronous
hardware. The language for such an architecture might resemble something like
a graph or neural network flow.