# Gambas

Gambas es un lenguaje de programación libre derivado de BASIC (de ahí que Gambas quiere decir Gambas Almost Means Basic). Se distribuye con licencia GNU GPL. Cabe destacar que presenta ciertas similitudes con Java ya que en la ejecución de cualquier aplicación, se requiere un conjunto de bibliotecas intérprete previamente instaladas (Gambas Runtime) que entiendan el bytecode de las aplicaciones desarrolladas y lo conviertan en código ejecutable por el computador.
Permite crear formularios con botones de comandos, cuadros de texto y muchos otros controles y enlazarlos a bases de datos como MySQL, PostgreSQL o SQLite además de facilitar la creación de aplicaciones muy diversas como videojuegos (utilizando OpenGL), aplicaciones para dispositivos móviles, aplicaciones de red (con manejo avanzado de protocolos HTTP, FTP, SMTP, DNS), entre otras .

## Historia

Gambas nació como respuesta a la necesidad de tener un entorno de desarrollo rápido de aplicaciones (RAD) que cumple la necesidad de muchos programadores del lenguaje de Microsoft de tener un lenguaje de programación sencillo para plataformas libres (como GNU/Linux y BSD).
A pesar de estar basado en el lenguaje BASIC y poseer gran similitud con Visual Basic, Gambas no es una copia de este último.

## Componentes

* Un compilador.
* Un intérprete.
* Un archivador.
* Una interfaz gráfica de usuario.
* Un entorno de desarrollo integrado.

## Portabilidad

Gambas es un lenguaje portado a casi cualquier distribución de GNU/Linux, a excepción de Linspire en la cual hay problemas con las bibliotecas Qt. Además, ha sido portada a OpenBSD y es mantenido como un port oficial. Mientras que para sistemas operativos como Microsoft Windows o Mac, según informa la página oficial de Gambas, es posible en el primero compilar a través de Cygwin, pero muchos componentes principales como aquellos que conforman las GUI no podrán ser compiladas, y para el segundo es posible compilar sin problemas, aunque lo más probable es que al momento de la ejecución el resultado sea un fallo crítico. En la página oficial se muestra el estado de la portabilidad de Microsoft Windows y Mac, y en ambos su estado tiene una calificación de «mala».

## Diferencias con Visual Basic (6.0)

La principal diferencia con respecto a Visual Basic 6.0 es el soporte para orientación a objetos. En Gambas, no existen los arreglos de controles -muy populares en Visual Basic- pero dispone de un elemento similar llamado group, que utilizado conjuntamente con arrays de objetos ofrecen resultados análogos.
Gambas añade algunas propiedades nuevas en algunos de sus controles, como la alineación vertical/horizontal en etiquetas, o algunas propiedades gráficas en el elemento Button (Equivalente a CommandButton de Visual Basic).
El acceso a bases de datos es sumamente sencillo. Gambas incluye, al igual que Visual Basic, su propio empaquetador para la distribución de aplicaciones, que permite crear incluso paquetes Deb. Los componentes suministrados en Gambas 2.0 son realmente potentes, desde una biblioteca para el manejo de documentos PDF, hasta componentes para imágenes, sockets e informes (equivalentes a Crystal reports) y otras herramientas gratuitas alternativas.
Es importante señalar que prácticamente todos los proyectos desarrollados en este entorno son compatibles con versiones nuevas de Gambas, no así los hechos por Microsoft Visual Basic, es decir, por ejemplo un proyecto hecho en Microsoft Visual Basic 5.0 difícilmente funcionará en la última versión, ya que no es orientado a objetos, por lo tanto carece de herencia.
Gambas es una alternativa a la programación visual ofrecida en Visual Basic para entornos GNU/Linux. Su talón de Aquiles actualmente es la imposibilidad de crear aplicaciones para Windows y Mac OS X. Aunque muchos critican la escasa documentación, existen libros completos (en español e inglés) que tratan a profundidad todos los componentes de este lenguaje de programación.