#6 Hay una utilidad práctica más, derivada de que mucha gente no opina igual, al menos en parte
En la mayoría de entrevistas que tienen mis estudiantes, haber hecho un juego en ensamblador es un activo muy valorado. La mayoría de ellos me comentan que suele ser lo primero por lo que se interesan y les preguntan. En muchos casos, ha resultado ser motivo de que los contraten.
Y respecto a que ensamblador no se usa, resulta que una proporción no despreciable de estudiantes ha terminado haciendo cosas directamente en ensamblador. Tengo varios de ellos en empresas de robótica programando microcontroladores en ensamblador. Algunos están en nvidia de estancia aprendiendo ensamblador de las tarjetas gráficas. Tengo un grupo en ARM que están optimizando rutinas de multiplicación de matrices. Y, como no podía ser de otra manera, tengo a unos cuantos trabajando en compiladores que se ocupan de diseñar lo que el compilador debe producir como salida. De estos últimos, hay bastantes que están siendo contratados ahora mismo para arquitecturas RISC V, en las que hay mucho que hacer todavía con los compiladores.
El mercado laboral es muy diverso, y las necesidades reales también. No creo que estos trabajos sean los más demandados, pero tampoco son residuales. Son un nicho, como otro cualquiera. Eso sí, un nicho donde se cobra bien, porque cada vez hay menos oferta de trabajadores.
Muy a menudo todos caemos en la trampa de pensar que nuestro entorno de conocimiento es representativo del global. Lo cierto es que siempre hay mucho más allá de lo que conocemos :).
Conozco 10 tipos de personas: quienes saben ensamblador y los que no
Quienes saben ensamblador, suelen opinar que entienden mejor la máquina y los conceptos fundamentales. Gracias a esto, suelen programar mejor en cualquier nivel y asientan mejor los nuevos conocimientos, sobre explicaciones más ajustadas a la realidad. No suelen criticar ensamblador, y ven con buenos ojos su aprendizaje, por los beneficios globales de entendimiento, más que por su uso directo potencial.
Quienes no saben ensamblador no pueden ver todo esto, debido simplemente a que lo desconocen. Suelen pensar en ensamblador como algo difícil, innecesario o incluso arcaico. Suelen asociarlo únicamente a optimización, y refuerzan con ello su carácter innecesario. Es habitual que critiquen la enseñanza/aprendizaje de ensamblador: suelen preferir lenguajes de alto nivel, y argumentar que son más útiles en el día a día o el trabajo. Les suele contrariar o molestar la opinión de quienes saben ensamblador, y suelen rechazarla.
Moraleja extrapolada: ensamblador te hace criticar menos y ser más feliz
Y ahora en serio, dos cosas al respecto:
1. Cambiando ensamblador y sus propiedades por cualquier conocimiento básico X, seguramente pase lo mismo.
2. Hasta la fecha, todos los mejores profesionales programadores que conozco son del tipo 1: saben y valoran ensamblador. La mayoría no lo usa en su día a día (de forma directa), pero valora el conocimiento que tiene gracias a él.