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