Teaching Concurency-Oriented Programming with Earlang

Teaching Concurency-Oriented Programming with Earlang

La programación en Paralelo y en Concurrente son dos aspectos diferentes que se ven en el día a día. Actualmente vemos tanto programas que tienen más de un thread de ejecución como programas que son ejecutados en distintosCPUs. Sin embargo aprender y enseñar a codificar programas que se puedan ejecutar de manera simultánea es una tarea difícil, debido a que se tiene que tomar en cuenta el manejo de la memoria. Asimismo, tal como mención el artículo titulado Teaching Concurency-Oriented Programming with Earlang, no existen lenguajes muchos lenguajes orientados a hacer programas concurrentes tal como hay lenguajes orientados a programación a objetos.

A medida que el tiempo avanza es necesario hacer programas Concurency-Oriented, la principal razón es porque cada vez se integra tecnología que puede correr los problemas de forma concurrente. Por ejemplo, en la actualidad se cuenta con procesadores que tienen dos núcleos en los procesadores, incluso los teléfonos celulares tienen más de un núcleo, por lo que sí se quiere aprovechar toda la capacidad de procesamiento deben de existir programas Concurency-Oriented. La pregunta aquí es, ¿cómo se puede enseñar Concurency-Oriented Programming sin presentar todos los problemas que esta conlleva? Por lo general cuando se empieza a programas se hace de una forma secuencial y los leguas es normalmente extraen la complejidad al momento de manejar la memoria. Cuando se intenta hacer programas que corran de manera concurrente, aparte de que se tienen cambio de paragdima en la forma de pensar, también se tiene que considerar otros factores como el acceso a la memoria para que los datos no se corrompan. Esto agrega complejidad al aprendizaje de Concurency-Oriented Programming. Pero si se tiene un lenguaje que abstrae esta complejidad, ¿sería más sencillo aprender a programar en concurrente?

El artículo de investigación mencionado anteriormente explor la enseñanza de Concurency-Oriented Programming con un lenguaje orientado a este estilo de programación. En la conclusión del artículo mención que los alumnos sintieron más sencillo los temas relacionados a los programas concurrentes sin embargo se les hacía difícil el concepto de los programas funcionales. Pienso que esto se debe a que normalmente se nos enseña a programar orientado a objetos por lo que cambiar esta estructura en el pensamiento es difícil además de cambiar la forma de pensar de manera secuencial a concurrente, ya que los algoritmos no son iguales.

Comments