Davis Lowering the bar to programming is always a good thing. You could make that exact argument for high-level programming languages (if you're not working with the hardware, you could make a mistake and not understand what you're doing, etc, etc) or even assembly code (if you're not working in binary/hexadecimal/pointers you could make a mistake and not understand what you're doing).
The more abstraction there is, of course, the more potential for the fault to be with the abstraction layer or its dependencies. But we've gone from programming being an engineering-level career, to something that can be self-taught, to potentially sitting down and just doing it. That's amazing!
Stuff like this will never truly replace programming. There will always be a need for machine code programmers, assembly language programmers (drivers? Hello!), for high-level language programmers, for web programmers, etc. Every new layer of abstraction requires someone to build the abstraction layer and maintain it. Considering the proliferation of platforms, hardware and devices in our current ecosystem, the need for many of these people isn't going to end anytime soon.
Overall, I think this is a good thing.