[Python-es] Python y/o ruby para no programadores

Medardo Rodriguez (Merchise Group) med.swl en gmail.com
Lun Feb 8 14:39:53 CET 2010


On 2/8/10, Chema Cortes <pych3m4 en 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



Más información sobre la lista de distribución Python-es