Well yes c++ difference only comes into play when you start to write nodes that actually participate in a major computation, OR your project is huge. Because c is a strongly typed language it may actually warn you fr before you do something stupid.
both the scripting interfaces are like generals who command people to do stuff, whereas both of the api interfaces are like grunts whose job is to run as fast and do the dirty work. Now instructing things on the level of the general is much more fun and productive than starting to instruct the grunts. Especially since when instructing grunts you need to build a genarl level vocabulary too.
So on script level the command might be
CODE
change wheel
but the grunt level isntruction is something like this:
CODE
change wheel:
find indicated car:
check what tools are at hand
find new wheel
if proper tools and new wheel and wheel on car:
pick them up
go to car
lift car with jack
open bolt 1
open bolt 3
open bolt 2
open bolt 4
remove wheel
get new wheel
close bolt 1
close bolt 3
close bolt 2
close bolt 4
report back
else:
complain
now you STILL need to call the general level command to get anything done, but also need to do the gruntwork.
However its not entirely smart to make the general do the grunt work himself because he is much slower to do stuff without his grunts than with them. So once you reach the limits of your general dont program him to do the grunt work because thats not what he is there for. Also the general is fat, and proud so he cant reach all areas. And like in real army once the general starts to individually command each and every grunt it gets inefficient and hard to maintain the information. And off course the subordinates already maintain this info so no idea in double book keeping ask the subordinate for the info.
Mel has this constraint much more bang on than the python, because the area is gray you may plow directly into the grunt area just to notice you are there but are also wery deep in it so converting the code is starting to be pain because yes its python, but the api isn't the same thing it requires a different set of thinking. So in mel your actuually cosntarined to thinmgs, once it gets tedious you KNOW its notreally a mel job. Whereas in python you will miss this if your not so familiar with how mayas organized.
So its fine if he has a few lists, but once he starts to have some algorithmic code its best to start looking at either the python api intetaface or c++ api interface. SDimply because mayas script inetfaces aren't designed for doing computational work. They are designed for assembling computational factories form nodes.
the general division is as follows:
gui-> script
gui automation-> script
export -> api
dg and dag computation-> noscroipt expression or api
View port stuff other than huds-> api
shader nodes ->api / mr api (mentalray shader nodes are excluded form maya api)
PS: a python list is exactly like a mel array, id oly switch to python if i need objectual dictionaries honestly. Even then im inclined to think this is work for the api section.
PPS: mel is much more compatible than python between versions!