Posted by : Unknown viernes, marzo 07, 2014


¡Hola! :D

En estaentrada hablaré sobre el arículo titulado Teaching Concurrency-Oriented Programming with Erlang escrito por Ariel Ortiz y publicado en las memorias del 42° SIGCSE Technical Symposium on Computer Science Education en marzo del 2011.

En el artículo se habla acerca de problemáticas que se han discutido en entradas anteriores, como lo es la necesidad de comenzar a escribir programas paralelos en lugar de seguir con los programas secuenciales, ya que se necesita aprovechar al máximo todo el procesamiento disponible. Adicionalmente, se tratan conceptos previamente vistos, como definir qué es concurrente, paralelo y distribuido. Además, se recuerdan algunas de las reglas (antes vistas) que se deben seguir para realizar programas paralelos.


La parte importante del artículo viene cuando se habla de la enseñanza de programación concurrente utilizando Erlang. Este lenguaje funcional tiene muchas características que lo vuelven un lenguaje interesante de aprender, que van desde tener su propio REPL, hasta la utilizar pattern matching para realizar el binding de las variables (cosa completamente nueva para mí). En cuanto a performance, hay que considerar a Erlang debido a que es útil para muchas tareas que, personalmente, no me hubiera imaginado y que incluso pueden tener ciertas aplicaciones para el área de especialidad que estoy tomando (redes).

Más adelante se comentan algunos principios de diseño de Erlang para asegurar que los programas sean óptimos. Estos principios van desde usar un número de procesos proporcional al número de procesadores disponibles (y distribuir el trabajo de manera adecuada) hasta asegurarnos de minimizar el tiempo que se espera por una respuesta. Hay que recordar que las operaciones de entrada/salida suelen consumir muchos recursos.

Cabe señalar que Erlang no es un lenguaje perfecto, ya que hay tareas para las que no tiene un desempeño tan bueno y que también sufre de su versión de problemas de programación en paralelo (deadlocks, starvation, etc.).

Ahora bien, en la parte de enseñanza de programación paralela y concurrente, Erlang me parece un lenguaje interesante de aprender, debido a su simplicidad (característica de lenguajes funcionales) y a cómo funciona internamente. En lo personal, me parece que la enseñanza de programación paralela y concurrente se puede volver aún mejor si se toman lenguajes como Clojure y se comparan con Erlang en cuanto a su desempeño en general.

Espero que esta entrada haya sido de su agrado :)

Leave a Reply

Subscribe to Posts | Subscribe to Comments

- Copyright © Programación Multinúcleo - Hatsune Miku - Powered by Blogger - Designed by Johanes Djogan -