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/

Responder a