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