Programación visual usando Gambas

Héctor Fernández López
Adrián Fernández Leiro

trorrr@gpul.org
adrianleiro@gpul.org

Primer plato

Gambas a grandes rasgos

Basado en BASIC

Gambas a grandes rasgos

Basado en BASIC

GPL

Gambas a grandes rasgos

Basado en BASIC

GPL

Diseño rápido de GUIs

¿Por qué “Gambas”?

Otros lenguajes con nombres de animales
Python, camel...
(http://linux.ciberaula.com/fauna_software_libre.php)

¿Por qué “Gambas”?

Otros lenguajes con nombres de animales
Python, camel...
(http://linux.ciberaula.com/fauna_software_libre.php)

Acrónimo recursivo:
Gambas Almost Means BASic

Gambas y otros lenguajes

gambas <> cigalas <> langostinos

Gambas y otros lenguajes

gambas <> cigalas <> langostinos

Gambas <> C <> Java

Gambas y otros lenguajes

Es interpretado, genera byte-codes

Gambas y otros lenguajes

Es interpretado, genera byte-codes

Existe una “máquina virtual” (gambas-runtime)

Gambas y otros lenguajes

Es interpretado, genera byte-codes

Existe una “máquina virtual” (gambas-runtime)

Exporta el proyecto en byte-code, ficheros asociados
y código fuente a tar.gz

Gambas y otros lenguajes

Es interpretado, genera byte-codes

Existe una “máquina virtual” (gambas-runtime)

Puede generar paquetes de instalación con
las dependencias correspondientes
RPM
DEB

Exporta el proyecto en byte-code, ficheros asociados
y código fuente a tar.gz

Gambas y otros lenguajes

Se basa en componentes que pueden instalarse
opcionalmente (con dependencias)

Gambas y otros lenguajes

Se basa en componentes que pueden instalarse
opcionalmente (con dependencias)

Si no usamos componentes gráficos podemos
crear proyectos para CLI

Gambas y otros lenguajes

Se basa en componentes que pueden instalarse
opcionalmente (con dependencias)

El IDE de Gambas está escrito en Gambas :-)

Si no usamos componentes gráficos podemos
crear proyectos para CLI

Multiplataforma

Funciona a la perfección en Linux x86

Multiplataforma

Funciona a la perfección en Linux x86

Según parece también en FreeBSD

Multiplataforma

Funciona a la perfección en Linux x86

En pruebas en Solaris y MacOSX (por el momento
no funciona)

Según parece también en FreeBSD

Multiplataforma

Funciona a la perfección en Linux x86

En Windows “debería” funcionar bajo KDE-cygwin
Cuestión de esperar a que se libere QT4

En pruebas en Solaris y MacOSX (por el momento
no funciona)

Según parece también en FreeBSD

Instalación

Instalación

(aka “metiendo la Gamba”)

Instalación

Compilación

(aka “metiendo la Gamba”)

Instalación

Compilación

Paquetes precompilados
Debian, Fedora Core, SuSe, Mandrake, Linex...

(aka “metiendo la Gamba”)

Instalación

Compilación

Paquetes precompilados en repositorios no oficiales

Paquetes precompilados
Debian, Fedora Core, SuSe, Mandrake, Linex...

(aka “metiendo la Gamba”)

Instalación

Compilación

Paquetes precompilados en repositorios no oficiales

Paquetes precompilados
Debian, Fedora Core, SuSe, Mandrake, Linex...

(aka “metiendo la Gamba”)

Dependencias “impepinables”
gb.qt => QT
gb.gtk => GTK
gb.sdl => libsdl
...

Instalación

Compilación

Paquetes precompilados en repositorios no oficiales

Paquetes precompilados
Debian, Fedora Core, SuSe, Mandrake, Linex...

(aka “metiendo la Gamba”)

Dependencias “impepinables”
gb.qt => QT
gb.gtk => GTK
gb.sdl => libsdl
...

http://gambas.sourceforge.net/download.html

Ayuda de Gambas

Ayuda limitada dentro del programa

Ayuda de Gambas

Ayuda limitada dentro del programa

Wiki
Gambas (http://www.binara.com/gambas-wiki/bin/view/Gambas10/WebHome)
Gambas2 (http://www.binara.com/gambas-wiki/bin/view/Gambas/WebHome)

Ayuda de Gambas

Ayuda limitada dentro del programa

Wiki
Gambas (http://www.binara.com/gambas-wiki/bin/view/Gambas10/WebHome)
Gambas2 (http://www.binara.com/gambas-wiki/bin/view/Gambas/WebHome)

Grupo de traducción del wiki al castellano
http://gambas.gnulinex.org

Ayuda de Gambas

Ayuda limitada dentro del programa

Wiki
Gambas (http://www.binara.com/gambas-wiki/bin/view/Gambas10/WebHome)
Gambas2 (http://www.binara.com/gambas-wiki/bin/view/Gambas/WebHome)

Grupo de traducción del wiki al castellano
http://gambas.gnulinex.org

Tutorial de lectura recomendada
http://www.laclavedefa.org/codigo_abierto/gambas_tutorial/

Componentes de Gambas

Segundo plato

Ejemplo de uso

Sistema cliente-servidor que nos permita enviar
y recibir mensajes de texto.

Aplicación servidor que esperará 1 conexión

Aplicación cliente que se conectará al servidor

Postre

Más ejemplos en Gambas

Drag & Drop

Más ejemplos en Gambas

Drag & Drop

Uso de bases de datos

Más ejemplos en Gambas

Drag & Drop

Uso de bases de datos

Control de aplicaciones CLI

Otras características

Permite traducción integrada en el IDE
(“Cadena a traducir”)

Otras características

Permite traducción integrada en el IDE
(“Cadena a traducir”)

Tratamiento de errores con TRY-CATCH-FINALLY

Otras características

Permite traducción integrada en el IDE
(“Cadena a traducir”)

Orientacion a objetos + Herencia

Tratamiento de errores con TRY-CATCH-FINALLY

Otras características

Permite traducción integrada en el IDE
(“Cadena a traducir”)

Orientacion a objetos + Herencia

Tratamiento de errores con TRY-CATCH-FINALLY

No hay un recolector de basura, los objetos se
liberan cuando no se vuelven a referenciar

Otras características

Permite traducción integrada en el IDE
(“Cadena a traducir”)

Orientacion a objetos + Herencia

Tratamiento de errores con TRY-CATCH-FINALLY

No hay un recolector de basura, los objetos se
liberan cuando no se vuelven a referenciar

Tratamiento de cadenas muy sencillo
Split Left$/Mid$/Right$ Replace$ Len Trim$...

Otras características

Permite traducción integrada en el IDE
(“Cadena a traducir”)

Orientacion a objetos + Herencia

Tratamiento de errores con TRY-CATCH-FINALLY

No hay un recolector de basura, los objetos se
liberan cuando no se vuelven a referenciar

Tratamiento de cadenas muy sencillo
Split Left$/Mid$/Right$ Replace$ Len Trim$...

PRINT System.Home &/ “Desktop”

Otras características

Permite traducción integrada en el IDE
(“Cadena a traducir”)

Orientacion a objetos + Herencia

Tratamiento de errores con TRY-CATCH-FINALLY

No hay un recolector de basura, los objetos se
liberan cuando no se vuelven a referenciar

Tratamiento de cadenas muy sencillo
Split Left$/Mid$/Right$ Replace$ Len Trim$...

PRINT System.Home &/ “Desktop”

Soporta DCOP

Otras características

Permite traducción integrada en el IDE
(“Cadena a traducir”)

Orientacion a objetos + Herencia

Tratamiento de errores con TRY-CATCH-FINALLY

No hay un recolector de basura, los objetos se
liberan cuando no se vuelven a referenciar

Tratamiento de cadenas muy sencillo
Split Left$/Mid$/Right$ Replace$ Len Trim$...

PRINT System.Home &/ “Desktop”

Soporta DCOP

...

El futuro de Gambas

Interfaz en GTK+

El futuro de Gambas

Interfaz en GTK+

Preprocesador: #IF, #ELSE, #ENDIF

El futuro de Gambas

Interfaz en GTK+

Preprocesador: #IF, #ELSE, #ENDIF

Creación de componentes directamente en Gambas

El futuro de Gambas

Interfaz en GTK+

Preprocesador: #IF, #ELSE, #ENDIF

Creación de componentes directamente en Gambas

Un generador de informes (report designer)

El futuro de Gambas

Interfaz en GTK+

Preprocesador: #IF, #ELSE, #ENDIF

Creación de componentes directamente en Gambas

Un generador de informes (report designer)

Mejor importación de proyectos de Visual Basic,
ahora que termina el soporte a la versión 6

El futuro de Gambas

Interfaz en GTK+

Preprocesador: #IF, #ELSE, #ENDIF

Creación de componentes directamente en Gambas

Un generador de informes (report designer)

Mejor importación de proyectos de Visual Basic,
ahora que termina el soporte a la versión 6

Aplicaciones web en Gambas

El futuro de Gambas

Interfaz en GTK+

Preprocesador: #IF, #ELSE, #ENDIF

Creación de componentes directamente en Gambas

Un generador de informes (report designer)

Mejor importación de proyectos de Visual Basic,
ahora que termina el soporte a la versión 6

Aplicaciones web en Gambas

MÁS COMPONENTES

Agradecimientos

Benoît Minisini (creador de Gambas)

Agradecimientos

Benoît Minisini (creador de Gambas)

Bodard Fabien (Gamba de la presentación)

Agradecimientos

Benoît Minisini (creador de Gambas)

Bodard Fabien (Gamba de la presentación)

Daniel Campos (componentes gb.net, gb.xml y gb.gtk)

Agradecimientos

Benoît Minisini (creador de Gambas)

Bodard Fabien (Gamba de la presentación)

Daniel Campos (componentes gb.net, gb.xml y gb.gtk)

A todos los demás que aparecen en
http://gambas.sourceforge.net/halloffame.html
y http://wiki.gnulinex.org/gambas/202

Agradecimientos

Benoît Minisini (creador de Gambas)

Bodard Fabien (Gamba de la presentación)

Daniel Campos (componentes gb.net, gb.xml y gb.gtk)

A todos los demás que aparecen en
http://gambas.sourceforge.net/halloffame.html
y http://wiki.gnulinex.org/gambas/202

Sergio Otero por ese peaso portátil

Agradecimientos

¡Gracias a todos por venir!

¿Preguntas?

Héctor Fernández López
Adrián Fernández Leiro

trorrr@gpul.org
adrianleiro@gpul.org

2005-03-23T00:27:46