We programmers can lay back and inherit the vendor's assumptions. We accept the structure of the universe implicit in the tool. We become dependent on the vendor. We let knowledge about difficulty and complexity come to reside not in us, but in the program we use to write programs. No wizard can possibly banish all the difficulties, of course.
Programming is still a tinkery art.
So a certain degree of specialization has always been needed. A certain amount of complexity-hiding is useful and inevitable. Yet, when we allow complexity to be hidden and handled for us, we should at least notice what we're giving up. We risk becoming users of components, handlers of black boxes that don't open or don't seem worth opening. This not-knowing is fine while everything works as we expected.