On 2/8/10, Chema Cortes <pych...@gmail.com> wrote: > 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.
Creo que la programación debe enseñarse usando la teoría de los paradigmas y usando los lenguajes que más se adapten a cada problema. Python es muy bueno porque: 1) Soporta toda la Programación Estructurada. 2) Soporta gran parte de la Programación Orintada a Objetos. 3) Tiene un buen soporte de la Programación Funcional. 4) Es simple implementar estructuras de la Programación Basadas en Restriciones (o por Contratos, como la definió Bertrand Meyer). 5) Un gran soporte de tecnologías (a diferencia de Ruby que es muy buen lenguaje, probablemente mejor que Python pero esta parte es definitoria a la hora de trabajar profesionalmente). Mi experiencia como profesor me indica que enseñar la programación centrada en lenguajes es contraproducente, los alumnos no llegan ni a dominar las estructuras de este lenguaje. Los programadores que aprenden Python y vienen de lenguajes tradicionales de POO tienen graves problemas para asimilar conceptos como el de metaclases o mixins; incluso nunca llegan a usar conceptos de Programación Funcional. En mis clases de programación siempre pongo un ejemplo de un supuesto problema de la POO documentado en la Wiki: http://en.wikipedia.org/wiki/Circle-ellipse_problem Nunca me he atrevido a corregirlo porque le temo a una debacle de discusiones sin fin. En este artículo se atreven hasta a poner en entredicho a uno de los postulados más geniales de la teoría de programación moderna: http://en.wikipedia.org/wiki/Liskov_substitution_principle Me limito a exponer el problema, lanzo el reto de que lo programen en un lenguaje tan defendido acá en Cuba para mi disgusto como el C# y cuando no recibo respuestas le doy mi solución en Python y digo que lo hice en 15 minutos. Es importante una pedagogía consistente, científica. Usar los lenguajes como instrumentos que son y no como centro de la enseñanza. En ese sentido Python es tremendo instrumento. Saludos _______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/