Code isn’t just execution, code is also abstraction. You need to be able to understand requirement => unit of work. Unless you’re an uber geek this mostly isn’t the case and reading and retaining any amount of assembly will be practically impossible. In a wishful world you could simply have a bunch of markdown specifications that are executed as machine code. But specifications are by design usually ambiguous, and so you need to build some level of abstraction to be able to accommodate and still understand that. That’s what code does, or should do