Estos días está circulando por las redes un artículo escrito hace unos meses en el que se comparan los lenguajes de programación visuales, tipo Scratch o Kodu, con lenguajes de programación basados en texto, como Logo, que son más similares a los que se usan en la industria. El artículo es muy completo e interesante, y se centra en las ventajas que presentan los lenguajes visuales para los aprendices jóvenes, como la desaparición de los errores de sintaxis o la sencillez para crear aplicaciones gráficas.

En ocasiones en los cursos que impartimos, en conferencias en las que participamos y, especialmente, por las redes, nos encontramos con gente que considera que los lenguajes visuales «no son lenguajes de programación de verdad», «que eso no es programar» o que «con esos lenguajes tan sencillos no se aprende nada».

Nosotros somos firmes defensores de los lenguajes de programación visuales para aprendices (tanto para niños como para adultos), y aunque ya hemos hablado de este tema en otras ocasiones y hemos explicado por qué consideramos que las afirmaciones del párrafo anterior no se sostienen, en esta ocasión nos vamos a centrar más en las causas de este tipo de actitudes.

¿Por qué creemos que hay gente que defiende que los aprendices, incluso estudiantes de primaria, deberían trabajar con lenguajes basados en texto?

Por un lado, creemos que este movimiento de llevar la programación informática a las aulas está en muchas ocasiones mal enfocado. Desde la industria del software se está promoviendo la visión de un futuro con una gran escasez de profesionales informáticos, y muchas administraciones públicas han comprado este discurso y se centran mayoritariamente en las posibilidades laborales para los alumnos que aprendan a programar desde edades tempranas. Y claro, si se quiere que todos los niños sean programadores, lo ideal es que desde la escuela se trabajen con las herramientas que se encontrarán en la industria.

Por tanto, para ayudar a los aprendices a transitar desde los lenguajes visuales a los lenguajes basados en texto, se están creando lenguajes de programación que utilizan un enfoque mixto. Un ejemplo de estos nuevos lenguajes es PencilCode, creado por Google, que permite programar bien usando bloques visuales, bien escribiendo directamente el texto, y ofrece la posibilidad de comprobar cómo se traduce el texto a bloques y viceversa.

pencilcodetext

Ejemplo de un programa en texto y su traducción a bloques en PencilCode

Por otro lado, en ocasiones los lenguajes visuales producen una falta de conexión con la profesión informática o falta de autenticidad, tal como la describe Mark Guzdial en su libro Learner-centered design of computing education. Así, a veces vemos alumnos que quieren ser informáticos de mayores que nos dicen «pero esto no es programar, yo quiero programar como los hackers de verdad». Claro, ellos no quieren usar herramientas «de juguete o de niños pequeños», quieren programar usando los lenguajes que aparecen en las películas o que ven que utiliza en casa algún familiar más mayor, por ejemplo.

Un estudio del año 2010 que comparó lo que aprendieron sobre programación un grupo de estudiantes que usó un lenguaje visual, Scratch, y otro grupo de estudiantes que usó en lenguaje basado en texto, Logo, pone de relevancia el impacto de la autenticidad. A pesar de que no hubo apenas diferencias en el aprendizaje, aunque el grupo de Scratch aprendió algo más sobre el uso de condicionales, el grupo de Logo mostró más confianza en su aprendizaje, en el sentido de que estaban convencidos que habían aprendido «de verdad», como lo hacen los informáticos.

La visión de Programamos

Como ya hemos defendido muchas veces, nosotros no queremos que todos los niños sean programadores. Por el contrario, nos centramos en los beneficios educativos que el desarrollo del pensamiento computacional ofrece a los estudiantes, ya que se trabajan una serie de habilidades, como la creatividad, la capacidad de resolución de problemas o el trabajo en equipo, que serán muy importantes para todos ellos, sin importar el campo en el que desarrollen su futura actividad profesional. En consecuencia, defendemos que se usen las herramientas que favorezcan en mayor grado el desarrollo de estas habilidades, sin tener en cuenta si se trata de tecnologías que se usen en la industria. En nuestra opinión, las herramientas ideales son, sin duda, las plataformas visuales.

Además, defendemos que los adultos que quieran aprender a programar también lo hagan usando lenguajes visuales. De hecho, nosotros vemos un futuro en el que todo tipo de personas, así como profesionales de todos los campos, van a crear sus propios programas y aplicaciones personales que los ayudarán en su día a día, tanto en su vida laboral como en sus momentos de ocio.  Y estamos convencidos de que lo harán utilizando lenguajes visuales del estilo de GP, un lenguaje de propósito general que permitirá crear todo tipo de aplicaciones profesionales usando bloques.

rabbit

Simulación de un hábitat y una población de conejos creada con GP

No queremos decir con esto, por supuesto, que los lenguajes basados en texto vayan a desaparecer. Los ingenieros de software y programadores profesionales o habituales seguirán usándolos, pero para el resto de la población que programe de forma esporádica o que esté en fase de aprendizaje, las ventajas de los lenguajes visuales harán que se decanten por ellos.

Vale, pero, ¿cómo luchamos contra el problema de autenticidad de los lenguajes visuales?

La forma en la que nosotros convencemos a nuestros estudiantes hackers de que los lenguajes visuales no son «de juguete ni de niños pequeños» es mostrándoles las posibilidades reales que tienen. Así, en el caso de Scratch, les mostramos proyectos como esta réplica de Super Mario, esta de Tetris o este videojuego de Star Wars, por plantear tan solo unos ejemplos, y les pedimos que echen un ojo al código. Al ver las oportunidades que estas herramientas les ofrecen, sus reticencias desaparecen y se sienten más cómodos utilizándolas.

En cualquier caso, si nuestra visión se hace realidad, en poco tiempo los lenguajes visuales serán parte del día a día y este problema desaparecerá gradualmente 🙂

Y, tú, ¿qué opinas sobre este debate que se está produciendo recientemente? ¿Te animas a dejar un comentario para que continuemos debatiendo?