> We coded in assembler, then used macros, then a language like C, Fortran, then more of Java/Go/Puthon/Rust/Ruby et al.
The difference is that:
1) All of those things are deterministic [1]
2) In all of those cases I can debug at the level of the abstraction.
[1] Meaning: Do exactly what I say. Don't make it up.