So people came up with a bunch of crap-ass languages that still had the exact same abstractions as the underlying machine: a global memory that you update by issuing statements or instructions, expressions that can be computed by the arithmetic-logic unit, conditional branching and loops, subroutines. Everything you need to be “Turing-complete”, which is equivalent to von Neumann-complete.

Steve Yegge, __Math Every Day"_