Desde la programación en código,
hasta los lenguajes visuales, que es sin duda un gran aporte a la programación de computadoras, se busca que el
programador novel pueda aprender a desarrollar software de manera más didáctica.
El gran detalle que todo programador
busca, es el resultado final. El reto de como mostrar en pantalla el resultado
de todo el proceso de análisis,
desarrollo y solución del problema en estudio con ayuda del ordenador
(computadora), denota ser el objetivo
final.
Para facilitar este proceso y
ahorrar tiempo (lo más valioso) al momento de desarrollar programas surgió la
idea de volver todo ese periodo de codificar (mostrar en pantalla), los
lenguajes visuales como Visual Basic, Delphi, C++,etc. Pero, como siempre
existe esa inquietud de avanzar o dar un paso más adelante con generación de
código, se busca que el futuro programador arme como un rompecabezas, los
distintos bloques o las distintas piezas para construir programas, dicho de
otra manera si no armas correctamente, no funcionará (no compilará).
Scratch es uno de los lenguajes que realiza
esa forma de programar, pero también contamos con SNAP!
Snap! fue desarrollado por Jens Mönig y Brian Harvey en la
Universidad de California (Berkeley) y era bautizado con el nombre de “Build Your Own Blocks” (BYOB). A diferencia
de Scratch, el cual lamentablemente posee límites de bloques, al momento de
usarlo. Snap! toma tipologías de Scheme y es un lenguaje idóneo para una, seria
forma de introducción a la computación en secundaria, preparatoria o
incluso en los primeros semestres de una carrera.
Si deseas hacer uso de este software
hay buenas noticias, Snap! Es distribuido bajo la licencia GNU, es decir que el
código fuente es gratuito y de código abierto. La versión 4.0, combina la
gramatica de Scratch con la dinámicas de scheme, recursión, cálculo lambda,
etc., también permite crear estructuras de control (bucles, loops pues,
map/reduce), sin
preocuparse de stack (pila), según afirmaciones de Jens Mönig .
Toma muy en cuenta esta nueva
propuesta para aprender a programar de manera visual.