Actualidad de los lenguajes xbase

19
Actualidad de los lenguajes xbase Jaime Irurzun [etox] [email protected] e-ghost | Julio 2007

description

Charla impartida durante los cursillos de julio de 2008 organizados por el e-ghost en la Universidad de Deusto.

Transcript of Actualidad de los lenguajes xbase

Page 1: Actualidad de los lenguajes xbase

Actualidad de los lenguajes xbase

Jaime Irurzun [etox][email protected]

e-ghost | Julio 2007

Page 2: Actualidad de los lenguajes xbase

Actualidad de los lenguajes xbaseActualidad de los lenguajes xbase

1. Introducción

2. Evolución histórica

3. Herramientas actuales

4. Conclusiones

5. Preguntas

Page 3: Actualidad de los lenguajes xbase

¿Por qué xbase?

1Introducción

2Historia

3Herramientas

4Conclusiones

5Preguntas

Page 4: Actualidad de los lenguajes xbase

¿Qué es xbase?Conjunto de lenguajes y herramientas herederas de dBase

orientadas al desarrollo de software de gestión

1Introducción

2Historia

3Herramientas

4Conclusiones

5Preguntas

Comandos dBase

USE Cliente USE Clientes

APPEND BLANKREPLACE dni WITH “1608…”REPLACE nombre WITH “Pablo”COMMIT

CLOSE

Ficheros .DBF

Tablas navegables Manipulación manual

Apertura y Cierre Bloqueo y Desbloqueo Índices

Modelo SQLite

Sintaxis Clipper

for i := 0 to 99 do j := 0; while j < 50 do validar( i * j ) j++ end whilenext

+ +

Page 5: Actualidad de los lenguajes xbase

1Introducción

2Historia

3Herramientas

4Conclusiones

5Preguntas

(Wayne Ratliff & George Tate)

(Nantucket)

(Fivetech)

Page 6: Actualidad de los lenguajes xbase

Herramientas actuales

1Introducción

2Historia

3Herramientas

4Conclusiones

5Preguntas

Compilador (C) Harbour xHarbour

GUI (V)Windows

Xailer Visual xHarbour MiniGUI T-GTK FiveWin

Mac OS X

T-GTK FiveMac

GNU/Linux

T-GTK FiveLinux

PocketPC y SmartPhone

FivePPC

Datos (M) SQL (3rd parties) Ficheros .DBF

Page 7: Actualidad de los lenguajes xbase

Compiladores: Harbour y xHarbour

Son un 99% compatibles con Clipper

No son verdaderos compiladores, generan PCODE

Dependen de un compilador de C: GCC, BCC, MVC++, PellesC

Mantienen distintas filosofías:

- Harbour: Ceñirse a la compatibilidad con Clipper

- xHarbour (eXtended Harbour): Modernizar el lenguaje

Software Libre: Licencia LGPL

1Introducción

2Historia

3Herramientas

4Conclusiones

5Preguntas

Page 8: Actualidad de los lenguajes xbase

Compiladores y GUIs: Quién con Quién

1Introducción

2Historia

3Herramientas

4Conclusiones

5Preguntas

Windows xHarbour + Xailer xHarbour + Visual xHarbour Harbour + MiniGUI (x)Harbour + T-GTK (x)Harbour + FiveWin

Mac OS X (x)Harbour + T-GTK (x)Harbour + FiveMac

GNU/Linux (x)Harbour + T-GTK (x)Harbour + FiveLinux

PocketPC y SmartPhone (x)Harbour + FivePPC

Page 9: Actualidad de los lenguajes xbase

GUIs: Xailer (1/2)

Ofrece un completísimo IDE

Incluye motor de informes

Es totalmente orientado a objetos

Simplifica el trabajo con DataControls

Soporta componentes OCX (ActiveX)

No oculta el código de generación de los formularios

Funciona sólo con xHarbour y BCC

Actualmente sólo para Windows

Software privativo (entrega el 90% del código)

1Introducción

2Historia

3Herramientas

4Conclusiones

5Preguntas

Page 10: Actualidad de los lenguajes xbase

GUIs: Xailer (2/2)Ejemplo: Hola Mundo

#include "Xailer.ch”

CLASS THolaMundo FROM Tform COMPONENT oLabel COMPONENT oButton

METHOD CreateForm() METHOD ButtonClick( oSender ) METHOD FormInitialize( oSender )ENDCLASS

#include "FormHolaMundo.xfm"

METHOD ButtonClick( oSender ) CLASS THolaMundo

::oLabel:SetText( “¡Hola mundo!” )

RETURN Nil

1Introducción

2Historia

3Herramientas

4Conclusiones

5Preguntas

Page 11: Actualidad de los lenguajes xbase

GUIs: Visual xHarbour (1/2)

Incluye un IDE

Es totalmente orientado a objetos

No oculta el código de generación de los formularios

Lo lleva xHarbour.com, principal impulsora de xHarbour.org

Funciona sólo con la versión comercial de xHarbour

Utiliza su propio compilador de C

Actualmente sólo para Windows

Software privativo

1Introducción

2Historia

3Herramientas

4Conclusiones

5Preguntas

Page 12: Actualidad de los lenguajes xbase

GUIs: Visual xHarbour (2/2)

Ejemplo: Hola Mundo.

GLOBAL EXTERNAL SystemGLOBAL EXTERNAL Application

#include “vxh.ch”#include “FormHolaMundo.ch”

METHOD ButtonClick( Sender ) CLASS FormHolaMundo

::Label:Caption := “Hola Mundo”

RETURN Self

1Introducción

2Historia

3Herramientas

4Conclusiones

5Preguntas

Page 13: Actualidad de los lenguajes xbase

GUIs: MiniGUI (1/2)

Incluye un IDE muy limitado

Combina la POO con los comandos tradicionales

Está orientado a pequeñas aplicaciones

Funciona sólo con Harbour

Actualmente sólo para Windows

Software Libre: Licencia LGPL

1Introducción

2Historia

3Herramientas

4Conclusiones

5Preguntas

Page 14: Actualidad de los lenguajes xbase

GUIs: MiniGUI (2/2)Ejemplo: Hola Mundo desde código.

#include “MiniGUI.ch"

function Main()

DEFINE WINDOW oHolaMundo;AT 0,0;WIDTH 400;HEIGHT 200;TITLE “¡Hola Mundo!”;MAIN

END WINDOW

ACTIVATE WINDOW oHolaMundo

return

1Introducción

2Historia

3Herramientas

4Conclusiones

5Preguntas

Page 15: Actualidad de los lenguajes xbase

GUIs: T-GTK (1/2)

Es una implementación de GTK para (x)Harbour

No tiene IDE, se puede recurrir a Glade

Implementa los comandos clásicos frente a la POO

Funciona con Harbour y con xHarbour

Es la única GUI multiplataforma

Software Libre: Licencia LGPL

1Introducción

2Historia

3Herramientas

4Conclusiones

5Preguntas

Page 16: Actualidad de los lenguajes xbase

GUIs: T-GTK (2/2)

Ejemplo: Hola Mundo utilizando un formulario de Glade.

#include “gclass.ch”

function Main()

local cResource, cWnd

SET RESOURCES cResource FROM FILE “recursos.glade”

DEFINE WINDOW oWnd ID “window1” RESOURCE cResource ACTIVATE WINDOW oWnd

return NIL

1Introducción

2Historia

3Herramientas

4Conclusiones

5Preguntas

Page 17: Actualidad de los lenguajes xbase

Datos: SQL

Librerías de terceros para Harbour y xHarbour:

- Eagle1: Acceso directo a MySQL (priv.)

- Condor: Acceso a cualquier motor mediante ODBC (priv.)

- En desarrollo: Acceso directo a SQLite (libre)

Xailer implementa, únicamente para xHarbour:

- Acceso a cualquier motor mediante ODBC y ADO

- Acceso directo a MySQL y SQLite

Tarea pendiente: Acceso nativo “de serie” en xHarbour

1Introducción

2Historia

3Herramientas

4Conclusiones

5Preguntas

Page 18: Actualidad de los lenguajes xbase

Los lenguajes xbase siguen vivos

Siguen siendo una gran opción para el software de gestión

- Grupo SP, Renfe, Osakidetza…

- Pequeños negocios

Necesitan reaccionar para no morir en un futuro medio

- Ofrecer cosas nuevas

- Ampliar la comunidad de desarrolladores

1Introducción

2Historia

3Herramientas

4Conclusiones

5Preguntas

Page 19: Actualidad de los lenguajes xbase

1Introducción

2Historia

3Herramientas

4Conclusiones

5Preguntas

?