Internet es algo que todo el mundo usa y a lo que muchos quieren dar forma. La vida cotidiana trae consigo varios problemas que se pueden resolver con apli­ca­cio­nes pro­gra­ma­das (apps) y los co­rre­s­po­n­die­n­tes di­s­po­si­ti­vos finales. Sin embargo, de­sa­rro­llar­los no suele ser nada fácil. Un programa funcional se compone de numerosos módulos, es decir, un lenguaje de pro­gra­ma­ción con un “vo­ca­bu­la­rio” extenso, compuesto por variables, co­n­s­ta­n­tes, procesos en bucle, co­n­di­cio­nes, fo­r­mu­la­rios, acciones o ex­pre­sio­nes regulares. Además, suelen emplearse enlaces e in­cru­s­ta­cio­nes.

Trabajar con lenguajes de pro­gra­ma­ción textual requiere amplios co­no­ci­mie­n­tos, un alto grado de ab­s­tra­c­ción y una co­n­ce­n­tra­ción sostenida. Aprender un lenguaje de pro­gra­ma­ción textual es un esfuerzo co­m­pa­ra­ble a aprender una lengua ex­tra­n­je­ra. Para ayudar con estas di­fi­cu­l­ta­des, desde la década de los 60 se han ido de­sa­rro­lla­n­do entornos visuales de pro­gra­ma­ción, en los que los pro­gra­ma­do­res no van en­sa­m­bla­n­do la­bo­rio­sa­me­n­te bloques de texto, sino que utilizan elementos gráficos.

¿En qué consiste la pro­gra­ma­ción visual?

En la pro­gra­ma­ción visual, los elementos del lenguaje de pro­gra­ma­ción están di­s­po­ni­bles en forma de bloques diseñados de manera gráfica, por lo que también se la llama pro­gra­ma­ción gráfica. La apa­rie­n­cia y el eti­que­ta­do de los módulos permite ide­n­ti­fi­car qué tarea en el flujo del programa pueden resolver. Los pi­c­to­gra­mas sirven para orientar al usuario. Así, no se necesitan es­tru­c­tu­ras muy complejas ni un alto grado de ab­s­tra­c­ción.

Nota

La ubicua abre­via­tu­ra VPL proviene del término inglés visual pro­gra­m­mi­ng language.

Este estilo de pro­gra­ma­ción fu­n­da­me­n­tal, también llamado paradigma de pro­gra­ma­ción, presenta, entre otras, las si­guie­n­tes ca­ra­c­te­rí­s­ti­cas:

  • Visual: los elementos se arrastran y sueltan en el flujo del programa para in­te­grar­los.
  • Orientado a aco­n­te­ci­mie­n­tos: cada paso del programa comienza cuando ocurre un aco­n­te­ci­mie­n­to pre­via­me­n­te definido.
  • Im­pe­ra­ti­vo: la pro­gra­ma­ción consiste en una secuencia de comandos.
  • Orientado a objetos: hay objetos in­di­vi­dua­les con tareas definidas asignadas.

Los pro­gra­ma­do­res suelen utilizar elementos de pro­gra­ma­ción ya definidos, según el lenguaje de pro­gra­ma­ción visual que utilicen. Estos pueden registrar textos e imágenes, or­ga­ni­zar­los de forma lógica y modificar su apa­rie­n­cia o su expresión. Los elementos de control permiten insertar acciones que dependen de ciertas co­n­di­cio­nes. Los ope­ra­do­res permiten realizar enlaces y cálculos ma­te­má­ti­cos. Las variables o los enlaces se pueden in­tro­du­cir, eliminar o modificar. Los elementos de pro­gra­ma­ción están diseñados para encajar como las piezas de un puzle. Si los elementos no encajan ló­gi­ca­me­n­te, el editor lo detecta y lo indica con colores, como re­sa­l­tá­n­do­los entonos más apagados y, a veces, también mediante señales acústicas. Los elementos de pro­gra­ma­ción suelen agruparse en grupos de colores, lo que orienta al usuario a la hora de elegirlos.

Las etiquetas de los elementos in­di­vi­dua­les y de los procesos co­rre­s­po­n­die­n­tes re­pre­se­n­tan ex­pre­sio­nes o acciones humanas como “Haz...”, “Di...”, “Pulsa el botón...” o “Espera hasta...”. Los elementos del programa se ensamblan arra­s­tra­n­do y soltando. Se puede ver si los elementos gráficos se pueden ensamblar co­m­pro­ba­n­do los huecos y salientes y viendo cuáles encajan. Esto permite crear se­cue­n­cias de forma sencilla e intuitiva sin necesidad de conocer un lenguaje de pro­gra­ma­ción textual.

¿En qué se di­fe­re­n­cia la pro­gra­ma­ción visual de la pro­gra­ma­ción “normal”?

La principal di­fe­re­n­cia es que los pro­gra­ma­do­res visuales no tienen que lidiar con las co­m­ple­ji­da­des de la sintaxis de comandos. Tampoco se necesita aprender el engorroso “vo­ca­bu­la­rio” de un lenguaje de pro­gra­ma­ción. En la pro­gra­ma­ción “normal”, se requiere un alto grado de ab­s­tra­c­ción para obtener el resultado deseado a partir de las reglas del lenguaje de pro­gra­ma­ción. Aunque muchos editores de pro­gra­ma­ción tienen la función “Au­to­co­m­ple­tar”, para que los comandos se completen y los pro­ce­di­mie­n­tos se cierren por sí mismos, los pro­gra­ma­do­res son su­s­ce­p­ti­bles de cometer errores: si se olvida un carácter, toda la tarea da error. Esto a menudo requiere una larga búsqueda de errores.

Al igual que al aprender un nuevo idioma, al empezar a programar a mano se empieza con el “vo­ca­bu­la­rio” más im­po­r­ta­n­te para “co­mu­ni­car­se”. Cada nueva tarea de pro­gra­ma­ción requiere el apre­n­di­za­je de nuevos términos. La gama de términos uti­li­za­dos en los modernos lenguajes de pro­gra­ma­ción textual ha crecido eno­r­me­me­n­te a lo largo de los años para adaptarse a los re­qui­si­tos del internet moderno. Algunas secciones del programa se pueden almacenar en archivos separados, que después se enlazan con el proceso de pro­gra­ma­ción. Aunque así la pro­gra­ma­ción textual es más sencilla, este método requiere una amplia visión de conjunto, un código bien comentado y una do­cu­me­n­ta­ción minuciosa.

¿Cuáles son las ventajas e in­co­n­ve­nie­n­tes de la pro­gra­ma­ción visual?

La pro­gra­ma­ción visual rompe las barreras técnicas y pro­fe­sio­na­les que podrían impedir el acceso a la pro­gra­ma­ción, pe­r­mi­tie­n­do que los niños aprendan a programar jugando. Los pro­gra­ma­do­res pueden centrarse en los procesos lógicos de su programa sin di­s­tra­c­cio­nes. De este modo, se obtienen procesos rá­pi­da­me­n­te apli­ca­bles que dan la mo­ti­va­ción para emprender otros proyectos más grandes.

Hecho

El lenguaje de pro­gra­ma­ción visual Scratch llegó a tener alrededor de 1 300 000 usuarios de entre 8 y 16 años re­gi­s­tra­dos en línea desde sus inicios en marzo de 2007 hasta mediados de 2015. Se han publicado más de 3 000 000 proyectos en Scratch in­de­pe­n­die­n­tes en línea.

Ventajas de la pro­gra­ma­ción visual

Es fácil de aprender: no cuesta superar la curva de apre­n­di­za­je. Las ideas se pueden “escribir” di­re­c­ta­me­n­te como si fueran el código del programa. Los símbolos claros facilitan la co­m­pre­n­sión. Como no hay sintaxis, no es posible cometer errores ti­po­grá­fi­cos. Esto ayuda a los pro­gra­ma­do­res a entender los conceptos básicos de los lenguajes de pro­gra­ma­ción.

Los lenguajes de pro­gra­ma­ción visual permiten realizar la llamada pro­gra­ma­ción ex­plo­ra­to­ria: se puede iniciar y de­sa­rro­llar un programa paso a paso, antes de haber ideado la solución exacta. La fu­n­cio­na­li­dad de los pasos del programa se puede comprobar una y otra vez. Los pro­gra­ma­do­res trabajan sobre todo con so­lu­cio­nes basadas en na­ve­ga­do­res que funcionan in­de­pe­n­die­n­te­me­n­te del sistema operativo del ordenador. Los re­su­l­ta­dos no­r­ma­l­me­n­te se pueden exportar a otros lenguajes de pro­gra­ma­ción textual.

In­co­n­ve­nie­n­tes de la pro­gra­ma­ción visual

Parte de la pro­gra­ma­ción gráfica está vinculada a campos de apli­ca­ción es­pe­cia­les o a ciertos sistemas, hardware o di­s­po­si­ti­vos finales. En general, no es posible crear elementos in­di­vi­dua­les o insertar co­me­n­ta­rios para otros pa­r­ti­ci­pa­n­tes en el proyecto. Esto hace difícil mantener una visión general, incluso con programas de co­m­ple­ji­dad reducida. Además, los proyectos rea­li­za­dos en pro­gra­ma­ción visual solo son es­ca­la­bles en medida limitada, lo que dificulta su ada­p­ta­ción a proyectos grandes o de rápido cre­ci­mie­n­to. La ventaja de la pro­gra­ma­ción ex­plo­ra­to­ria puede co­n­ve­r­ti­r­se rá­pi­da­me­n­te en un in­co­n­ve­nie­n­te en forma de código no es­tru­c­tu­ra­do en los proyectos más grandes: estos programas son difíciles de mantener y extender.

¿Qué lenguajes de pro­gra­ma­ción visual existen?

De la gran variedad de lenguajes de pro­gra­ma­ción visual, aquí pre­se­n­ta­mos una pequeña selección.

Scratch

El lenguaje de pro­gra­ma­ción visual más popular y utilizado es Scratch. Fue lanzado por primera vez en 2007 y tiene como propósito enseñar a los niños a programar de manera sencilla. Su sucesor para niños de entre 5 y 7 años, ScratchJr, está di­s­po­ni­ble como una apli­ca­ción gratuita. También hay otros lenguajes de pro­gra­ma­ción gráfica basados en Scratch, como BYOB 4.0/Snap!.

Blockly

Blockly es una llamada bi­blio­te­ca. Pro­po­r­cio­na un editor de pro­gra­ma­ción visual al que se añaden apli­ca­cio­nes Android, iOS y web. Blockly también utiliza bloques gráficos que encajan entre ellos. Los al­go­ri­t­mos pro­gra­ma­dos se pueden exportar como código Ja­va­S­cri­pt o Python, por ejemplo.

NEPO

NEPO es gratuito, está basado en Scratch y utiliza la bi­blio­te­ca Blockly. Esta bi­blio­te­ca se ha ampliado con fu­n­cio­na­li­da­des propias. Una ventaja de NEPO son sus in­te­r­fa­ces abiertas, que permiten controlar otros sistemas de hardware o robots.

Grape

Grape es un entorno de de­sa­rro­llo gráfico. Permite incluso a los pri­n­ci­pia­n­tes en pro­gra­ma­ción programar con mi­cro­co­n­tro­la­do­res en pasos simples.

App Inventor

App Inventor proviene ori­gi­na­l­me­n­te de Google. Esta interfaz gráfica permite programar apli­ca­cio­nes para teléfonos móviles Android con bloques gráficos.

Ardublock

Este lenguaje de pro­gra­ma­ción gráfica está es­pe­cia­l­me­n­te diseñado para programar el mi­cro­co­n­tro­la­dor Arduino sin in­tro­du­cir texto.

Pure Data

Este lenguaje de pro­gra­ma­ción visual está orientado tanto a flujos de datos como a los entornos de de­sa­rro­llo. Pure Data permite producir software mu­l­ti­me­dia in­ter­ac­ti­vo, por ejemplo, para si­n­te­ti­za­do­res.

Lego Mi­n­d­s­to­r­ms

Una serie de productos del fa­bri­ca­n­te de juguetes Lego, cuyo núcleo es la pieza de Lego pro­gra­ma­ble: los motores elé­c­tri­cos, sensores y piezas de te­c­no­lo­gía propios de Lego permiten construir y programar robots y otros sistemas in­ter­ac­ti­vos.

Ir al menú principal