A Historical Perspective
As the art of programming has continually and increasingly tried to move away from bare-bones down-to-the-metal machine instruction sequences, more-structured programming approaches have entered the programmer’s toolbox.
It should be clear that low-level manipulation of machine state in terms of registers, manual memory management, valid instruction ordering, and so on is not the most appealing way to program enterprise-level applications (or, in fact, anything beyond the lowest levels of kernel or driver primitives).
One of the first advances made in democratizing programming was the introduction of textual symbolic languages, moving away from raw byte sequences. Although assembler languages were an obvious first target, ...