Hay un problema de base en la enseñanza de la programación desde hace mucho que es que se está abrazando los lenguajes de programación más fáciles para vehicular la enseñanza universitaria. Eso fue en su momento Java, y más recientemente se ha cambiado a Python. El problema que tienen es de rendimiento, pero los nuevos programadores creen que eso de manejar punteros de C no es programar. De ahí se llega a las tecnologías web, JavaScript y entornos de desarrollo como Electron, que se usa para desarrollar Discord como multiplataforma, y al final se llega a los problemas de memoria que tiene Discord.
Mientras que los supuestos ingenieros de Discord buscan soluciones a sus problemas de alto consumo de RAM —que difícilmente van a solucionar sin prescindir de Electron en particular y JavaScript en general—, la solución de sus (des)ingenieros es hacer que el cliente se reincie solo cuando detecta que supera los 4 GB de RAM. No lo hace en mitad de llamadas o cuando se está haciendo algo. Se puede llegar fácilmente a ese punto debido a que al final Electron usa para las ventanas un navegador web, cada vista de la aplicación va por separado y requiere su propia RAM, etc.
El problema de fondo es que se opta por velocidad de desarrollo a costa de que el usuario tenga que invertir más en su PC. No es que 16 GB de RAM no sean suficientes para hacer funcionar Windows. El problema es que la optimización brilla por su ausencia hoy en día en base a que si el usuario siempre puede comprar más RAM barata y listo. Lo cual lleva a que ahora la RAM no está barata —200 euros los 16 GB de DDR5—, y la incapacidad de los programadores de hacer de ingenieros es palpable. Una cosa es que alguien sepa programar, y otra cosa es que sea ingeniero.
Un buen rendimiento y la minimización del uso de recursos importan, por lo que la única solución de Discord sería pasarla a C++, Rust o algo que realmente sea eficiente. JavaScript y Electron no lo son en un entorno de aplicación de escritorio. El coste de migrarlo no sería tan alto como parece, pero como los equipos de desarrollo están sobredimensionados y con bajas capacidades de hacer de ingeniero —muchos son curritos al fin y al cabo—, y los jefes no quieren hacer de ingenieros, al final van a ser casi todos sustituidos por aquello que no tiene problemas con la dificultad de optimizar: una IA. Por no hacer bien el trabajo hoy, empezando por la enseñanza universitaria, se está empujando a las empresas a decisiones de prescindir trabajadores de bajas dotes de ingeniero. Menos Python por doquier y más C.
Vía: Videocardz.