However, I wonder if these abstractions are detrimental to developers understanding the underlying technology? I'm not a supremely experienced developer but it takes very little effort to understand, for example, ufw and iptables on Linux distros.
Personally, though I'm (mostly) front end, I spend the majority of my time on the command line. My main editor is vim, I write bash scripts to do what I need instead of manually performing tasks, I often just use `cat` to write files instead of opening my editor, etc.
I found that managing things from the command line such as firewalls, daemons, and other tasks like managing databases, gave me deeper comprehension of what's going on. Are abstractions like this becoming crutches for tomorrows' developers?