jueves, 21 de febrero de 2019

The State of Parallel Programming


Nuevamente nos encontramos con el conflicto del avance tecnológico que está dejando detrás las habilidades de quienes trabajamos con estas tecnologías. Es importante recalcar que se vuelve inútil que la tecnología avance tanto si las personas que la utilizan no saben hacerlo para aprovechar su potencial al máximo, que es justo lo que está sucediendo con la creación de procesadores multinúcleo. Hoy existe un rezago educativo tremendo en tema de programación paralela, lo puedo decir desde mi perspectiva como estudiante de ISC que siempre se me enseñó a programar de forma secuencial y de vez en cuando, como una herramienta semi-útil, me decían que podía usar múltiples hilos de ejecución, pero no se le daba la importancia que merecía. En mi octavo semestre de la carrera, a menos de 1 año de titularme, es cuando por fin me entero de que la programación paralela es tan importante y apenas empiezo a especializarme en ella. Un poco tarde, a mi parecer.

  Ahora bien, tal y como lo menciona el artículo, no solamente la educación es un problema sino las herramientas que nos permiten generar código paralelo con menos errores y más eficiencia. Desde que aprendimos a programar, al menos en mi generación, hicimos uso de herramientas IDE’s que nos facilitaban acceder a librerías, paquetes, clases, métodos, funciones y muchas otras herramientas de un lenguaje en particular para facilitarnos la escritura del código y que nosotros sólo nos enfocáramos en que el algoritmo se ejecutara de manera correcta. Esto es prueba de que las herramientas permiten que se escriba código mejor estructurado, con menos errores y mayor eficiencia. Entonces, ¿por qué no utilizamos herramientas para generar cómputo paralelo también?, pues porque no es tan sencillo desarrollar estas herramientas.

  Yo creo que una gran parte de los programadores deberíamos poner atención en esta nueva oportunidad que se presenta, de trabajar en herramientas o lenguajes de programación nuevos que nos permitan aprovechar el hardware al 100% y generar aplicaciones más eficientes, sin errores de concurrencia y que, además, no requieran esfuerzo innecesario con trivialidades como mantener la consistencia en la información o el acceso a los datos.

No hay comentarios:

Publicar un comentario