Hola...
Sobre lenguajes de programación hay muchos mitos y algunas realidades.
Para empezar te recomiendo metodología. La metodología te llevará a crear una aplicación de forma eficaz (hablamos de supuestos). Luego viene la implementación.
Hoy en día crear una aplicación completamente en ASM es sólo para quienes tiempo. En mi trabajo antes era así y, hace como tres años ordené un cambio en la forma de hacer las cosas simplemente por productividad.
El ensamblador queda únicamente para aquellas funciones (llamales procedimientos, estructuras o como quieras) que requieran toda la potencia y accesibilidad del microcontrolador. ¿Que importa si haces en C, Pascal, Basic, etc una interface de usuario? El micro siempre va a ser lo suficientemente rápido como para no complicarte la vida con eso.
En el trabajo cotidiano he de enfrentarme a retos de todo tipo. Desde equipo de laboratorio, a simples relojes o tableros informativos. Transmisores de radio, comunicación digital, etc. Y, en estos momentos rara vez recurrimos al ensamblador.
Ensamblador tiene un gran problema: Su mantenimiento. Pasado un tiempo te costará mucho trabajo retomar una aplicación para modificarla incluso con una buena documentación. Eso sin contar si otra persona fue quien la implementó.
Sobre lenguajes de medio y alto nivel.... Cada cual tiene su opinión, pero no puedo sino poner una sonrisa de aquellos que reniegan de BASIC. Lo más normal es que no lo conozcan, es un lenguaje muy desprestigiado para empezar por su propio nombre. Pero te aseguro que algunos sistemas con PCF para control en tiempo real los desarrollo en alguna versión de BASIC. Incluso tengo por ahí una consola con una aplicación de un osciloscopio de 2 canales de BF sin una sola línea de código esamblador.... Y ya puestos, ateniéndome a programación estructurada: Todo procedimiento o función tiene una sola entrada y una sola salida. Por tanto, no hay un solo salto incondicional (goto)... Incluyendo firmware para control de displays SED y T6963 con micros pequeñitos, modbus, etc.
Otro de los lenguajes con los que trabajo habitualmente es Pascal. Pascal para PC (Lazarus que no es más que Freepascal con su IDE) y MikroPascal para PIC y otros micros. A los maniáticos de C sólo les digo que, si C hace listas, Pascal está diseñado para listas. C es un compilador puro, Pascal también. Y así todo. ¿Porqué uso Pascal? un poco por llevar la contraria a las modas y mucho por la legibilidad para la revisión y mantenimiento de una aplicación.
En realidad, cuando programas lo haces con independencia del código ¿verdad? so Eso es hacer las cosas con cierta planificación y metodología; entonces usa el más adecuado y con el que más herramientas tengas a mano, o incluso puedas creartelas.
Un saludo,
Angel