Tecno4all

“Great spirits have always encountered opposition from mediocre minds.”
Albert Einstein

viernes, diciembre 30, 2005

Rapid-Q, lo que pudo ser



Rapid-Q es un lenguaje Basic con un entorno de programación parecido al de Visual Basic o Delphi. Es multiplataforma (Windows/Linux) y puede generar tanto programas de consola como programas GUI con ventanas, botones y todo lo demás a lo que estamos acostumbrados. Lamentablemente su licencia es "freeware", no código abierto.

Me encontré con RQ en el año 2002 cuando buscaba una alternativa a Visual Basic como lenguaje en el curso de introducción a la programación. En aquel momento el libro de texto (Schneider) traía una versión académica, léase limitada, de Visual Basic. Traía el interpretador, pero no el compilador y también mutilaron la colección de controles que se podían utilizar. Para dificultar más la situación, el laboratorio que usaríamos no tenía instalado Visual Studio con VB, ni teníamos las licencias para hacerlo. El laboratorio de práctica para los estudiantes tampoco contaba con suficientes licencias para todos los grupos activos ese semestre. Como mencioné, el libro de texto traía un VB cojo en un CD que los estudiantes podían instalar en sus casas, pero no el laboratorio.

Uno de los atractivos de Rapid Q fue su entorno de desarrollo en Windows (no lo tiene para Linux :( ). Tiene una barra de botones con controles que pueden insertarse en una forma vacía para construir la interfaz gráfica de la aplicación y generar su código automáticamente.



RQ no es código abierto y su autor, William Yu, cedió los derechos a la compañía que ahora lo emplea, Real Software los creadores de RealBasic. Esto implica que no habrá una nueva versión de RQ, ni su código estará disponible. Ese ha sido el estado del proyecto desde el año 2001. A pesar de eso, RQ tiene una enorme comunidad de usuarios muy activa. Pueden visitarla en sus grupos dentro de Yahoo: Rapid-Q y Rapid-Q Works.

La decisión de William Yu de no liberar Rapid Q fue desafortunada. Aparentemente Real Software utilizó como base Rapid Q para mejorar su producto Real Basic y hacerlo multiplataforma. Mantener cautivo a RQ fue una estrategia para no tener competencia en el mercado, especialmente competencia de un producto superior y gratis. De vez en cuando dentro de los grupos de la comunidad resucita la discusión sobre la negativa de Real Software de liberar RQ. El presidente de Real Software, Geoff Perlman, siempre responde siguiendo la misma línea: Real Software le dió a William Yu lo que la comunidad nunca le ofreció, por lo tanto no se merece recibir el código de RQ. Usa mucha diplomacia en expresarlo, pero en el fondo ese es su argumento.

Al igual que la comunidad de usuarios de RQ, creo firmemente que William Yu tenía derecho de hacer con RQ lo que quisiera. Si ceder RQ era una condición para conseguir su trabajo o una mejor compensación y mejorar su calidad de vida, hizo bien. Pero hubiera sido mejor aún si hubiera liberado el código, aunque no participara más del proyecto. Tal vez liberar el código de una versión previa, o la version de Linux solamente.

Si Rapid-Q hubiera continuado su desarrollo, hubiera podido ser, desde el año 2001, la alternativa a Visual Basic en Linux y otras plataformas. Hubiera liberado de Microsoft a los instructores y estudiantes de programación. Si visita los grupos de RQ que enlacé arriba, se dará cuenta de que, a pesar de ser un proyecto "viejo" cuyo código base no cambiará, tienen una comunidad enorme, tremendamente activa. Al encarcelar a RQ, William Yu perdió la oportunidad de ser el creador del "Visual Basic killer". Su empleador, Real Software, ha intentado serlo, pero Real Basic como producto comercial se ha quedado corto.

Aunque terminé enseñando el curso utilizando el Visual Basic for Applicactions (VBA) contenido en Word, logré jugar con RQ lo suficiente como para reconocer su enorme potencial. Creé con él el programa Splash! para preparar discos CD autoejecutables bajo Windows. Es un programa de consola, no utiliza la capacidad de RQ para crear programas GUI aunque tuve que declarar una forma (QForm) vacía. Este es el corto código:



$INCLUDE "RAPIDQ.INC"

Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

create form as QFORM

END CREATE


Dim dummy As Long

dummy = ShellExecute(Form.Handle,"open","index.htm","","",SW_SHOWNORMAL)



En Linux recientemente experimenté con RQ y creo que todavía es útil para proyectos simples que requieran interfaz gráfica:





Este es el código:



' Programa simple con Rapid-Q en GNU/Linux


DECLARE SUB botondemo


CREATE Ventana AS QForm
Center
Caption="RapidQ Demo Edwood Ocasio"
Width=400: Height=150

CREATE Saludo AS QLabel
Left = 50: Top = 3
Caption = "Hola, Edwood"
END CREATE
CREATE boton AS QButton
Left = 60: Top = 100
Caption = "Salir"
OnClick = botondemo
END CREATE

CREATE caja_texto AS QEdit
Left = 60: Top = 30
Width=200
Text = "Usando Rapid-Q en Linux"
END CREATE
END CREATE



Ventana.ShowModal

SUB botondemo (Sender AS QButton)
Ventana.close
END SUB


Traté sin éxito incluir imágenes y cambiar el color de la forma, pero supongo que tendría que leer con más calma la documentación.

La compilación es através de la consola de Linux. Se compila con el comando rc ("Rapid-Q compiler"). Esta es una muestra de lo que hago en mi caso:



edwood@andromeda:~/app/rqbeta$ ./rc edwood_hello.bas
Rapid-Q Compiler Beta by William Yu Copyright 1999-2000
Compiling edwood_hello.bas to edwood_hello

Compiling as GUI Application (L3)
Number of statements: 11 Compile time: 0.010000
Numeric Variables: 0
String Variables: 0
Resource data: 0
Bytes global data: 329
Bytes sub data: 11
edwood@andromeda:~/app/rqbeta$ edwood_hello




Encontrar la descarga de Rapid-Q en estos días es un reto, pero este es uno de los lugares: Grupo Rapid-Q Francia

Encontré documentación en línea aquí: Docs Rapid-Q

Rapid-Q pudo haber sido uno de los proyectos de código abierto más activos en el web y de mayor prestigio. Ahora, sólo podemos ponderar lo que pudo ser.







De vuelta


Regresé a BlogSpot en lo que puedo levantar el servidor de Tecno4all en UPR-Cayey. Estas son la dirección del lugar y su canal RSS (Atom):

Gracias y feliz año nuevo.