¿Cuáles son las ventajas y desventajas de los lenguajes de programación visual en comparación con los lenguajes de programación normales?

La programación visual ha sido una profecía incumplida durante años. Como tantas otras áreas, como la realidad virtual, la inteligencia artificial o el reconocimiento de voz, cuando la exageración era alta, la tecnología subyacente aún no estaba allí.

Para la programación visual, la exageración alcanzó su punto máximo a principios de los 90 con las herramientas CASE. Y, como con todas las tendencias antes de su tiempo, las repercusiones de su fracaso fueron años de baja inversión, poca innovación y escepticismo persistente.

Este artículo hace un muy buen punto resumiendo algunas de las principales preocupaciones sobre la programación visual, aquí hay algunas:

  • Los lenguajes visuales no son extensibles: este es probablemente el pecado capital de los lenguajes visuales. Le permiten hacer un conjunto limitado de cosas fácilmente, pero los casos extremos son demasiado difíciles o incluso imposibles de lograr. Las herramientas deberían darnos más poder, en lugar de limitarnos.
  • Los lenguajes visuales generan código lento: todo desarrollador que se haya enfrentado a problemas de rendimiento sabe lo difícil que es diagnosticarlo y superarlo. Los lenguajes visuales son abstracciones con fugas, que a menudo generan código lento que es imposible de optimizar.
  • Las herramientas del lenguaje visual pueden ser terribles: vivimos y respiramos en nuestros IDE (entornos de desarrollo integrado). ¡Cuando son pobres, pueden hacer que nuestras vidas sean miserables! Los lenguajes visuales y los IDE deben diseñarse juntos: nuestro amor u odio por un idioma es una medida directa de nuestro amor u odio por sus herramientas.

Y hay algunos más … Sin embargo, la tecnología ha evolucionado en los últimos años y ahora las grandes empresas están utilizando lenguajes de programación visual para resolver una serie de problemas como la velocidad de desarrollo, la velocidad de cambio, la transferencia de conocimientos, etc. Consulte este informe para una serie de herramientas que utilizan un enfoque visual o de baja codificación para la programación. Esto se está poniendo caliente 🙂

El mayor desafío (quizás una desventaja pero probablemente una ventaja) de los lenguajes de programación visual: no hay forma de tener un modelo mental estándar global (modelo mental).

A diferentes profesionales, como ingenieros mecánicos, científicos, ingenieros eléctricos, artistas, matemáticos, programadores y músicos, se les enseña a modelar el mundo de manera diferente.

Por ejemplo, un músico ve partituras y puede “escuchar” lo que está viendo. Están construyendo un modelo mental de esa música y tocándola: a menudo en tiempo real. Como no músico, cuando miro partituras, veo líneas y puntos. No puedo imaginar esa música ni escucharla en mi cabeza. La partitura es la forma estándar en que los músicos representan visualmente la música. Un músico pasa años desarrollando la habilidad para formar modelos mentales a partir de partituras.

Otro ejemplo serían los ingenieros eléctricos que podrían sentir y predecir lo que hace un sistema eléctrico mirando los diagramas de circuitos. Nuevamente, como ingeniero no eléctrico, todo lo que veo son puntos y líneas.

¿Podríamos estandarizar cómo representar la música y el flujo de electricidad? Tal vez.

¿Tendría sentido usar partituras para representar circuitos? Probablemente no.

Este es el mayor desafío al que se enfrentan los lenguajes de programación visual: una forma estándar de describir el mundo real visualmente porque ya hay muchas formas diferentes (vea las instantáneas de Interface Vision VPL).

La segunda desventaja es el esfuerzo por pasar a la Programación visual.

Considere el proceso actual de programación que está tomando el mundo real y automatizándolo usando el código fuente. Los programadores pasan años desarrollando habilidades para formar modelos mentales del mundo real utilizando el código fuente (Por eso no debes interrumpir a un programador). Las personas que codifican pueden mirar el código y “ejecutarlo” en su cabeza. Los programadores pueden leer el código y construir un modelo mental de lo que representa el código, al igual que un músico puede construir un modelo mental de la música que están viendo en las partituras.

Aunque bromeamos sobre la interrupción de un programador (Esto es por qué no debe interrumpir a un programador), es muy difícil construir y mantener un modelo mental de un programa en su cabeza mientras lo agrega o lo cambia.

Esto nos lleva, quizás, a una de las mayores ventajas de los lenguajes de programación visual. Podrían facilitar que los programadores desarrollen y conserven un modelo mental del programa: especialmente en cualquier dominio comercial dado.

Además, si está programando un cálculo matemático, el lenguaje visual puede usar una representación matemática estándar. Si está desarrollando un programa de logística, Visual Language puede usar diagramas de flujo de trabajo. Realmente, los lenguajes de programación visual no estandarizarán la representación visual del mundo. En cambio, permitirán que diferentes profesiones vean y programen computadoras en modelos mentales a los que están acostumbrados para democratizar el desarrollo de software.