El día 6 de febrero de 2010 23:09, José Luis Torre Hernández <joseluistorrehernan...@gmail.com> escribió:
> Me gustaría abrir una línea de debate para contrastar opiniones sobre la > conveniencia de utilizar alguno de estos lenguajes en la enseñanza de la > programación. > > Personalmente he trabajado con varios lenguajes (y realmente me gustan > todos, aunque unos más que otros) y en los dos últimos años he estudiado > algo sobre Pyton. Desde hace un par de meses estoy leyendo sobre Ruby y me > parece un lenguaje muy interesante, aunque como no tengo experiencia con él > me gustaría que alguno de los "Pythonicos" que tuvieran algún contacto con > este lenguaje me dieran su opinión. Si nos centramos en la enseñanza de la programación, tal vez python sea más sencillo para dar una introducción a la programación. Al ser tan "explícito", un programador neófito se siente más seguro de lo que está haciendo. En ruby, la "desaparición" de paréntesis y el uso de signos gráficos para calificar variables suele despistar a muchos alumnos, aunque con acaban por acostumbrarse. Pero la experiencia nos dice que la programación, por excelencia, se basa en usar "patrones" en el contexto de una metodología, y ése debería ser el objetivo que tiene que alcanzar un alumno. Python y Ruby utilizan programación orientada a objetos, python con herencia múltiple, ruby con mixins; los objetos de python son "accesibles" (por jerarquía), los objetos de ruby son "invocados" (por mensajes); python emplea secuencias, iteradores y generadores, ruby emplea bloques de código y clausuras. No importa si es mejor un enfoque u otro. Lo importante es que el alumno sepa reconocer estas estructuras y sea capaz de aplicarlas en resolver un problema. Y en éso tiene mucho más que ver la pericia del profesor que el lenguaje de programación utilizado. Por supuesto, lo ideal sería que el alumno fuera quién hiciera el análisis comparativo entre varios lenguajes. En mi opinión, un buen lenguaje de iniciación (y que raramente se suele considerar) es "lua". Aunque parezca "minimalista", se puede usar para explicar algunos conceptos complejos antes de ver cómo se solucionan con otros lenguajes. Por ejemplo, con lua se puede enseñar corrutinas como introducción a la concurrencia o metatablas como introducción a las metaclases. También permite ver los "métodos singleton" como algo natural, y no como algo extraño añadido al lenguaje (ruby) o como truco excepcional (python). En otro orden de cosas, con python suele ser más fácil encontrar documentación específica para casi cualquier tema, algo que con ruby te puede llevar a la desesperación. _______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/