Michael Kölling, uno de los desarrolladores de BlueJ y promotor de la enseñanza de programación "primero objetos" opina en su blog que el lenguaje de programación Java se está complicando tanto que pierde su ortogonalidad y sencillez y argumenta que tal vez sea tiempo de pensar en un nuevo lenguaje orientado a objetos para la enseñanza.
Tengo un problema particular con Python: es dinámico. Creo que un lenguaje fuertemente tipado estáticamente es más sólido, tanto como lenguaje de desarrollo como de enseñanza. Los tipos ayudan en la especificación del problema. El problema de Java es pasar de un sistema de tipos de primer orden a uno de segundo orden explícitamente tipado. No hay muchos experimentos de lenguajes de este tipo y es entendible que para los diseñadores de Java la cosa se les haya salido de las manos.
Pablo Azero on Friday, 28 July 2006, 11:20 BOT # |
Algunos argumentan que el hecho de que python tenga tipado dinámico, o incluso lo que llaman "duck typing" es una ventaja para enseñar programación por primera vez. Así se enfocan en como plantear el problema, algoritmo, etc... y no tanto en los detalles del lenguaje de programación.
Bueno, eso es lo que leí. Ahora que sea aplicable no se, tendría que ser docente.. ;-)
No creo que se trate de ir a los detalles del lenguaje de programación, creo que hay que ir a los detalles de un lenguaje que permita explicitar los elementos de programación y razonar sobre ellos para poder elaborar una buena solución. Programar no es secuenciar instrucciones sino estructurar una buena solución, sobre todo si estamos hablando a nivel profesional. No estoy en contra de Python que creo que es un lenguaje muy interesante. Tal vez es interesante para programar soluciones de alto nivel para personas que estén interesadas en soluciones particularizadas. Digamos hacer scripting de Office o de una aplicación CAD. Sin embargo, creo que para educar en ciencias de la computación se necesita un poco más que eso.
Pablo Azero on Saturday, 29 July 2006, 12:45 BOT # |
Yo tampoco pude entender los rompecabezas del blog de Michael Kolling :/. Generics + subtyping es dificil dificil. Rolando, tu enlace es interesante, seguro también querrás leer las experiencias de los que proponen scheme como lengua materna (teach-scheme.org).
Un lenguaje con tipado dinámico requiere meterse menos conceptos en la cabeza y por lo tanto puede ser más facil de aprender. Tal vez un lenguaje con tipado estático puede usarse en el segundo semestre?
Escuché de propuestas de experimentos con alumnos de primer año. Por ejemplo a un grupo enseñar un haskell sencillo (helium?) y a otro grupo enseñar un haskell con tipado dinámico. Al final del periodo de prueba se podrían hacer examenes que muestren el rendimiento de los dos grupos lado a lado.
De hecho es muy posible que la curva de aprendizaje en un lenguaje con tipos dinámicos puede ser menor que la de aprender con un lenguaje con tipos estáticos. Sin embargo eso no implica nada sobre cual es mejor a la hora de introducir la programación. Hay cuatro/cinco años para enseñar a programar. Creo que ambos tienen ventajas y desventajas. Es cuestión de filosofía. Yo creo que los tipos estáticos son mejores en un ambiente productivo como el que va a enfrentar la mayor parte de los graduados. He aprendido a programar en un lenguaje dinámico, pero cuando he conocido un lenguaje estático me he favorecido de mayor seguridad y confiabilidad (que por supuesto no es total). En cualquier caso, el estudiante del área debe estar expuesto a ambos a lo largo de su educación para conocer cuando puede acudir a uno u otro.
Pablo Azero on Sunday, 30 July 2006, 11:20 BOT # |
Comentarios
python? xD
A Python Experiment in a Brazilian University
Algunos argumentan que el hecho de que python tenga tipado dinámico, o incluso lo que llaman "duck typing" es una ventaja para enseñar programación por primera vez. Así se enfocan en como plantear el problema, algoritmo, etc... y no tanto en los detalles del lenguaje de programación.
Bueno, eso es lo que leí. Ahora que sea aplicable no se, tendría que ser docente.. ;-)
Yo tampoco pude entender los rompecabezas del blog de Michael Kolling :/. Generics + subtyping es dificil dificil. Rolando, tu enlace es interesante, seguro también querrás leer las experiencias de los que proponen scheme como lengua materna (teach-scheme.org).
Un lenguaje con tipado dinámico requiere meterse menos conceptos en la cabeza y por lo tanto puede ser más facil de aprender. Tal vez un lenguaje con tipado estático puede usarse en el segundo semestre?
Escuché de propuestas de experimentos con alumnos de primer año. Por ejemplo a un grupo enseñar un haskell sencillo (helium?) y a otro grupo enseñar un haskell con tipado dinámico. Al final del periodo de prueba se podrían hacer examenes que muestren el rendimiento de los dos grupos lado a lado.