¿POR QUÉ C SIGUE SIENDO RELEVANTE AUN EN EL 2022? (Y LO SEGUIRÁ SIENDO)

 ¿Por qué mucha gente aprende C, un lenguaje creado en la decada del 70, cuando python puede hacer las cosas bastante más sencillas?


Por que, en realidad, no puede.

ECU (Engine Control Unit) BOSCH de un Volkswagen New Beetle
ECU (Engine Control Unit) BOSCH de un Volkswagen New Beetle



La ECU de un auto moderno es una computadora que no corre ni linux ni unix ni windows. Posee un sistema operativo que corre en tiempo real (RTOS o Real Time Operating System). Entre sus funciones se encuentra el deployado del Airbag, los frenos, la aceleración y la combustión. Una ECU por si sola no se puede dar cuenta si el auto está chocando, frenando, o pasando por una calle de tierra que zarandea el coche para todos lados.  Su manera de detectar frente a qué escenario se está enfrentando el vehículo es a través de un sensor inercial que indica aceleración y rotación sobre los tres ejes tridimensionales. Miles de veces por segundo.

Cuando la suma vectorial de las tres aceleraciones supera un determinado umbral, la ECU asume que el auto está chocando y no transitando sobre una calle de adoquín o terreno difícil.

Volviendo al tema, y entenderán por qué tomé a la ECU como ejemplo, es por el hecho que cuando el vehículo está frente a un escenario de choque, los scripts de seguridad deben ejecutarse en un tiempo record y absolutamente predecible. Una mínima latencia puede ocasionar que el deployado del airbag suceda después del impacto y el conductor o conductora se parta el marote contra el volante.

C, el lenguaje de programación, es un lenguaje que llega directo al hardware en 1 milisegundo. Esa es la interrupción en el kernel. Esta latencia ha sido así en el pasado, en el presente y lo será así siempre. Todo el código sigue con suma presición al reloj del procesador. Es decir, la única latencia es la producida por el cristal de quarzo.

Ahora si miden la latencia en lenguajes como python,  que no es mala, es, desafortunadamente variable. 

Es por eso que tanto para una ECU como para cualquier otro tipo de hardware crítico, C (y C++) continúan siendo los lenguajes de programación utilizados y lo seguirán siendo.


En resúmen, python es un lenguaje asombroso del que conozco muy poquito y si bien su aplicación se ha extendido a un montón de campos en la actualidad, también es igualmente cierto que hay cosas que python no puede reemplazar, y dudo que reemplace, al menos, en un futuro cercano.




0 comentarios:

Copyright (C) 2019 - Chica de Sistemas. Con la tecnología de Blogger.

Páginas