domingo, 24 de enero de 2016

El mundo habla C (After all these years, the world is still powered by C programming) (Comentario)




Uno de mis primeros acercamientos hacia la programación se remonta a mis épocas de preparatoria en el ITESM CEM, donde llevábamos un curso de ingeniería básico trabajando sobre la plataforma Arduino. Para los que no estén informados al respecto, el Arduino es una plataforma open source de programación y sistemas electrónicos embebidos en una pequeña tarjeta programable. El lenguaje que utilizábamos (antes de movernos a Pyserial, la plataforma de Python) era C, y de buenas a primeras me pareció muy útil para lo que se estaba haciendo, pues podíamos manipular directamente el voltaje de cada uno de los puertos de la tarjeta con un simple "HIGH" o un "LOW".

Aun empezada la carrera de Sistemas Computacionales, C siempre me pareció un lenguaje un tanto primitivo por su cercanía al hardware, entre otras manías del lenguaje como plataforma de alto nivel (declarar el iterador de un for como una variable aparte, usar caracteres como números, etc.) Sin embargo, reconozco la omnipresencia que este lenguaje tiene en todos y cada uno de los sistemas computacionales y electrónicos de todos los días, vamos, incluso llego a preguntarme si el tope para puertas está programado en C al igual que todo lo demás.

El artículo "After All These Years, the World is Still Powered by C Programming" nos habla sobre las diferentes ventajas que tiene el lenguaje C sobre el resto de las plataformas, aunque decir "ventajas" me parece inapropiado puesto que C en si mismo ya es una plataforma dominante de la programación de sistemas. El autor celebra la portabilidad del lenguaje, su simpleza y sobre todas las cosas, su eficiencia sobre el resto de las plataformas.

La eficiencia es el producto de esta cercanía al hardware que he mencionado, ya que aunque C se puede usar para tareas de alto nivel (calcular cada cuantas horas alimentar a mi gato, entre otros cálculos simples), su principal uso es para programación a nivel sistema, por lo que no sorprende que se mencionen ejemplos de sistemas que de buenas a primeras parecen ser muy simples como un microondas. Yo, sinceramente nunca reparé en pensar sobre el nivel de sofisticación de la programación de un microondas, en realidad pensé que sería nula, pero comprendiendo la simpleza y la extensión corta de un programa en C, veo cómo entraría algo así en una de las máquinas más simples.

Si se pudiera hacer un símil, diría que C es el inglés de los lenguajes de programación, plaga nuestra vida con pequeñas expresiones (palabras como "boiler", siendo similares al uso cotidiano del microondas), y, para bien o para mal, los programadores o desarrolladores de software deben de conocerlo bien para ser eficientes en su trabajo. La universalidad del idioma inglés puede ponerse al nivel de la portabilidad del lenguaje C, por lo que casi cualquier persona podrá entender si les hablamos en inglés, como casi cualquier plataforma entenderá un programa de C si está dirigido hacia ella por su modularidad.


Tras esta comparación no cabe duda que, si bien no es vital, es bastante recomendable aprender C para poder tener un mejor entendimiento de diferentes sistemas y para poder manejar esta plataforma que se encuentra en cada rincón de nuestras vidas.

-Francisco Geada Rodríguez

Referencias:
Arduino. (s.f.). What is Arduino? Recuperado el 22 de Enero de 2015, de Arduino: https://www.arduino.cc/

Trejo, D. A. (s.f.). After all these years, the world is still powered by C programming. Recuperado el 22 de Enero de 2015, de Toptal: http://www.toptal.com/c/after-all-these-years-the-world-is-still-powered-by-c-programming

No hay comentarios:

Publicar un comentario