Es una pregunta muy generica, cada tecnologia tiene un uso determinado si bien luego por flexibilidad se puede ampliar las funcionalidades para cubrir usos generales, como pasa con lua en el autoplay, al ser tan flexible se usa en infinidad de cosas.
En lenguajes de programacion, lo primero es ver cual es el objetivo, en algunos casos lo que obtienes es un binario nativo, como puede ser con c/c++ o algunos compiladores de ruby/go/python etc... en otros dependes de un framework como puede ser .net(c#/vb) java o php, en algunos casos renta mas una cosa que otra. Por ejemplo en aplicaciones de escritorio renta pues ocupan mucho menos y no tienen dependencias, pero en desarrollo web renta mas usar tecnologias dinamicas con scripting mas flexible.
Tambien influye la portabilidad entre distintos OSs, el peso del programa, necesidades de alta computacion o bajo consumo etc... Cada tecnologia tiene un uso adecuado y en cada momento se debe usar la correcta, por ejemplo en web aparte de la tecnologia de backend necesitas conocer html, css y javascript porque interactuan entre ellas.
La realidad es que todas ellas estan escritas en C o derivados, son formas de desarollar mas rapido a costa de rendimiento, peso, etc.
En cuanto a lenguajes extensibles y con potencial, para mi gusto, javascript es de lo mejorcito y con mejor proyeccion a futuro, nodejs es potentisimo y valido para multitud de tareas desde apps a web, en todos los sistemas operativos, como contra, el uso brutal de recursos que hace...
La dificultad viene dada con cada paso que bajas en la escalera framework<->nativo<->ensamblado, los frameworks tienden a tener sus propios garbage collectors que te permiten usar recursos del pc sin practicamente entender como funcionan, en cambio en lenguajes nativos estas forzado a reservar recursos para tus operaciones y liberarlos al acabar, esto puede ser conveniente en algunos casos y en otros no, en desarrollo web, esto supondria un caos, pero es conveniente para aplicaciones de alta computacion, por ejemplo.