En esta ocasión, leímos el paper escrito por
nuestro profesor de programación multinúcleo, Ariel Ortiz, el cual fue
publicado en el contexto del SIGCSE’11. En este articulo se trata principalmente
la enseñanza de programación concurrente utilizando el modelo de pase de
mensajes (message-passing) de Erlang.
Adicionalmente, podemos explorar de nuevo las
principales características de las lecturas que hemos hecho acerca de la
importancia de la programación concurrente al aprovechar plenamente los nuevos
modelos de arquitectura computacional o la distribución de tareas a través de
diversos equipos a través de la red.
Un apartado que me pareció especialmente
importante es To Mutate, Or To Not Mutate, donde se exploran las principales
debilidades del modelo concurrente en lenguajes diseñados bajo el paradigma
procedural u orientado a objetos, ya que hace énfasis en que la raíz de todos
los problemas de sincronización surge básicamente al permitir la mutación de estados,
y obviamente la falta de atomicidad de los cambios, sin embargo, al reducir las
variables a estados no mutables, o finales, se reduce considerablemente la
complejidad de las implementaciones concurrentes.
El uso de Erlang para implementación de algoritmos
u sistemas concurrentes me parece interesante, ya que permite una
implementación un poco mas transparente de los algoritmos desde su fase de
planeación y producción, del lado del desarrollador, sin embargo, me parece que
su API es algo limitado, además de un poco diferente a lo que los demás
lenguajes funcionales (y naturalmente los procedurales) nos tienen
acostumbrados. Por lo que creo que
prefiero (al menos por ahora) un lenguaje como Clojure, que implementa un API
mucho mas extenso e inherentemente seguro en lo concurrente.
Para concluir, creo que lo que me parecería
interesante, y espero ver en el futuro, seria un lenguaje naturalmente paralelo
que además implemente alguna forma de objetos, para poder encapsular
funcionalidades.
No hay comentarios:
Publicar un comentario