La programación -decía algún gracioso- es de esas pocas cosas divertidas que se pueden hacer con los pantalones puestos. Y la realidad es que para quienes programamos (y en ocasiones vivimos de esto), el hacer que la computadora se comporte como queramos, que dé los resultados deseados, que haga los cálculos que necesitamos, es algo que de entrada es satisfactorio, porque de alguna manera nos damos cuenta del cómo tener que explicarle a una máquina lo que queremos que haga.
Evidentemente con los años las cosas en programación han cambiado notablemente. Quizás una de los primeros ambientes RAD (Rapid Application Development) fue Visual Basic, de Microsoft, pero pronto salieron otros entornos igual de atractivos para lenguajes mucho más poderosos que el relativamente simple Basic. Por ejemplo, Borland presentó Delphi 1.0 en 1994 y a decir de Philippe Kahn, el creador de dicha empresa, no buscaban competir contra Visual Basic, sino contra PowerBuilder (Sybase), el cual aún existe.
La idea atrás de RADs es crear entornos de programación donde los desarrolladores tengan a la mano una serie de componentes comunes: botones, barras de progreso, editores de textos, menús, listas de objetos, imágenes, etcétera, de tal forma que puedan ponerse en la aplicación usando drag & drop, es decir, tomando el componente y soltándolo en la ventana del programa. Cada componente tiene una serie de propiedades y métodos, lo cual cumple estrictamente -en la mayoría de los casos- con el paradigma de la programación orientada a objetos (POO), la cual se utiliza ya comúnmente en cualquier entorno moderno. La gracia de esto es que el desarrollador solamente tiene que asignar qué tipo de acción va a ocurrir cuando se le dé click, por ejemplo, a un botón. Así, no tenemos que armar de cero la aplicación. Basta con poner los componentes que necesitamos y programar los eventos de los mismos.
Evidentemente cualquier RAD moderno tiene mejores habilidades, por ejemplo, la de crear componentes que hagan tareas muy específicas, basándose muchas veces en las bibliotecas y componentes ya existentes. Para la mayoría de los medios ambientes de programación modernos es fácil hallar muchos componentes de terceros para un sinfín de aplicaciones en particular. Por ejemplo, yo he hallado un tablero de ajedrez con una serie de facilidades que permite crear programas asociados con las actividades del ajedrez sin necesidad de tenerme que sentar a escribir un componente propio que valide las jugadas en el tablero, que anime los movimientos de las piezas en la pantalla, etcétera. Vamos, que ya viene todo el componente con esa funcionalidad que evita perder mucho tiempo rehaciendo una y otra vez lo mismo.
Lo mejor del asunto es que este paradigma que RAD ha impuesto por las facilidades que da a los programadores, ya existe para los dispositivos móviles. La mayoría de ellos no tienen entornos de programación. Es decir, no programamos directamente sobre el teléfono celular o la tablet, sino que usamos una herramienta en la máquina de escritorio (PC, Mac, Linux), que nos permite hacer el desarrollo deseado, usando un emulador para probar la aplicación que está siendo escrita (o mejorada). De nuevo, estos entornos de programación para los dispositivos móviles contienen una serie de componentes ya pre-establecidos que permiten desarrollar rápidamente aplicaciones, además de darle a los programas un medio gráfico similar en todo el sistema en el que se está programando (iOS es el mejor ejemplo de esto). Hay incluso empresas que hacen entornos para programar en iOS, Android o Windows Phone bajo este paradigma.
Casualmente, la idea de los RADs ha permeado incluso en medios ambientes que bien podríamos considerar obsoletos. Veo PocketStudio, un ambiente muy parecido a Delphi (se programa en Pascal), para crear apps para la Palm, el cual es comercial. Hay alternativas como Palmphi, que pretende ser un entorno como Delphi, pero cuyo lenguaje nativo es C. Para PocketPC hay también muchas herramientas de desarrollo que incluso siguen vigentes: Pocket Programming Language, que usa su propio lenguaje (el cual no sé a qué se parece), NSBasic, el cual ya puede usarse incluso en tablets y teléfonos inteligentes en iOS y Android.
Así, la mirada de posibilidades permite a los programadores elegir la mejor opción para cada quien. Aparte de los entornos típicos (como el que da Google para programar para Android) o el que da Apple para iOS. Es cuestión de buscar y empezar a entender las características específicas de los entornos que queremos usar. Si usted se dedica a programar, debe considerar que el futuro será -y por un buen tiempo- los dispositivos móviles. Hay un gran margen de alternativas y posibilidades para quienes buscan vivir de crear código.