Algo que he
notado con estas últimas lecturas, es el tono que usan los autores para
describir las diferencias entre el paradigma de programación secuencial contra
el paralelo. Más o menos siempre mencionan a las mismas, como que la paralela
requiere de tener más cuidado con los errores sutiles o trampas que se pueden
generar (deadlocks, race conditions etc.), así como la dificultad al momento de
diseñar programas en torno a la paralelización. Varios autores mencionan que,
aunque es difícil y “no muy atractivo”, este salto de perspectiva mental es
necesario si se quiere llegar a optimizar y mantener a la par el uso de prácticas
de hardware y software.
Creo que,
como grupo de programadores, hemos vivido una muy buena parte de nuestra vida tecnológica
en un mundo secuencial. Me incluyo a mí y a prácticamente todos los estudiantes
de la carrera de sistemas porque ese es el modo de enseñar actual. No creo que
este mal, al fin y al cabo, este enfoque permite entender de una manera simple cómo
funcionan las computadoras y los programas y aplicaciones de una manera
sencilla y sin meterse a detalles muy técnicos. Sin embargo, así como se enseña
una clase de POO que, aunque a muchos no les gusta por el esfuerzo extra y cambio
de mentalidad que requieren, es necesario impartir materias que tengan que ver
con el paralelismo.
Este
comentario no viene solamente porque me parece interesante el concepto de hacer
varias cosas a la vez, sino también de como la tendencia en el hardware ya no
va hacia la rapidez solamente, sino de cuantas cosas puedes hacer al mismo
tiempo. Esto proviene de las limitantes físicas que tenemos al momento de hacer
los componentes de nuestras computadoras. Debido a esto, creo que es un buen
momento de pasar a esta tendencia, antes de que llegue una nueva y vuelva a
cambiar el juego por completo. Como la computación cuántica, por ejemplo.
No hay comentarios.:
Publicar un comentario