As of 2017, humans can (with assistance of various software tools) program machine learning (ML) systems that can learn to do various tasks – for example, recognize text, transcribe speech, or play games.
ML systems are currently not very good at writing programs to accomplish a specific purpose, though there are efforts in this direction, and some software systems (e.g. Mathematica and Wolfram-alpha) which are quite high-level programming systems. (See the related question here).
If or when AI/ML systems become competent enough to do fairly general-purpose programming, for example to construct by themselves (according to some specifications) the types of narrow AI systems that AI researchers can create as of 2017, there could be a very rapid proliferation of such narrow AI systems since they could be constructed to-order for all manner of purposes even by non-programmers.
If an AI/ML system could become competent enough at programming that it could design a system (to some specification) that can itself design other systems, then it would presumably be sophisticated enough that it could also design upgrades or superior alternatives to itself, leading to recursive self-improvement that could dramatically increase the system's capability on a potentially short timescale.