My first programming language was PL/1. (Look it up if you need to, kid.) My second was Pascal, and then in the summer of 1982 I was introduced to two more: C, and the Unix shell. I realized that C was a programming language right away, mostly because that's what people said it was. It took me longer to realize that the shell was also a programming language; I still remember the first time the sys admin responsible for our VAX 11/780 wrote a 'for' loop on the command line to try my program for each of several input files.
and other compile-to-JS languages are leaky too, but the shell is as close to being leak-free as any abstraction layer I can think of. In almost 30 years of nearly constant use, I've almost never had to think at the C level in order to debug a problem at the shell script level .
And hey, it would give us a chance to choose command names that are more mnemonic than 'ls' and 'mv'... :-)
 And the times I did were my own fault, because one of the components in my pipe was a program I'd written myself, which didn't fork properly, and---never mind, it's not important.