in

Thug lifeThug life Una moneríaUna monería

Gambas, el “Visual Basic” de Linux

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”.

"Guygle", aplicación para el tratamiento de datos geográficos escrita en Gambas.

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.

Aplicación escrita en Gambas 2 que simula la ejecución de un programa en un PIC16F628A.

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:

DomotiGa, un buen ejemplo de la potencia de Gambas.

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.

Emulador de las calculadoras HP9100A/HP9101A, escrito en Gambas.

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?

Reportar

¿Qué te pareció?

Escrito por Ariel Palazzesi

35 Comments

Leave a Reply
  1. suena interesante, hace años empeze algo de basic, y ahora en mi carrera estoy dando java… podria ser interesante probar estas gambas XD

  2. Tuve la oportunidad de trabajar hace años para este proyecto que lo lleva, en gran medida, la Junta de Extremadura… estuve, de hecho, programando componentes para GNome con GTK+ y C++. El sistema es sencillo y bastante prometedor, pero parece que no termina de cuajar entre los programadores… una pena, de verdad que promete. Algunos de los componentes en los que participé fueron el Grid para GNome, el componente SVG y alguno otro, e incluso diseñé el icono de la gamba azul en la versión 2 que aún, creo, aparece en el control picture o image. El proyecto lo gestiona (como cabeza principal) un francés llamado Benôit. Un tipo genial. Y en la Junta de Extremadura estaban (por aquél entonces) haciendo un gran trabajo de la mano de Daniel Campos (un peazo de programador como pocos) y otros colaboradores. La pena es que algunas empresas querían hacerse ricas a consta de colaborar en el proyecto (como el dinero salía de fondos públicos en su mayoría) y lo único que hacían era ralentizarlo, a parte, por supuesto, de usarse como "medallita electoral" en política. Una pena, pero a parte de eso es un proyecto prometedor que, poco a poco, va alcanzando niveles de madurez muy interesantes. Lo recomiendo.

      • Perdona, amigo, no quería ofenderte. Si el editor me lo permite, me concedo la licencia de recomendarlo para los linuxeros que empiezan a programar con basic.
        Por otra parte, si me lo permites, creo que sí, que estoy en situación de recomendarlo, porque, muy provablemente, conozca más de sus entresijos y cómo funciona por dentro que el propio editor de este artículo. Con toda la humildad, eh, que no quiero parecer pedante, es símplemente un apunte al artículo que me parece muy bueno.

      • Me da a mí que el que no tendría que andar por estos sitios eres tú, pedazo de mandril amaestrado. A ver si aprendes a escribir como las personas y a entender lo que lees, así por lo menos pasarás a ser un homo erectus.

  3. Tambien hay varias otras alternativas a gambas en linux, por ejemplo esta monodevelop que es una implementacion de .net para linux, y tambien esta qtcreator y kdevelop (si no me equivoco este ultimo permite programar en python el cual es tambien bastante simple de aprender)

    • Yo ahora programo con .NET y me gusta mucho mono, pero aún le falta madurez, creo que aún le queda mucho para llegar al nivel de (especialmente en el aspecto gráfico y de librerías de terceros que se empeñan en meter pinvoke’s en su código) la plataforma de Microsoft. Por otra parte, también están las versiones Express de Visual Studio tanto para C# como para Visual Basic o, incluso, para programar sitios web que es muy, pero que muy buena alternativa a otros programas gratuitos y te garantiza un 100% de compatibilidad con cualquier versión que luego adquieras (si tienes dinero para ello).

  4. Cuando Microsoft copia una idea y la mejora, todos detrás echando pestes de él. Pero cuando lo hace otro bajo el pretexto de software libre, aún siendo un calco porque no le añade cosas nuevas, todos callados como putas. ¡Cuánta hipocresía!

    • Lo que pasa es que lo que se critica es que lo hacen solamente por ganar mas dinero o mercado, se critica su actitud, no sus actos concretos (es mi opinion) por lo tanto si se hace de la gente para la gente no es algo del todo malo (repito eso pienso yo).

    • Cuando microsoft copia una idea, se adueña de ella, la mejora, y quiere ganar dinero de ella, eso es lo que se le critica

      Cuando alguien copia una idea, pero no se adueña, la mejora, y la comparte, ¿porque hablar pestes?

      Mas hipocresia defender a microsoft y no pagar su licencia de windows.

      Aparte microsoft hace cosas tambien hace cosas muy buenas, pero el tiene dinero y recursos para hacerlas, por eso generalmente se le critica lo malo..

  5. era lo que faltaba para que linuz se hiciera mas popular, ahora si cualquier hijo de vecina como io va a poder hacer programas jajajajaja

  6. Es sorprendente la cantidad de utilidades que hay por ahi para los programadores.
    Yo digo que a linux mas que herramientas para programacion, le hace falta mas sencillez. no se, ese es mi punto de vista.

  7. ¿Donde puedo encontrar buenos tutoriales de programacion para linux? Todo desde escribir el codigo fuente, crear las ventanas, depurar, compilar, etc.

  8. ya lo he probado y me Gusto,, lo deje de usar al conocer Qt pero me pareció muy intuitivo y para empezar a programar muy buena herramientas.
    Por cierto lastime que algunos no solo se dediquen a dejar sus opiniones, sino también a insultar a los demás. "vive y deja vivir"

  9. Como IDE de programación en Linux, yo recomendaría NetBeans. Se pueden crear interfaces gráficas en cuestión de segundos y, al ser posible programar en Java, los programas son multiplataforma.

  10. conoci gambas cuando empece a usar visualfox, acostumbro usar linux en mi lap y pensé sustituir visualfox con gambas pero encontre que no hay compatibilidad, muy a pesar mio tuve que instalar visualfox con wine y funcionaba exelente.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Project Tuatara: Realidad infinita (Microvision)

¡Feliz 25 años, Nintendo NES!