I just want to know why do Machine Learning engineers and AI programmers use languages like python to perform AI task and not C++ even though C++ is technically a more powerful language than python.
You don't need a powerful language for programming AI. Most of the developers are using libraries like Keras, Torch, Caffe, Watson, TensorFlow, etc. Those libraries are highly optimized and handle all the though work, they are built with high performance languages, like C. Python is just there to describe the neural network layers, load data, launch the processing and display results. Using C++ instead would give barely no performance improvement, but would be harder for non-developers as it require to care for memory management. Also, several AI people may not have a very solid programming or computer science background.
Another similar example would be game development, where the engine is coded in C/C++, and, often, all the game logic scripted in a high level language.
C++ is actually one of the most popular languages used in the AI/ML space. Python may be more popular in general, but as others have noted, it's actually quite common to have hybrid systems where the CPU intensive number-crunching is done in C++ and Python is used for higher level functions.
Just to illustrate:
It depends how flexible it needs to be: if you have a fully-fledged system ready for production, which is not going to need much adjusting, then C++ (or even C) might be fine. You need to put a lot of time into building the software, but then it should run pretty fast.
However, if you're still experimenting with settings and parameters, and maybe need to adjust the architecture, then C++ will be clumsy to work with. You need a language like Python which makes it easier to change things. Changing the code is easier, as you can generally code faster in languages like Python. The price you pay is that the software does usually not perform as well.
You need to decide how that trade-off works best for you. It is usually better to spend less time on coding, and not worry too much about longer run-time. If you take a day less to get your code done, that's a lot of time the C-coded version needs to catch up. Most of the time it's just not worth it.
A common approach seems to be hybrid systems, where core libraries are implemented in C/C++, as they don't need much changing, and the front-end/glue/interfaces are in Python, as there you need flexibility and speed is not that critical.
This is not an issue specific to AI, by the way, but a general question of interpreted vs compiled languages. With AI a lot of systems are still focused on research rather than application, and that is where speed of development trumps speed of execution.
Software development for AI applications can be separated into programming itself and prototyping. C/C++ is a great language to create the application because it runs very fast and can be delivered as libraries for mainstream operating systems. A precompiled C/C++ application is the gold standard if somebody want's to deploy a turnkey appliance.
C++ has a major problem, before a program can be compiled with GCC or the LLVM compiler somebody needs to know which algorithm he needs. C++ can execute a given sourcecode, and provides efficient commands but in which way the array has to be filled and which for loops are needed in the code is unclear. This question fits into the prototyping step which comes before the application gets programmed. The problem is not how to build a compiled application and deliver this as an operating system package, the problem is to play with different AI algorithm, build some gui prototypes and discuss with team members the progress.
The number one gui prototyping language which is based on scripting programming and provides near-pseudocode capabilities was invented by Guido van Rossum. It never replaced C++, but it creates a new kind of domain. There is a need for a prototyping step before the software gets implemented, especially in the innovative domain of Artificial Intelligence.
To explain why Python is superior to C++ we have to try to build a software prototype with C++. Is it possible to use that language for fast implementing a gui application? No C++ was designed not as a prototyping language with fast edit cycles, but as a solid rock for system programmers. That means, if the prototype is already working, if the algorithm is fixed and if the documentation was written it make sense to reprogram the code in C++. That means, a given Python prototype is converted into C++ and gets delivered to existing operating systems. But for the pre-step which has to do with writing papers, discussing alternatives and managing innovations, Python is the better choice.