dimecres, de gener 14, 2009

Gambas


Gambas és un modern entorn gràfic de desenvolupament integrat (editor, compilador, debugador, empaquetador, etc...) per entorns GNU/Linux o BSD. Usa una variant pròpia de BASIC amb característiques d'Orientació a Objecte, i tot i que no pretén ser un clon del Microsoft Visual Basic hi guarda moltes similituds; l'autor principal del projecte reconeix que part dels objectius originals era assemblar-s'hi en alguns aspectes. La pàgina web oficial del projecte és http://gambas.sourceforge.net/.
És interessant notar que les característiques de Gambas (facilitat d'ús, característiques d'Oo, components d'accés a BBDD independents d'aquesta, entre d'altres), juntament amb l'expansió que el sistema operatiu GNU/Linux té actualment, el converteixen en un candidat ideal per omplir un important buit: Un entorn accessible a tots els públics (és a dir fàcil d'usar i de programar-hi) per desenvolupar aplicacions, prou potent perquè les indústries que abans empraven el Visual Basic per la creació d'aplicacions d'ús intern per solucionar petites necessitats sense grans pretensions ni pressupost (el que alguns anomenen aplicacions “in-house”), ara passin a usar GNU/Linux i Gambas per desenvolupar-les.



Història del projecte

El projecte va ser concebut l'any 1999, i la primera versió pública va aparèixer el 2001. Des d'aleshores, el projecte el dirigeix l'autor original, Benoît Minisini.
Cronològicament, veiem que a principis del 2000 l'ús de GNU/Linux s'havia començat a popularitzar de manera destacable. El fet que no existís aleshores cap entorn de desenvolupament ràpid (RAD) suficientment accessible al públic de perfil poc tècnic per aquest entorn (per exemple, tant senzill com el Visual Basic en els sistemes operatius de Microsoft), va fer que hi haguessin diverses temptatives no molt reeixides d'aconseguir desenvolupar-ne un que cridés l'atenció d'aquest tipus d'usuaris (per exemple Borland va treure una versió per GNU/Linux del seu, aleshores, popular entorn de desenvolupament Delphi anomenada Kylix).

Benoît Minisini, programador francès amb experiència en compiladors, va ser un dels qui va decidir intentar posar remei a la situació de la seva pròpia mà, i va començar en solitari el desenvolupament Gambas. Programat per executar-se en GNU/Linux i implementant la seva pròpia versió de BASIC, amb un ull posat als “punts forts” de VB, però conscient de les limitacions i pegues d'aquest, l'autor també va prendre algunes idees de Java. Cal notar, en aquest sentit, que des del principi, el disseny de Gambas anava orientat a no ser compatible amb el BASIC de VB allà on l'autor creia que hi havia marge de millora. En les primeres versions, els components gràfics estaven basats en la llibreria QT però a partir de la versió 1 ja es va començar una capa que independitza els components del toolkit real. Des d'un bon principi i fins a l'actualitat, la manera de gestionar el projecte que l'autor ha portat a terme, es podria definir com la d'un ”dictador benvolent”: El que dins el món del programari lliure a vegades s'ha anomenat ”dictador benvolent” correspon a un sistema on una única persona centralitza tot o bona part del poder sobre el projecte; i decideix i té l'última paraula pel que fa al rumb, el què val la pena integrar-hi o no, i qui pot treballar en què (a l'estil del cas més conegut, Linus Torvald i Linux :).

La primera versió pública, la 0.20, va ser publicada el febrer del 2002 i des d'aleshores el projecte ha anat rebent actualitzacions constants fins a l'actualitat. Finalment, com a curiositat, direm que el nom del projecte és un acrònim recursiu inventat per l'autor, que vol dir “Gambas Almost Means BASic”, és a dir en català (traducció pròpia lliure) “Gambas quasi vol dir Basic”.


El projecte


El projecte ofereix accés obert de lectura a tothom a un repositori subversion on s'hi poden trobar les dues branques actualment en desenvolupament del codi del projecte a les adreces https://gambas.svn.sourceforge.net/svnroot/gambas/gambas/branches/2.0 per la versió estable i https://gambas.svn.sourceforge.net/svnroot/gambas/gambas/trunk/ per la 3, en desenvolupament.

Quasi des del bon principi, el projecte ha estat registrat al Sourceforge, i és allà on hi ha allotjada la pàgina web, des d'on es poden descarregar les últimes versions oficials, on hi ha allotjats els repositoris de codi font, i les llistes de distribució.
En el projecte, aquestes llistes de distribució són, ara per ara i per decisió expressa del màxim responsable del projecte, l'únic sistema de “bug tracking” o de petició de millores.

https://lists.sourceforge.net/lists/listinfo/gambas-user

https://lists.sourceforge.net/lists/listinfo/gambas-devel

https://lists.sourceforge.net/lists/listinfo/gambas-devel-svn

https://lists.sourceforge.net/lists/listinfo/gambas-user-es

https://lists.sourceforge.net/lists/listinfo/gambas-user-fr

L'accés a aquestes llistes és públic, i l'historial de missatges és lliurement consultable.

Una altre part important del projecte la trobem, també, a la pàgina de documentació del llenguatge, http://gambasdoc.org/. La pàgina estructurada en format Wiki, està traduïda total o parcialment a 19 idiomes diferents. El fet que estigui traduïda a tants idiomes i que sigui força exhaustiva, la converteix en una eina molt útil per als usuaris de Gambas; S'hi pot trobar des dels passos específics d'instal·lació de Gambas en múltiples distribucions de GNU/Linux, fins a un inventari complet de totes les comandes, sintaxi i instruccions específiques del llenguatge amb exemples de codi.

Val a dir que actualment també trobem un parell de projectes amb característiques semblants (Un entorn integrat + Dialecte BASIC propi) a Gambas:
Hbasic (http://hbasic.sourceforge.net/)
Kbasic (http://www.kbasic.com)


Radiografia del projecte

Gambas es distribueix sota la llicència Gnu GPL i té un nombre relativament reduït de col·laboradors. Moltes de les aportacions de codi són de l'autor original. La versió estable actual és la 2.9 del 30 d'octubre de 2008 i el codi font es pot trobar a la zona de descàrregues del lloc web http://sourceforge.net/project/gambas i també al repositori subversion del mateix lloc, https://gambas.svn.sourceforge.net/svnroot/gambas/gambas/branches/2.0

Les dades les he sobre les característiques del projecte calculat amb l'última versió de la branca estable disponible al repositori subversion revisió 1744 del 19/12/2008 . L'eina emprada pel recompte és sloccount:




Línies totals de codi (SLOC) = 179.836



Estimació del costos de desenvolupament segons el model Bàsic COCOMO :

Estimació de l'esforç de desenvolupament
persona/anys
46.63 anys (559.54 mesos)

Estimació del temps d'execució
2.31 anys (27.68 mesos)

Estimació de nombre mitjà de desenvolupadors
20.22

Cost total de desenvolupament
(amb un sou mitja de $56,300/any)
$ 6.298.862



On obtenir-ne més informació:

Pàgina principal del projecte: http://gambas.sourceforge.net/
Documentació oficial de Gambas: http://gambasdoc.org
Un llibre lliure de documentació sobre Gambas: http://en.wikibooks.org/wiki/Gambas
Pàgina amb recursos de Gambas: http://gambasrad.org/
Pàgina del projecte LinEx dedicada a Gambas: http://gambas.gnulinex.org/web/index.html
Entrada a la Wikipedia de Gambas: http://en.wikipedia.org/wiki/Gambas
Entrada a la Wikipedia de dialectes Basic: http://en.wikipedia.org/wiki/List_of_BASIC_dialects_by_platform
Incubadora de projectes desenvolupats en Gambas: http://www.gambasforge.net (actualment en obres)
Projectes al Freshmeat que usen Gambas: http://freshmeat.net/browse/1123/