Quienes hayan intentado escribir sus propios programas en Ubuntu -o en cualquier otra distribución de Linux– habrán notado la ausencia de herramientas como las que se acostumbran a ver en la plataforma Windows. Linux es un sistema operativo riquísimo en cuanto a compiladores, editores, librerías y todo lo que el programador necesita, pero solo “Gambas” proporciona un entorno visual libre y gratuito similar a Visual Estudio en el que cualquiera puede crear programas en pocos minutos.
A pesar de ser “despreciado” por los programadores mas avezados, que le achacan cientos de “vicios”, el BASIC sigue siendo uno de los lenguajes de programación de alto nivel mas simples de aprender. Herramientas como el Visual Basic de Microsoft han proporcionado a los programadores noveles la posibilidad de crear -en solo minutos- complejas aplicaciones listas para correr en Windows, con formularios, controles y diálogos comunes sin morir en el intento. En el mundo del “software libre” existen decenas de compiladores e interpretes BASIC, algunos -como FreeBasic o BASIC-256– pero pocos de ellos pueden siquiera soñar con aproximarse a la simplicidad y potencia que pone en nuestras manos Microsoft con los productos de la serie “Visual Studio”.
Gambas (“Gambas Almost Means BASic”) posiblemente sea el producto más recomendable para comenzar a programar en un entorno moderno, simple, potente, y con la sintaxis BASIC “de toda la vida” que se puede encontrar en la plataforma Linux. Se trata de un lenguaje de programación derivado de BASIC orientado a objetos y distribuido con licencia GNU General Public Licence. No es el objetivo de este artículo analizar las “tripas” de Gambas, pero es necesario mencionar que su “arquitectura” tiene algunas similitudes con Java, ya que un fichero “ejecutable” Gambas no es otra cosa que un archivo de clases compiladas y archivos con datos que son ejecutados por un interprete creado al efecto. Un esquema similar es el utilizado por Microsoft en sus productos con sus “bytecodes”
Lo primero que vemos al ejecutar Gambas -ya sea su última versión “estable” (la 2,21) o la aún “alfa” 2.99)- es un asistente que nos guia en la tarea de abrir una aplicación en la que ya hemos trabajado antes, una de las muchas aplicaciones proporcionadas como ejemplo, o una aplicación completamente nueva. Al igual que Visual Basic, Gambas permite la creación de aplicaciones “de consola” (con una interfaz basada en texto), aplicaciones “de ventana” o componentes para utilizar en otros proyectos. Una vez seleccionada la opción más adecuada para nuestro propósito, pasamos al “IDE” (Integrated Development Environment o Entorno integrado de desarrollo). Esta herramienta nos permite crear formularios con sus correspondientes controles -botones de comandos, cuadros de texto, listas y muchos otros, así como enlazarlos a bases de datos MySQL, PostgreSQL o SQLite. Gambas permite la creación de todo tipo de aplicaciones en muy poco tiempo: en el video de arriba se ve como crear un navegador web simple en menos de un minuto. Estas aplicaciones pueden utilizar OpenGL, contemplar el uso “en red” (con protocolos HTTP, FTP, SMTP y DNS), elementos multimedia, etcétera.
Gambas posee un compilador muy veloz (capaz de compilar unas 128 mil líneas de código por segundo en un modesto Athlon 2000), un intérprete, el IDE mencionado antes, un “intérprete de scripts” y una gran cantidad de componentes que extienden enormemente su funcionalidad. Una aplicación escrita en Gambas puede acceder a casi todas las herramientas del estándar POSIX contenidas en la popular librería “glibc”. El usuario dispone tambien de un “archivador”, una herramienta que crea el archivo ejecutable a partir de la carpeta de un proyecto Gambas. El “BASIC” de Gambas es muy completo. En la versión actual -la 2,x- posee unas 250 palabras clave y funciones nativas con las que se puede gestionar desde expresiones aritméticas hasta el acceso a archivos o el manejo de errores. Al igual que otros lenguajes modernos, está completamente orientado a objetos, incluyendo -por supuesto- objetos y clases; propiedades, métodos, constantes y eventos; símbolos públicos y privados; constructores y destructores y “herencia”. En este punto hay que destacar que la herencia en Gambas es un mecanismo totalmente dinámico, que permite crear nuevas y mejores versiones de cualquier clase existente, extenderlas o reimplementar los métodos y propiedades de una clase, incluso de aquellas creadas en C o C++.
En este momento, Gambas puede acceder a bases de datos (MySQL, PostgreSQL, SQLite, Firebird y ODBC), crear interfaces gráficas basadas en QT o GTK+, gestionar protocolos de red (HTTP, FTP, SMTP, DNS), programación SDL, OpenGL, XML y CGI con gestión de sesiones. Todo esto con sólo 351 clases. Los aficionados a la electrónica -atención aquellos que siguen los artículos de Mario– pueden aprovechar las posibilidades de Gambas para crear interfaces con sus proyectos. Es posible acceder al puerto serie, paralelo, USB o cualquier otro desde una aplicación Gambas. ¡Y de forma muy sencilla! DomotiGa, por ejemplo, es una aplicación libre hecha en Gambas que permite la gestión completa de un “hogar domótico” desde un ordenador:
Por supuesto, también puedes escribir aplicaciones más “normales”, como programas de gestión comercial o similares, tan fácilmente como lo harías en Visual Basic. Pero el gran mérito de Gambas es sin dudas su papel como entorno de programación accesible para el que recién se inicia en esta tarea. Con Gambas puedes crear -en minutos- aplicaciones que resuelvan los múltiples problemas que a diario se se le plantean a particulares o empresas, visualmente atractivas y 100% funcionales. Este fue, de hecho, el papel principal de Visual Basic dentro de la plataforma Windows durante años. Gambas hace esto, pero sin tener que pagar un centavo por ello.
Gambas fue creado por Benoît Minisini, un francés apasionado de la programación y del BASIC residente en París. Tal como ocurre con otros lenguajes, el IDE de Gambas está escrito en Gambas, y ver su código fuente es una buena forma aprender conceptos avanzados del lenguaje. Minisini siempre se encarga de repetir que Gambas no es un simplemente un clon de Visual Basic: “Gambas no intenta ser compatible con Visual Basic, y nunca lo será.” A pesar de ello -las diferencias están bien explicadas en la página oficial del proyecto- quienes hayan utilizado alguna versión de VB encontraran en Gambas una herramienta familiar, con la que podrán escribir programas muy rápidamente. ¿Te animas a utilizarlo?